/*** Generated by streamline 0.10.17 (callbacks) - DO NOT EDIT ***/ "use strict"; var __rt=require('streamline/lib/callbacks/runtime').runtime(__filename, false),__func=__rt.__func,__cb=__rt.__cb; var fs = require("fs");











































































































































































































































































































































































































































































































































var jsonpatch = require("fast-json-patch");

var profile = require("../../../util/profile");
var utils = require("../../../util/utils");

var $ = utils.getLocaleString;function beautify(jsonText) {
  var obj = JSON.parse(jsonText);
  return JSON.stringify(obj, null, 2);};

function capitalize(str) {
  if ((str && (str.length >= 1))) {
    return (str.charAt(0).toUpperCase() + str.slice(1)); }

   else {
    return str; } ;};



function makeTuple(k, v, d) {
  return { key: k, value: v, depth: d };};


function displayImpl(o, key, depth, arr) {
  if (((!!o) && (((o.constructor === Object) || (o.constructor === Array))))) {
    arr.push(makeTuple(key, "", depth));
    var len = 0;
    Object.keys(o).forEach(function(k1) {
      var v1 = o[k1];
      var p1 = ((o.constructor === Array) ? "#" : "");
      var w = displayImpl(v1, (p1 + k1), (depth + 1), arr);
      if ((w > len)) {
        len = w; } ; });


    return len; }

   else {
    arr.push(makeTuple(key, (o ? o.toString() : ""), depth));
    return ((depth * 2) + ((key ? key.toString().length : 0))); } ;};



function display(cli, o) {
  var arr = [];
  var width = displayImpl(o, "", 0, arr);
  for (var t in arr) {
    var prebuf = new Array((arr[t].depth * 2)).join(" ");
    var key = (arr[t].key ? arr[t].key : "");
    var postLen = (width - ((prebuf.length + key.length)));
    var postbuf = new Array(((postLen > 0) ? postLen : 0)).join(" ");
    var str = ((prebuf + capitalize(key)) + postbuf);
    if (arr[t].value) {
      str += (" : " + arr[t].value); } ;

    cli.output.data(str); };};

exports.init = function(cli) {





















































































































































  var virtualMachineScaleSetsCreateOrUpdate = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsCreateOrUpdate.command("create [resource-group] [name] [parameters]").description($("Allows you to create or update a virtual machine scale set by providing parameters or a path to pre-configured parameter file.")).usage("[options] <resource-group> <name> <parameters>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("-p, --parameters <parameters>", $("A string of parameters in JSON format")).option("--parameter-file <parameter-file>", $("The text file that contains input parameter object in JSON format")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __1(resourceGroup, name, parameters, options, _) { var parametersObj, fileContent, subscription, computeManagementClient, result; var __frame = { name: "__1", line: 741 }; return __func(_, this, arguments, __1, 4, __frame, function __$__1() { return (function __$__1(__then) {








        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__1() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__1(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__1() {


          cli.output.verbose(("name = " + name));
          cli.output.verbose(("parameters = " + parameters));
          parametersObj = null;
          if (options.parameterFile) {
            cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
            fileContent = fs.readFileSync(options.parameterFile, "utf8");
            parametersObj = JSON.parse(fileContent); }

           else {
            parametersObj = JSON.parse(parameters); } ;

          cli.output.verbose(("parametersObj = " + JSON.stringify(parametersObj)));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.createOrUpdate(resourceGroup, name, parametersObj, __cb(_, __frame, 24, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });


  var virtualMachineScaleSetsCreateOrUpdatecreateOrUpdateParameters2 = virtualMachineScaleSetsCreateOrUpdate.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  virtualMachineScaleSetsCreateOrUpdatecreateOrUpdateParameters2.command("create").description($("Generate virtualMachineScaleSetsCreateOrUpdate parameter string or files.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).execute(function __2(options, _) { var filePath; var __frame = { name: "__2", line: 776 }; return __func(_, this, arguments, __2, 1, __frame, function __$__2() {




      return cli.output.verbose("{\"sku\":{\"name\":\"\",\"tier\":\"\",\"capacity\":null},\"upgradePolicy\":{\"mode\":null},\"virtualMachineProfile\":{\"osProfile\":{\"computerNamePrefix\":\"\",\"adminUsername\":\"\",\"adminPassword\":\"\",\"customData\":\"\",\"windowsConfiguration\":{\"provisionVMAgent\":null,\"enableAutomaticUpdates\":null,\"timeZone\":\"\",\"additionalUnattendContent\":[{\"passName\":null,\"componentName\":null,\"settingName\":null,\"content\":\"\"}],\"winRM\":{\"listeners\":[{\"protocol\":null,\"certificateUrl\":\"\"}]}},\"linuxConfiguration\":{\"disablePasswordAuthentication\":null,\"ssh\":{\"publicKeys\":[{\"path\":\"\",\"keyData\":\"\"}]}},\"secrets\":[{\"sourceVault\":{\"id\":\"\"},\"vaultCertificates\":[{\"certificateUrl\":\"\",\"certificateStore\":\"\"}]}]},\"storageProfile\":{\"imageReference\":{\"publisher\":\"\",\"offer\":\"\",\"sku\":\"\",\"version\":\"\"},\"osDisk\":{\"name\":\"\",\"caching\":null,\"createOption\":\"\",\"osType\":null,\"image\":{\"uri\":\"\"},\"vhdContainers\":[\"\"]}},\"networkProfile\":{\"networkInterfaceConfigurations\":[{\"name\":\"\",\"primary\":null,\"ipConfigurations\":[{\"name\":\"\",\"subnet\":{\"id\":\"\"},\"applicationGatewayBackendAddressPools\":[{\"id\":\"\"}],\"loadBalancerBackendAddressPools\":[{\"id\":\"\"}],\"loadBalancerInboundNatPools\":[{\"id\":\"\"}],\"id\":\"\"}],\"id\":\"\"}]},\"extensionProfile\":{\"extensions\":[{\"name\":\"\",\"publisher\":\"\",\"type\":\"\",\"typeHandlerVersion\":\"\",\"autoUpgradeMinorVersion\":null,\"settings\":{},\"protectedSettings\":{},\"provisioningState\":\"\",\"id\":\"\"}]}},\"provisioningState\":\"\",\"overProvision\":null,\"id\":null,\"name\":null,\"type\":null,\"location\":\"\",\"tags\":{}}", __cb(_, __frame, 1, 15, function __$__2() {
        filePath = "virtualMachineScaleSetsCreateOrUpdate_createOrUpdate.json";
        if (options.parameterFile) {
          filePath = options.parameterFile; } ;

        fs.writeFileSync(filePath, beautify("{\r\n\"sku\":{\r\n\"name\":\"\",\r\n\"tier\":\"\",\r\n\"capacity\":null\r\n},\r\n\"upgradePolicy\":{\r\n\"mode\":null\r\n},\r\n\"virtualMachineProfile\":{\r\n\"osProfile\":{\r\n\"computerNamePrefix\":\"\",\r\n\"adminUsername\":\"\",\r\n\"adminPassword\":\"\",\r\n\"customData\":\"\",\r\n\"windowsConfiguration\":{\r\n\"provisionVMAgent\":null,\r\n\"enableAutomaticUpdates\":null,\r\n\"timeZone\":\"\",\r\n\"additionalUnattendContent\":[\r\n{\r\n\"passName\":null,\r\n\"componentName\":null,\r\n\"settingName\":null,\r\n\"content\":\"\"\r\n}\r\n],\r\n\"winRM\":{\r\n\"listeners\":[\r\n{\r\n\"protocol\":null,\r\n\"certificateUrl\":\"\"\r\n}\r\n]\r\n}\r\n},\r\n\"linuxConfiguration\":{\r\n\"disablePasswordAuthentication\":null,\r\n\"ssh\":{\r\n\"publicKeys\":[\r\n{\r\n\"path\":\"\",\r\n\"keyData\":\"\"\r\n}\r\n]\r\n}\r\n},\r\n\"secrets\":[\r\n{\r\n\"sourceVault\":{\r\n\"id\":\"\"\r\n},\r\n\"vaultCertificates\":[\r\n{\r\n\"certificateUrl\":\"\",\r\n\"certificateStore\":\"\"\r\n}\r\n]\r\n}\r\n]\r\n},\r\n\"storageProfile\":{\r\n\"imageReference\":{\r\n\"publisher\":\"\",\r\n\"offer\":\"\",\r\n\"sku\":\"\",\r\n\"version\":\"\"\r\n},\r\n\"osDisk\":{\r\n\"name\":\"\",\r\n\"caching\":null,\r\n\"createOption\":\"\",\r\n\"osType\":null,\r\n\"image\":{\r\n\"uri\":\"\"\r\n},\r\n\"vhdContainers\":[\r\n\"\"\r\n]\r\n}\r\n},\r\n\"networkProfile\":{\r\n\"networkInterfaceConfigurations\":[\r\n{\r\n\"name\":\"\",\r\n\"primary\":null,\r\n\"ipConfigurations\":[\r\n{\r\n\"name\":\"\",\r\n\"subnet\":{\r\n\"id\":\"\"\r\n},\r\n\"applicationGatewayBackendAddressPools\":[\r\n{\r\n\"id\":\"\"\r\n}\r\n],\r\n\"loadBalancerBackendAddressPools\":[\r\n{\r\n\"id\":\"\"\r\n}\r\n],\r\n\"loadBalancerInboundNatPools\":[\r\n{\r\n\"id\":\"\"\r\n}\r\n],\r\n\"id\":\"\"\r\n}\r\n],\r\n\"id\":\"\"\r\n}\r\n]\r\n},\r\n\"extensionProfile\":{\r\n\"extensions\":[\r\n{\r\n\"name\":\"\",\r\n\"publisher\":\"\",\r\n\"type\":\"\",\r\n\"typeHandlerVersion\":\"\",\r\n\"autoUpgradeMinorVersion\":null,\r\n\"settings\":{\r\n},\r\n\"protectedSettings\":{\r\n},\r\n\"provisioningState\":\"\",\r\n\"id\":\"\"\r\n}\r\n]\r\n}\r\n},\r\n\"provisioningState\":\"\",\r\n\"overProvision\":null,\r\n\"id\":null,\r\n\"name\":null,\r\n\"type\":null,\r\n\"location\":\"\",\r\n\"tags\":{\r\n}\r\n}"));
        cli.output.verbose("=====================================");
        cli.output.verbose(("Parameter file output to: " + filePath));
        cli.output.verbose("====================================="); _(); }, true)); }); });


  virtualMachineScaleSetsCreateOrUpdatecreateOrUpdateParameters2.command("patch").description($("Command to patch virtualMachineScaleSetsCreateOrUpdate parameter JSON file.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--operation <operation>", $("The JSON patch operation: add, remove, or replace.")).option("--path <path>", $("The JSON data path, e.g.: \"foo/1\".")).option("--value <value>", $("The JSON value.")).option("--parse", $("Parse the JSON value to object.")).execute(function __3(options, _) { var fileContent, parametersObj, updatedContent; var __frame = { name: "__3", line: 796 }; return __func(_, this, arguments, __3, 1, __frame, function __$__3() {








      return cli.output.verbose(options.parameterFile, __cb(_, __frame, 1, 15, function __$__3() {
        cli.output.verbose(options.operation);
        cli.output.verbose(options.path);
        cli.output.verbose(options.value);
        cli.output.verbose(options.parse);
        if (options.parse) {
          options.value = JSON.parse(options.value); } ;

        cli.output.verbose(options.value);
        cli.output.verbose("=====================================");
        cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
        cli.output.verbose("=====================================");
        fileContent = fs.readFileSync(options.parameterFile, "utf8");
        parametersObj = JSON.parse(fileContent);
        cli.output.verbose("JSON object:");
        cli.output.verbose(JSON.stringify(parametersObj));
        if ((options.operation == "add")) {
          jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } else {

          if ((options.operation == "remove")) {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } else {

            if ((options.operation == "replace")) {
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ; } ; } ;

        updatedContent = JSON.stringify(parametersObj);
        cli.output.verbose("=====================================");
        cli.output.verbose("JSON object (updated):");
        cli.output.verbose(JSON.stringify(parametersObj));
        cli.output.verbose("=====================================");
        fs.writeFileSync(options.parameterFile, beautify(updatedContent));
        cli.output.verbose("=====================================");
        cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
        cli.output.verbose("====================================="); _(); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet0 = catparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet0 = parametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet0.category("virtual-machine-scale-set").description($("Commands to configure virtual-machine-scale-set of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet0.command("set").description($("Set virtual-machine-scale-set in config string or files, e.g. \r\n{\r\n  \"sku\":{\r\n    \"name\":\"\",\r\n    \"tier\":\"\",\r\n    \"capacity\":null\r\n  },\r\n  \"upgradePolicy\":{\r\n    \"mode\":null\r\n  },\r\n  \"virtualMachineProfile\":{\r\n    \"osProfile\":{\r\n      \"computerNamePrefix\":\"\",\r\n      \"adminUsername\":\"\",\r\n      \"adminPassword\":\"\",\r\n      \"customData\":\"\",\r\n      \"windowsConfiguration\":{\r\n        \"provisionVMAgent\":null,\r\n        \"enableAutomaticUpdates\":null,\r\n        \"timeZone\":\"\",\r\n        \"additionalUnattendContent\":[\r\n          {\r\n            \"passName\":null,\r\n            \"componentName\":null,\r\n            \"settingName\":null,\r\n            \"content\":\"\"\r\n          }\r\n        ],\r\n        \"winRM\":{\r\n          \"listeners\":[\r\n            {\r\n              \"protocol\":null,\r\n              \"certificateUrl\":\"\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      \"linuxConfiguration\":{\r\n        \"disablePasswordAuthentication\":null,\r\n        \"ssh\":{\r\n          \"publicKeys\":[\r\n            {\r\n              \"path\":\"\",\r\n              \"keyData\":\"\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      \"secrets\":[\r\n        {\r\n          \"sourceVault\":{\r\n            \"id\":\"\"\r\n          },\r\n          \"vaultCertificates\":[\r\n            {\r\n              \"certificateUrl\":\"\",\r\n              \"certificateStore\":\"\"\r\n            }\r\n          ]\r\n        }\r\n      ]\r\n    },\r\n    \"storageProfile\":{\r\n      \"imageReference\":{\r\n        \"publisher\":\"\",\r\n        \"offer\":\"\",\r\n        \"sku\":\"\",\r\n        \"version\":\"\"\r\n      },\r\n      \"osDisk\":{\r\n        \"name\":\"\",\r\n        \"caching\":null,\r\n        \"createOption\":\"\",\r\n        \"osType\":null,\r\n        \"image\":{\r\n          \"uri\":\"\"\r\n        },\r\n        \"vhdContainers\":[\r\n          \"\"\r\n        ]\r\n      }\r\n    },\r\n    \"networkProfile\":{\r\n      \"networkInterfaceConfigurations\":[\r\n        {\r\n          \"name\":\"\",\r\n          \"primary\":null,\r\n          \"ipConfigurations\":[\r\n            {\r\n              \"name\":\"\",\r\n              \"subnet\":{\r\n                \"id\":\"\"\r\n              },\r\n              \"applicationGatewayBackendAddressPools\":[\r\n                {\r\n                  \"id\":\"\"\r\n                }\r\n              ],\r\n              \"loadBalancerBackendAddressPools\":[\r\n                {\r\n                  \"id\":\"\"\r\n                }\r\n              ],\r\n              \"loadBalancerInboundNatPools\":[\r\n                {\r\n                  \"id\":\"\"\r\n                }\r\n              ],\r\n              \"id\":\"\"\r\n            }\r\n          ],\r\n          \"id\":\"\"\r\n        }\r\n      ]\r\n    },\r\n    \"extensionProfile\":{\r\n      \"extensions\":[\r\n        {\r\n          \"name\":\"\",\r\n          \"publisher\":\"\",\r\n          \"type\":\"\",\r\n          \"typeHandlerVersion\":\"\",\r\n          \"autoUpgradeMinorVersion\":null,\r\n          \"settings\":{\r\n          },\r\n          \"protectedSettings\":{\r\n          },\r\n          \"provisioningState\":\"\",\r\n          \"id\":\"\"\r\n        }\r\n      ]\r\n    }\r\n  },\r\n  \"provisioningState\":\"\",\r\n  \"overProvision\":null,\r\n  \"id\":null,\r\n  \"name\":null,\r\n  \"type\":null,\r\n  \"location\":\"\",\r\n  \"tags\":{\r\n  }\r\n}\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--sku <sku>", $("Set the sku value.")).option("--upgrade-policy <upgradePolicy>", $("Set the upgrade-policy value.")).option("--virtual-machine-profile <virtualMachineProfile>", $("Set the virtual-machine-profile value.")).option("--provisioning-state <provisioningState>", $("Set the provisioning-state value.")).option("--over-provision <overProvision>", $("Set the over-provision value.")).option("--id <id>", $("Set the id value.")).option("--name <name>", $("Set the name value.")).option("--type <type>", $("Set the type value.")).option("--location <location>", $("Set the location value.")).option("--tags <tags>", $("Set the tags value.")).execute(function __4(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__4", line: 854 }; return __func(_, this, arguments, __4, 1, __frame, function __$__4() {















      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__4() { return (function __$__4(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__4() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "sku");
          if (options.sku) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.sku));
            cli.output.verbose("================================================");
            if ((options.parse && options.sku)) {
              options.sku = JSON.parse(options.sku); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.sku },]); } ;

          paramPath = ((options.path + "/") + "upgradePolicy");
          if (options.upgradePolicy) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.upgradePolicy));
            cli.output.verbose("================================================");
            if ((options.parse && options.upgradePolicy)) {
              options.upgradePolicy = JSON.parse(options.upgradePolicy); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.upgradePolicy },]); } ;

          paramPath = ((options.path + "/") + "virtualMachineProfile");
          if (options.virtualMachineProfile) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.virtualMachineProfile));
            cli.output.verbose("================================================");
            if ((options.parse && options.virtualMachineProfile)) {
              options.virtualMachineProfile = JSON.parse(options.virtualMachineProfile); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.virtualMachineProfile },]); } ;

          paramPath = ((options.path + "/") + "provisioningState");
          if (options.provisioningState) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.provisioningState));
            cli.output.verbose("================================================");
            if ((options.parse && options.provisioningState)) {
              options.provisioningState = JSON.parse(options.provisioningState); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.provisioningState },]); } ;

          paramPath = ((options.path + "/") + "overProvision");
          if (options.overProvision) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.overProvision));
            cli.output.verbose("================================================");
            if ((options.parse && options.overProvision)) {
              options.overProvision = JSON.parse(options.overProvision); } ;

            options.overProvision = JSON.parse(options.overProvision);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.overProvision },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          paramPath = ((options.path + "/") + "name");
          if (options.name) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.name));
            cli.output.verbose("================================================");
            if ((options.parse && options.name)) {
              options.name = JSON.parse(options.name); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.name },]); } ;

          paramPath = ((options.path + "/") + "type");
          if (options.type) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.type));
            cli.output.verbose("================================================");
            if ((options.parse && options.type)) {
              options.type = JSON.parse(options.type); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.type },]); } ;

          paramPath = ((options.path + "/") + "location");
          if (options.location) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.location));
            cli.output.verbose("================================================");
            if ((options.parse && options.location)) {
              options.location = JSON.parse(options.location); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.location },]); } ;

          paramPath = ((options.path + "/") + "tags");
          if (options.tags) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.tags));
            cli.output.verbose("================================================");
            if ((options.parse && options.tags)) {
              options.tags = JSON.parse(options.tags); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.tags },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet1 = catparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet1 = parametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet1.category("virtual-machine-scale-set").description($("Commands to configure virtual-machine-scale-set of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineScaleSet1.command("delete").description($("Remove virtual-machine-scale-set in config string or files, e.g. \r\n{\r\n  \"sku\":{\r\n    \"name\":\"\",\r\n    \"tier\":\"\",\r\n    \"capacity\":null\r\n  },\r\n  \"upgradePolicy\":{\r\n    \"mode\":null\r\n  },\r\n  \"virtualMachineProfile\":{\r\n    \"osProfile\":{\r\n      \"computerNamePrefix\":\"\",\r\n      \"adminUsername\":\"\",\r\n      \"adminPassword\":\"\",\r\n      \"customData\":\"\",\r\n      \"windowsConfiguration\":{\r\n        \"provisionVMAgent\":null,\r\n        \"enableAutomaticUpdates\":null,\r\n        \"timeZone\":\"\",\r\n        \"additionalUnattendContent\":[\r\n          {\r\n            \"passName\":null,\r\n            \"componentName\":null,\r\n            \"settingName\":null,\r\n            \"content\":\"\"\r\n          }\r\n        ],\r\n        \"winRM\":{\r\n          \"listeners\":[\r\n            {\r\n              \"protocol\":null,\r\n              \"certificateUrl\":\"\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      \"linuxConfiguration\":{\r\n        \"disablePasswordAuthentication\":null,\r\n        \"ssh\":{\r\n          \"publicKeys\":[\r\n            {\r\n              \"path\":\"\",\r\n              \"keyData\":\"\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      \"secrets\":[\r\n        {\r\n          \"sourceVault\":{\r\n            \"id\":\"\"\r\n          },\r\n          \"vaultCertificates\":[\r\n            {\r\n              \"certificateUrl\":\"\",\r\n              \"certificateStore\":\"\"\r\n            }\r\n          ]\r\n        }\r\n      ]\r\n    },\r\n    \"storageProfile\":{\r\n      \"imageReference\":{\r\n        \"publisher\":\"\",\r\n        \"offer\":\"\",\r\n        \"sku\":\"\",\r\n        \"version\":\"\"\r\n      },\r\n      \"osDisk\":{\r\n        \"name\":\"\",\r\n        \"caching\":null,\r\n        \"createOption\":\"\",\r\n        \"osType\":null,\r\n        \"image\":{\r\n          \"uri\":\"\"\r\n        },\r\n        \"vhdContainers\":[\r\n          \"\"\r\n        ]\r\n      }\r\n    },\r\n    \"networkProfile\":{\r\n      \"networkInterfaceConfigurations\":[\r\n        {\r\n          \"name\":\"\",\r\n          \"primary\":null,\r\n          \"ipConfigurations\":[\r\n            {\r\n              \"name\":\"\",\r\n              \"subnet\":{\r\n                \"id\":\"\"\r\n              },\r\n              \"applicationGatewayBackendAddressPools\":[\r\n                {\r\n                  \"id\":\"\"\r\n                }\r\n              ],\r\n              \"loadBalancerBackendAddressPools\":[\r\n                {\r\n                  \"id\":\"\"\r\n                }\r\n              ],\r\n              \"loadBalancerInboundNatPools\":[\r\n                {\r\n                  \"id\":\"\"\r\n                }\r\n              ],\r\n              \"id\":\"\"\r\n            }\r\n          ],\r\n          \"id\":\"\"\r\n        }\r\n      ]\r\n    },\r\n    \"extensionProfile\":{\r\n      \"extensions\":[\r\n        {\r\n          \"name\":\"\",\r\n          \"publisher\":\"\",\r\n          \"type\":\"\",\r\n          \"typeHandlerVersion\":\"\",\r\n          \"autoUpgradeMinorVersion\":null,\r\n          \"settings\":{\r\n          },\r\n          \"protectedSettings\":{\r\n          },\r\n          \"provisioningState\":\"\",\r\n          \"id\":\"\"\r\n        }\r\n      ]\r\n    }\r\n  },\r\n  \"provisioningState\":\"\",\r\n  \"overProvision\":null,\r\n  \"id\":null,\r\n  \"name\":null,\r\n  \"type\":null,\r\n  \"location\":\"\",\r\n  \"tags\":{\r\n  }\r\n}\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--sku", $("Remove the sku value.")).option("--upgrade-policy", $("Remove the upgrade-policy value.")).option("--virtual-machine-profile", $("Remove the virtual-machine-profile value.")).option("--provisioning-state", $("Remove the provisioning-state value.")).option("--over-provision", $("Remove the over-provision value.")).option("--id", $("Remove the id value.")).option("--name", $("Remove the name value.")).option("--type", $("Remove the type value.")).option("--location", $("Remove the location value.")).option("--tags", $("Remove the tags value.")).execute(function __5(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__5", line: 1015 }; return __func(_, this, arguments, __5, 1, __frame, function __$__5() {














      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__5() { return (function __$__5(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__5() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "";
          anySubItem = ((((((((((false || options.sku) || options.upgradePolicy) || options.virtualMachineProfile) || options.provisioningState) || options.overProvision) || options.id) || options.name) || options.type) || options.location) || options.tags);
          if (anySubItem) {
            subItemPath = null;
            if (options.sku) {
              subItemPath = (options.path + "/sku");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.upgradePolicy) {
              subItemPath = (options.path + "/upgradePolicy");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.virtualMachineProfile) {
              subItemPath = (options.path + "/virtualMachineProfile");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.provisioningState) {
              subItemPath = (options.path + "/provisioningState");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.overProvision) {
              subItemPath = (options.path + "/overProvision");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.name) {
              subItemPath = (options.path + "/name");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.type) {
              subItemPath = (options.path + "/type");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.location) {
              subItemPath = (options.path + "/location");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.tags) {
              subItemPath = (options.path + "/tags");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsSku0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSku0 = catparametersCreateOrUpdateVirtualMachineScaleSetsSku0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsSku0 = parametersCreateOrUpdateVirtualMachineScaleSetsSku0.category("sku").description($("Commands to configure sku of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsSku0.command("set").description($("Set sku in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"sku\" : {\r\n             \"name\":\"\",\r\n             \"tier\":\"\",\r\n             \"capacity\":null\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--name <name>", $("Set the name value.")).option("--tier <tier>", $("Set the tier value.")).option("--capacity <capacity>", $("Set the capacity value.")).execute(function __6(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__6", line: 1102 }; return __func(_, this, arguments, __6, 1, __frame, function __$__6() {








      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__6() { return (function __$__6(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__6() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/sku";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "name");
          if (options.name) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.name));
            cli.output.verbose("================================================");
            if ((options.parse && options.name)) {
              options.name = JSON.parse(options.name); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.name },]); } ;

          paramPath = ((options.path + "/") + "tier");
          if (options.tier) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.tier));
            cli.output.verbose("================================================");
            if ((options.parse && options.tier)) {
              options.tier = JSON.parse(options.tier); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.tier },]); } ;

          paramPath = ((options.path + "/") + "capacity");
          if (options.capacity) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.capacity));
            cli.output.verbose("================================================");
            if ((options.parse && options.capacity)) {
              options.capacity = JSON.parse(options.capacity); } ;

            options.capacity = JSON.parse(options.capacity);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.capacity },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsSku1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSku1 = catparametersCreateOrUpdateVirtualMachineScaleSetsSku1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsSku1 = parametersCreateOrUpdateVirtualMachineScaleSetsSku1.category("sku").description($("Commands to configure sku of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsSku1.command("delete").description($("Remove sku in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"sku\" : {\r\n             \"name\":\"\",\r\n             \"tier\":\"\",\r\n             \"capacity\":null\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--name", $("Remove the name value.")).option("--tier", $("Remove the tier value.")).option("--capacity", $("Remove the capacity value.")).execute(function __7(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__7", line: 1179 }; return __func(_, this, arguments, __7, 1, __frame, function __$__7() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__7() { return (function __$__7(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__7() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/sku";
          anySubItem = (((false || options.name) || options.tier) || options.capacity);
          if (anySubItem) {
            subItemPath = null;
            if (options.name) {
              subItemPath = (options.path + "/name");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.tier) {
              subItemPath = (options.path + "/tier");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.capacity) {
              subItemPath = (options.path + "/capacity");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy0 = catparametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy0 = parametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy0.category("upgrade-policy").description($("Commands to configure upgrade-policy of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy0.command("set").description($("Set upgrade-policy in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"upgradePolicy\" : {\r\n             \"mode\":null\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--mode <mode>", $("Set the mode value.")).execute(function __8(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__8", line: 1236 }; return __func(_, this, arguments, __8, 1, __frame, function __$__8() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__8() { return (function __$__8(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__8() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/upgradePolicy";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "mode");
          if (options.mode) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.mode));
            cli.output.verbose("================================================");
            if ((options.parse && options.mode)) {
              options.mode = JSON.parse(options.mode); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.mode },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy1 = catparametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy1 = parametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy1.category("upgrade-policy").description($("Commands to configure upgrade-policy of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsUpgradePolicy1.command("delete").description($("Remove upgrade-policy in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"upgradePolicy\" : {\r\n             \"mode\":null\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--mode", $("Remove the mode value.")).execute(function __9(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__9", line: 1288 }; return __func(_, this, arguments, __9, 1, __frame, function __$__9() {





      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__9() { return (function __$__9(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__9() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/upgradePolicy";
          anySubItem = (false || options.mode);
          if (anySubItem) {
            subItemPath = null;
            if (options.mode) {
              subItemPath = (options.path + "/mode");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile0 = catparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile0 = parametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile0.category("virtual-machine-profile").description($("Commands to configure virtual-machine-profile of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile0.command("set").description($("Set virtual-machine-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"virtualMachineProfile\" : {\r\n             \"osProfile\":{\r\n               \"computerNamePrefix\":\"\",\r\n               \"adminUsername\":\"\",\r\n               \"adminPassword\":\"\",\r\n               \"customData\":\"\",\r\n               \"windowsConfiguration\":{\r\n                 \"provisionVMAgent\":null,\r\n                 \"enableAutomaticUpdates\":null,\r\n                 \"timeZone\":\"\",\r\n                 \"additionalUnattendContent\":[\r\n                   {\r\n                     \"passName\":null,\r\n                     \"componentName\":null,\r\n                     \"settingName\":null,\r\n                     \"content\":\"\"\r\n                   }\r\n                 ],\r\n                 \"winRM\":{\r\n                   \"listeners\":[\r\n                     {\r\n                       \"protocol\":null,\r\n                       \"certificateUrl\":\"\"\r\n                     }\r\n                   ]\r\n                 }\r\n               },\r\n               \"linuxConfiguration\":{\r\n                 \"disablePasswordAuthentication\":null,\r\n                 \"ssh\":{\r\n                   \"publicKeys\":[\r\n                     {\r\n                       \"path\":\"\",\r\n                       \"keyData\":\"\"\r\n                     }\r\n                   ]\r\n                 }\r\n               },\r\n               \"secrets\":[\r\n                 {\r\n                   \"sourceVault\":{\r\n                     \"id\":\"\"\r\n                   },\r\n                   \"vaultCertificates\":[\r\n                     {\r\n                       \"certificateUrl\":\"\",\r\n                       \"certificateStore\":\"\"\r\n                     }\r\n                   ]\r\n                 }\r\n               ]\r\n             },\r\n             \"storageProfile\":{\r\n               \"imageReference\":{\r\n                 \"publisher\":\"\",\r\n                 \"offer\":\"\",\r\n                 \"sku\":\"\",\r\n                 \"version\":\"\"\r\n               },\r\n               \"osDisk\":{\r\n                 \"name\":\"\",\r\n                 \"caching\":null,\r\n                 \"createOption\":\"\",\r\n                 \"osType\":null,\r\n                 \"image\":{\r\n                   \"uri\":\"\"\r\n                 },\r\n                 \"vhdContainers\":[\r\n                   \"\"\r\n                 ]\r\n               }\r\n             },\r\n             \"networkProfile\":{\r\n               \"networkInterfaceConfigurations\":[\r\n                 {\r\n                   \"name\":\"\",\r\n                   \"primary\":null,\r\n                   \"ipConfigurations\":[\r\n                     {\r\n                       \"name\":\"\",\r\n                       \"subnet\":{\r\n                         \"id\":\"\"\r\n                       },\r\n                       \"applicationGatewayBackendAddressPools\":[\r\n                         {\r\n                           \"id\":\"\"\r\n                         }\r\n                       ],\r\n                       \"loadBalancerBackendAddressPools\":[\r\n                         {\r\n                           \"id\":\"\"\r\n                         }\r\n                       ],\r\n                       \"loadBalancerInboundNatPools\":[\r\n                         {\r\n                           \"id\":\"\"\r\n                         }\r\n                       ],\r\n                       \"id\":\"\"\r\n                     }\r\n                   ],\r\n                   \"id\":\"\"\r\n                 }\r\n               ]\r\n             },\r\n             \"extensionProfile\":{\r\n               \"extensions\":[\r\n                 {\r\n                   \"name\":\"\",\r\n                   \"publisher\":\"\",\r\n                   \"type\":\"\",\r\n                   \"typeHandlerVersion\":\"\",\r\n                   \"autoUpgradeMinorVersion\":null,\r\n                   \"settings\":{\r\n                   },\r\n                   \"protectedSettings\":{\r\n                   },\r\n                   \"provisioningState\":\"\",\r\n                   \"id\":\"\"\r\n                 }\r\n               ]\r\n             }\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--os-profile <osProfile>", $("Set the os-profile value.")).option("--storage-profile <storageProfile>", $("Set the storage-profile value.")).option("--network-profile <networkProfile>", $("Set the network-profile value.")).option("--extension-profile <extensionProfile>", $("Set the extension-profile value.")).execute(function __10(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__10", line: 1340 }; return __func(_, this, arguments, __10, 1, __frame, function __$__10() {









      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__10() { return (function __$__10(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__10() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "osProfile");
          if (options.osProfile) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.osProfile));
            cli.output.verbose("================================================");
            if ((options.parse && options.osProfile)) {
              options.osProfile = JSON.parse(options.osProfile); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.osProfile },]); } ;

          paramPath = ((options.path + "/") + "storageProfile");
          if (options.storageProfile) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.storageProfile));
            cli.output.verbose("================================================");
            if ((options.parse && options.storageProfile)) {
              options.storageProfile = JSON.parse(options.storageProfile); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.storageProfile },]); } ;

          paramPath = ((options.path + "/") + "networkProfile");
          if (options.networkProfile) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.networkProfile));
            cli.output.verbose("================================================");
            if ((options.parse && options.networkProfile)) {
              options.networkProfile = JSON.parse(options.networkProfile); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.networkProfile },]); } ;

          paramPath = ((options.path + "/") + "extensionProfile");
          if (options.extensionProfile) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.extensionProfile));
            cli.output.verbose("================================================");
            if ((options.parse && options.extensionProfile)) {
              options.extensionProfile = JSON.parse(options.extensionProfile); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.extensionProfile },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile1 = catparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile1 = parametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile1.category("virtual-machine-profile").description($("Commands to configure virtual-machine-profile of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsVirtualMachineProfile1.command("delete").description($("Remove virtual-machine-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"virtualMachineProfile\" : {\r\n             \"osProfile\":{\r\n               \"computerNamePrefix\":\"\",\r\n               \"adminUsername\":\"\",\r\n               \"adminPassword\":\"\",\r\n               \"customData\":\"\",\r\n               \"windowsConfiguration\":{\r\n                 \"provisionVMAgent\":null,\r\n                 \"enableAutomaticUpdates\":null,\r\n                 \"timeZone\":\"\",\r\n                 \"additionalUnattendContent\":[\r\n                   {\r\n                     \"passName\":null,\r\n                     \"componentName\":null,\r\n                     \"settingName\":null,\r\n                     \"content\":\"\"\r\n                   }\r\n                 ],\r\n                 \"winRM\":{\r\n                   \"listeners\":[\r\n                     {\r\n                       \"protocol\":null,\r\n                       \"certificateUrl\":\"\"\r\n                     }\r\n                   ]\r\n                 }\r\n               },\r\n               \"linuxConfiguration\":{\r\n                 \"disablePasswordAuthentication\":null,\r\n                 \"ssh\":{\r\n                   \"publicKeys\":[\r\n                     {\r\n                       \"path\":\"\",\r\n                       \"keyData\":\"\"\r\n                     }\r\n                   ]\r\n                 }\r\n               },\r\n               \"secrets\":[\r\n                 {\r\n                   \"sourceVault\":{\r\n                     \"id\":\"\"\r\n                   },\r\n                   \"vaultCertificates\":[\r\n                     {\r\n                       \"certificateUrl\":\"\",\r\n                       \"certificateStore\":\"\"\r\n                     }\r\n                   ]\r\n                 }\r\n               ]\r\n             },\r\n             \"storageProfile\":{\r\n               \"imageReference\":{\r\n                 \"publisher\":\"\",\r\n                 \"offer\":\"\",\r\n                 \"sku\":\"\",\r\n                 \"version\":\"\"\r\n               },\r\n               \"osDisk\":{\r\n                 \"name\":\"\",\r\n                 \"caching\":null,\r\n                 \"createOption\":\"\",\r\n                 \"osType\":null,\r\n                 \"image\":{\r\n                   \"uri\":\"\"\r\n                 },\r\n                 \"vhdContainers\":[\r\n                   \"\"\r\n                 ]\r\n               }\r\n             },\r\n             \"networkProfile\":{\r\n               \"networkInterfaceConfigurations\":[\r\n                 {\r\n                   \"name\":\"\",\r\n                   \"primary\":null,\r\n                   \"ipConfigurations\":[\r\n                     {\r\n                       \"name\":\"\",\r\n                       \"subnet\":{\r\n                         \"id\":\"\"\r\n                       },\r\n                       \"applicationGatewayBackendAddressPools\":[\r\n                         {\r\n                           \"id\":\"\"\r\n                         }\r\n                       ],\r\n                       \"loadBalancerBackendAddressPools\":[\r\n                         {\r\n                           \"id\":\"\"\r\n                         }\r\n                       ],\r\n                       \"loadBalancerInboundNatPools\":[\r\n                         {\r\n                           \"id\":\"\"\r\n                         }\r\n                       ],\r\n                       \"id\":\"\"\r\n                     }\r\n                   ],\r\n                   \"id\":\"\"\r\n                 }\r\n               ]\r\n             },\r\n             \"extensionProfile\":{\r\n               \"extensions\":[\r\n                 {\r\n                   \"name\":\"\",\r\n                   \"publisher\":\"\",\r\n                   \"type\":\"\",\r\n                   \"typeHandlerVersion\":\"\",\r\n                   \"autoUpgradeMinorVersion\":null,\r\n                   \"settings\":{\r\n                   },\r\n                   \"protectedSettings\":{\r\n                   },\r\n                   \"provisioningState\":\"\",\r\n                   \"id\":\"\"\r\n                 }\r\n               ]\r\n             }\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--os-profile", $("Remove the os-profile value.")).option("--storage-profile", $("Remove the storage-profile value.")).option("--network-profile", $("Remove the network-profile value.")).option("--extension-profile", $("Remove the extension-profile value.")).execute(function __11(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__11", line: 1428 }; return __func(_, this, arguments, __11, 1, __frame, function __$__11() {








      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__11() { return (function __$__11(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__11() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile";
          anySubItem = ((((false || options.osProfile) || options.storageProfile) || options.networkProfile) || options.extensionProfile);
          if (anySubItem) {
            subItemPath = null;
            if (options.osProfile) {
              subItemPath = (options.path + "/osProfile");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.storageProfile) {
              subItemPath = (options.path + "/storageProfile");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.networkProfile) {
              subItemPath = (options.path + "/networkProfile");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.extensionProfile) {
              subItemPath = (options.path + "/extensionProfile");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsOsProfile0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsOsProfile0 = catparametersCreateOrUpdateVirtualMachineScaleSetsOsProfile0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsOsProfile0 = parametersCreateOrUpdateVirtualMachineScaleSetsOsProfile0.category("os-profile").description($("Commands to configure os-profile of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsOsProfile0.command("set").description($("Set os-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"osProfile\" : {\r\n             \"computerNamePrefix\":\"\",\r\n             \"adminUsername\":\"\",\r\n             \"adminPassword\":\"\",\r\n             \"customData\":\"\",\r\n             \"windowsConfiguration\":{\r\n               \"provisionVMAgent\":null,\r\n               \"enableAutomaticUpdates\":null,\r\n               \"timeZone\":\"\",\r\n               \"additionalUnattendContent\":[\r\n                 {\r\n                   \"passName\":null,\r\n                   \"componentName\":null,\r\n                   \"settingName\":null,\r\n                   \"content\":\"\"\r\n                 }\r\n               ],\r\n               \"winRM\":{\r\n                 \"listeners\":[\r\n                   {\r\n                     \"protocol\":null,\r\n                     \"certificateUrl\":\"\"\r\n                   }\r\n                 ]\r\n               }\r\n             },\r\n             \"linuxConfiguration\":{\r\n               \"disablePasswordAuthentication\":null,\r\n               \"ssh\":{\r\n                 \"publicKeys\":[\r\n                   {\r\n                     \"path\":\"\",\r\n                     \"keyData\":\"\"\r\n                   }\r\n                 ]\r\n               }\r\n             },\r\n             \"secrets\":[\r\n               {\r\n                 \"sourceVault\":{\r\n                   \"id\":\"\"\r\n                 },\r\n                 \"vaultCertificates\":[\r\n                   {\r\n                     \"certificateUrl\":\"\",\r\n                     \"certificateStore\":\"\"\r\n                   }\r\n                 ]\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--computer-name-prefix <computerNamePrefix>", $("Set the computer-name-prefix value.")).option("--admin-username <adminUsername>", $("Set the admin-username value.")).option("--admin-password <adminPassword>", $("Set the admin-password value.")).option("--custom-data <customData>", $("Set the custom-data value.")).option("--windows-configuration <windowsConfiguration>", $("Set the windows-configuration value.")).option("--linux-configuration <linuxConfiguration>", $("Set the linux-configuration value.")).option("--secrets <secrets>", $("Set the secrets value.")).execute(function __12(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__12", line: 1495 }; return __func(_, this, arguments, __12, 1, __frame, function __$__12() {












      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__12() { return (function __$__12(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__12() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/osProfile";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "computerNamePrefix");
          if (options.computerNamePrefix) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.computerNamePrefix));
            cli.output.verbose("================================================");
            if ((options.parse && options.computerNamePrefix)) {
              options.computerNamePrefix = JSON.parse(options.computerNamePrefix); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.computerNamePrefix },]); } ;

          paramPath = ((options.path + "/") + "adminUsername");
          if (options.adminUsername) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.adminUsername));
            cli.output.verbose("================================================");
            if ((options.parse && options.adminUsername)) {
              options.adminUsername = JSON.parse(options.adminUsername); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.adminUsername },]); } ;

          paramPath = ((options.path + "/") + "adminPassword");
          if (options.adminPassword) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.adminPassword));
            cli.output.verbose("================================================");
            if ((options.parse && options.adminPassword)) {
              options.adminPassword = JSON.parse(options.adminPassword); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.adminPassword },]); } ;

          paramPath = ((options.path + "/") + "customData");
          if (options.customData) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.customData));
            cli.output.verbose("================================================");
            if ((options.parse && options.customData)) {
              options.customData = JSON.parse(options.customData); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.customData },]); } ;

          paramPath = ((options.path + "/") + "windowsConfiguration");
          if (options.windowsConfiguration) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.windowsConfiguration));
            cli.output.verbose("================================================");
            if ((options.parse && options.windowsConfiguration)) {
              options.windowsConfiguration = JSON.parse(options.windowsConfiguration); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.windowsConfiguration },]); } ;

          paramPath = ((options.path + "/") + "linuxConfiguration");
          if (options.linuxConfiguration) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.linuxConfiguration));
            cli.output.verbose("================================================");
            if ((options.parse && options.linuxConfiguration)) {
              options.linuxConfiguration = JSON.parse(options.linuxConfiguration); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.linuxConfiguration },]); } ;

          paramPath = ((options.path + "/") + "secrets");
          if (options.secrets) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.secrets));
            cli.output.verbose("================================================");
            if ((options.parse && options.secrets)) {
              options.secrets = JSON.parse(options.secrets); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.secrets },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsOsProfile1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsOsProfile1 = catparametersCreateOrUpdateVirtualMachineScaleSetsOsProfile1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsOsProfile1 = parametersCreateOrUpdateVirtualMachineScaleSetsOsProfile1.category("os-profile").description($("Commands to configure os-profile of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsOsProfile1.command("delete").description($("Remove os-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"osProfile\" : {\r\n             \"computerNamePrefix\":\"\",\r\n             \"adminUsername\":\"\",\r\n             \"adminPassword\":\"\",\r\n             \"customData\":\"\",\r\n             \"windowsConfiguration\":{\r\n               \"provisionVMAgent\":null,\r\n               \"enableAutomaticUpdates\":null,\r\n               \"timeZone\":\"\",\r\n               \"additionalUnattendContent\":[\r\n                 {\r\n                   \"passName\":null,\r\n                   \"componentName\":null,\r\n                   \"settingName\":null,\r\n                   \"content\":\"\"\r\n                 }\r\n               ],\r\n               \"winRM\":{\r\n                 \"listeners\":[\r\n                   {\r\n                     \"protocol\":null,\r\n                     \"certificateUrl\":\"\"\r\n                   }\r\n                 ]\r\n               }\r\n             },\r\n             \"linuxConfiguration\":{\r\n               \"disablePasswordAuthentication\":null,\r\n               \"ssh\":{\r\n                 \"publicKeys\":[\r\n                   {\r\n                     \"path\":\"\",\r\n                     \"keyData\":\"\"\r\n                   }\r\n                 ]\r\n               }\r\n             },\r\n             \"secrets\":[\r\n               {\r\n                 \"sourceVault\":{\r\n                   \"id\":\"\"\r\n                 },\r\n                 \"vaultCertificates\":[\r\n                   {\r\n                     \"certificateUrl\":\"\",\r\n                     \"certificateStore\":\"\"\r\n                   }\r\n                 ]\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--computer-name-prefix", $("Remove the computer-name-prefix value.")).option("--admin-username", $("Remove the admin-username value.")).option("--admin-password", $("Remove the admin-password value.")).option("--custom-data", $("Remove the custom-data value.")).option("--windows-configuration", $("Remove the windows-configuration value.")).option("--linux-configuration", $("Remove the linux-configuration value.")).option("--secrets", $("Remove the secrets value.")).execute(function __13(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__13", line: 1619 }; return __func(_, this, arguments, __13, 1, __frame, function __$__13() {











      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__13() { return (function __$__13(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__13() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/osProfile";
          anySubItem = (((((((false || options.computerNamePrefix) || options.adminUsername) || options.adminPassword) || options.customData) || options.windowsConfiguration) || options.linuxConfiguration) || options.secrets);
          if (anySubItem) {
            subItemPath = null;
            if (options.computerNamePrefix) {
              subItemPath = (options.path + "/computerNamePrefix");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.adminUsername) {
              subItemPath = (options.path + "/adminUsername");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.adminPassword) {
              subItemPath = (options.path + "/adminPassword");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.customData) {
              subItemPath = (options.path + "/customData");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.windowsConfiguration) {
              subItemPath = (options.path + "/windowsConfiguration");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.linuxConfiguration) {
              subItemPath = (options.path + "/linuxConfiguration");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.secrets) {
              subItemPath = (options.path + "/secrets");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration0 = catparametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration0 = parametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration0.category("windows-configuration").description($("Commands to configure windows-configuration of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration0.command("set").description($("Set windows-configuration in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"windowsConfiguration\" : {\r\n             \"provisionVMAgent\":null,\r\n             \"enableAutomaticUpdates\":null,\r\n             \"timeZone\":\"\",\r\n             \"additionalUnattendContent\":[\r\n               {\r\n                 \"passName\":null,\r\n                 \"componentName\":null,\r\n                 \"settingName\":null,\r\n                 \"content\":\"\"\r\n               }\r\n             ],\r\n             \"winRM\":{\r\n               \"listeners\":[\r\n                 {\r\n                   \"protocol\":null,\r\n                   \"certificateUrl\":\"\"\r\n                 }\r\n               ]\r\n             }\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--provision-vm-agent <provisionVMAgent>", $("Set the provision-vm-agent value.")).option("--enable-automatic-updates <enableAutomaticUpdates>", $("Set the enable-automatic-updates value.")).option("--time-zone <timeZone>", $("Set the time-zone value.")).option("--additional-unattend-content <additionalUnattendContent>", $("Set the additional-unattend-content value.")).option("--win-rm <winRM>", $("Set the win-rm value.")).execute(function __14(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__14", line: 1696 }; return __func(_, this, arguments, __14, 1, __frame, function __$__14() {










      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__14() { return (function __$__14(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__14() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/osProfile/windowsConfiguration";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "provisionVMAgent");
          if (options.provisionVMAgent) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.provisionVMAgent));
            cli.output.verbose("================================================");
            if ((options.parse && options.provisionVMAgent)) {
              options.provisionVMAgent = JSON.parse(options.provisionVMAgent); } ;

            options.provisionVMAgent = JSON.parse(options.provisionVMAgent);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.provisionVMAgent },]); } ;

          paramPath = ((options.path + "/") + "enableAutomaticUpdates");
          if (options.enableAutomaticUpdates) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.enableAutomaticUpdates));
            cli.output.verbose("================================================");
            if ((options.parse && options.enableAutomaticUpdates)) {
              options.enableAutomaticUpdates = JSON.parse(options.enableAutomaticUpdates); } ;

            options.enableAutomaticUpdates = JSON.parse(options.enableAutomaticUpdates);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.enableAutomaticUpdates },]); } ;

          paramPath = ((options.path + "/") + "timeZone");
          if (options.timeZone) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.timeZone));
            cli.output.verbose("================================================");
            if ((options.parse && options.timeZone)) {
              options.timeZone = JSON.parse(options.timeZone); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.timeZone },]); } ;

          paramPath = ((options.path + "/") + "additionalUnattendContent");
          if (options.additionalUnattendContent) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.additionalUnattendContent));
            cli.output.verbose("================================================");
            if ((options.parse && options.additionalUnattendContent)) {
              options.additionalUnattendContent = JSON.parse(options.additionalUnattendContent); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.additionalUnattendContent },]); } ;

          paramPath = ((options.path + "/") + "winRM");
          if (options.winRM) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.winRM));
            cli.output.verbose("================================================");
            if ((options.parse && options.winRM)) {
              options.winRM = JSON.parse(options.winRM); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.winRM },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration1 = catparametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration1 = parametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration1.category("windows-configuration").description($("Commands to configure windows-configuration of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsWindowsConfiguration1.command("delete").description($("Remove windows-configuration in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"windowsConfiguration\" : {\r\n             \"provisionVMAgent\":null,\r\n             \"enableAutomaticUpdates\":null,\r\n             \"timeZone\":\"\",\r\n             \"additionalUnattendContent\":[\r\n               {\r\n                 \"passName\":null,\r\n                 \"componentName\":null,\r\n                 \"settingName\":null,\r\n                 \"content\":\"\"\r\n               }\r\n             ],\r\n             \"winRM\":{\r\n               \"listeners\":[\r\n                 {\r\n                   \"protocol\":null,\r\n                   \"certificateUrl\":\"\"\r\n                 }\r\n               ]\r\n             }\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--provision-vm-agent", $("Remove the provision-vm-agent value.")).option("--enable-automatic-updates", $("Remove the enable-automatic-updates value.")).option("--time-zone", $("Remove the time-zone value.")).option("--additional-unattend-content", $("Remove the additional-unattend-content value.")).option("--win-rm", $("Remove the win-rm value.")).execute(function __15(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__15", line: 1798 }; return __func(_, this, arguments, __15, 1, __frame, function __$__15() {









      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__15() { return (function __$__15(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__15() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/osProfile/windowsConfiguration";
          anySubItem = (((((false || options.provisionVMAgent) || options.enableAutomaticUpdates) || options.timeZone) || options.additionalUnattendContent) || options.winRM);
          if (anySubItem) {
            subItemPath = null;
            if (options.provisionVMAgent) {
              subItemPath = (options.path + "/provisionVMAgent");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.enableAutomaticUpdates) {
              subItemPath = (options.path + "/enableAutomaticUpdates");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.timeZone) {
              subItemPath = (options.path + "/timeZone");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.additionalUnattendContent) {
              subItemPath = (options.path + "/additionalUnattendContent");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.winRM) {
              subItemPath = (options.path + "/winRM");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent0 = catparametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent0 = parametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent0.category("additional-unattend-content").description($("Commands to configure additional-unattend-content of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent0.command("set").description($("Set additional-unattend-content in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"additionalUnattendContent\" : {\r\n             \"passName\":null,\r\n             \"componentName\":null,\r\n             \"settingName\":null,\r\n             \"content\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--pass-name <passName>", $("Set the pass-name value.")).option("--component-name <componentName>", $("Set the component-name value.")).option("--setting-name <settingName>", $("Set the setting-name value.")).option("--content <content>", $("Set the content value.")).execute(function __16(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__16", line: 1868 }; return __func(_, this, arguments, __16, 1, __frame, function __$__16() {











      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__16() { return (function __$__16(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__16() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ("/virtualMachineProfile/osProfile/windowsConfiguration/additionalUnattendContent" + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "passName");
          if (options.passName) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.passName));
            cli.output.verbose("================================================");
            if ((options.parse && options.passName)) {
              options.passName = JSON.parse(options.passName); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.passName },]); } ;

          paramPath = ((options.path + "/") + "componentName");
          if (options.componentName) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.componentName));
            cli.output.verbose("================================================");
            if ((options.parse && options.componentName)) {
              options.componentName = JSON.parse(options.componentName); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.componentName },]); } ;

          paramPath = ((options.path + "/") + "settingName");
          if (options.settingName) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.settingName));
            cli.output.verbose("================================================");
            if ((options.parse && options.settingName)) {
              options.settingName = JSON.parse(options.settingName); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.settingName },]); } ;

          paramPath = ((options.path + "/") + "content");
          if (options.content) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.content));
            cli.output.verbose("================================================");
            if ((options.parse && options.content)) {
              options.content = JSON.parse(options.content); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.content },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent1 = catparametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent1 = parametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent1.category("additional-unattend-content").description($("Commands to configure additional-unattend-content of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsAdditionalUnattendContent1.command("delete").description($("Remove additional-unattend-content in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"additionalUnattendContent\" : {\r\n             \"passName\":null,\r\n             \"componentName\":null,\r\n             \"settingName\":null,\r\n             \"content\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--pass-name", $("Remove the pass-name value.")).option("--component-name", $("Remove the component-name value.")).option("--setting-name", $("Remove the setting-name value.")).option("--content", $("Remove the content value.")).execute(function __17(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__17", line: 1961 }; return __func(_, this, arguments, __17, 1, __frame, function __$__17() {









      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__17() { return (function __$__17(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__17() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ("/virtualMachineProfile/osProfile/windowsConfiguration/additionalUnattendContent" + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = ((((false || options.passName) || options.componentName) || options.settingName) || options.content);
          if (anySubItem) {
            subItemPath = null;
            if (options.passName) {
              subItemPath = (options.path + "/passName");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.componentName) {
              subItemPath = (options.path + "/componentName");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.settingName) {
              subItemPath = (options.path + "/settingName");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.content) {
              subItemPath = (options.path + "/content");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsWinRM0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsWinRM0 = catparametersCreateOrUpdateVirtualMachineScaleSetsWinRM0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsWinRM0 = parametersCreateOrUpdateVirtualMachineScaleSetsWinRM0.category("win-rm").description($("Commands to configure win-rm of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsWinRM0.command("set").description($("Set win-rm in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"winRM\" : {\r\n             \"listeners\":[\r\n               {\r\n                 \"protocol\":null,\r\n                 \"certificateUrl\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--listeners <listeners>", $("Set the listeners value.")).execute(function __18(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__18", line: 2022 }; return __func(_, this, arguments, __18, 1, __frame, function __$__18() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__18() { return (function __$__18(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__18() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/osProfile/windowsConfiguration/winRM";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "listeners");
          if (options.listeners) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.listeners));
            cli.output.verbose("================================================");
            if ((options.parse && options.listeners)) {
              options.listeners = JSON.parse(options.listeners); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.listeners },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsWinRM1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsWinRM1 = catparametersCreateOrUpdateVirtualMachineScaleSetsWinRM1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsWinRM1 = parametersCreateOrUpdateVirtualMachineScaleSetsWinRM1.category("win-rm").description($("Commands to configure win-rm of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsWinRM1.command("delete").description($("Remove win-rm in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"winRM\" : {\r\n             \"listeners\":[\r\n               {\r\n                 \"protocol\":null,\r\n                 \"certificateUrl\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--listeners", $("Remove the listeners value.")).execute(function __19(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__19", line: 2074 }; return __func(_, this, arguments, __19, 1, __frame, function __$__19() {





      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__19() { return (function __$__19(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__19() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/osProfile/windowsConfiguration/winRM";
          anySubItem = (false || options.listeners);
          if (anySubItem) {
            subItemPath = null;
            if (options.listeners) {
              subItemPath = (options.path + "/listeners");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsListeners0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsListeners0 = catparametersCreateOrUpdateVirtualMachineScaleSetsListeners0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsListeners0 = parametersCreateOrUpdateVirtualMachineScaleSetsListeners0.category("listeners").description($("Commands to configure listeners of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsListeners0.command("set").description($("Set listeners in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"listeners\" : {\r\n             \"protocol\":null,\r\n             \"certificateUrl\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--protocol <protocol>", $("Set the protocol value.")).option("--certificate-url <certificateUrl>", $("Set the certificate-url value.")).execute(function __20(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__20", line: 2126 }; return __func(_, this, arguments, __20, 1, __frame, function __$__20() {









      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__20() { return (function __$__20(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__20() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ("/virtualMachineProfile/osProfile/windowsConfiguration/winRM/listeners" + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "protocol");
          if (options.protocol) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.protocol));
            cli.output.verbose("================================================");
            if ((options.parse && options.protocol)) {
              options.protocol = JSON.parse(options.protocol); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.protocol },]); } ;

          paramPath = ((options.path + "/") + "certificateUrl");
          if (options.certificateUrl) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.certificateUrl));
            cli.output.verbose("================================================");
            if ((options.parse && options.certificateUrl)) {
              options.certificateUrl = JSON.parse(options.certificateUrl); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.certificateUrl },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsListeners1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsListeners1 = catparametersCreateOrUpdateVirtualMachineScaleSetsListeners1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsListeners1 = parametersCreateOrUpdateVirtualMachineScaleSetsListeners1.category("listeners").description($("Commands to configure listeners of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsListeners1.command("delete").description($("Remove listeners in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"listeners\" : {\r\n             \"protocol\":null,\r\n             \"certificateUrl\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--protocol", $("Remove the protocol value.")).option("--certificate-url", $("Remove the certificate-url value.")).execute(function __21(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__21", line: 2195 }; return __func(_, this, arguments, __21, 1, __frame, function __$__21() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__21() { return (function __$__21(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__21() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ("/virtualMachineProfile/osProfile/windowsConfiguration/winRM/listeners" + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = ((false || options.protocol) || options.certificateUrl);
          if (anySubItem) {
            subItemPath = null;
            if (options.protocol) {
              subItemPath = (options.path + "/protocol");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.certificateUrl) {
              subItemPath = (options.path + "/certificateUrl");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration0 = catparametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration0 = parametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration0.category("linux-configuration").description($("Commands to configure linux-configuration of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration0.command("set").description($("Set linux-configuration in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"linuxConfiguration\" : {\r\n             \"disablePasswordAuthentication\":null,\r\n             \"ssh\":{\r\n               \"publicKeys\":[\r\n                 {\r\n                   \"path\":\"\",\r\n                   \"keyData\":\"\"\r\n                 }\r\n               ]\r\n             }\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--disable-password-authentication <disablePasswordAuthentication>", $("Set the disable-password-authentication value.")).option("--ssh <ssh>", $("Set the ssh value.")).execute(function __22(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__22", line: 2249 }; return __func(_, this, arguments, __22, 1, __frame, function __$__22() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__22() { return (function __$__22(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__22() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/osProfile/linuxConfiguration";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "disablePasswordAuthentication");
          if (options.disablePasswordAuthentication) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.disablePasswordAuthentication));
            cli.output.verbose("================================================");
            if ((options.parse && options.disablePasswordAuthentication)) {
              options.disablePasswordAuthentication = JSON.parse(options.disablePasswordAuthentication); } ;

            options.disablePasswordAuthentication = JSON.parse(options.disablePasswordAuthentication);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.disablePasswordAuthentication },]); } ;

          paramPath = ((options.path + "/") + "ssh");
          if (options.ssh) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.ssh));
            cli.output.verbose("================================================");
            if ((options.parse && options.ssh)) {
              options.ssh = JSON.parse(options.ssh); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.ssh },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration1 = catparametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration1 = parametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration1.category("linux-configuration").description($("Commands to configure linux-configuration of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsLinuxConfiguration1.command("delete").description($("Remove linux-configuration in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"linuxConfiguration\" : {\r\n             \"disablePasswordAuthentication\":null,\r\n             \"ssh\":{\r\n               \"publicKeys\":[\r\n                 {\r\n                   \"path\":\"\",\r\n                   \"keyData\":\"\"\r\n                 }\r\n               ]\r\n             }\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--disable-password-authentication", $("Remove the disable-password-authentication value.")).option("--ssh", $("Remove the ssh value.")).execute(function __23(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__23", line: 2314 }; return __func(_, this, arguments, __23, 1, __frame, function __$__23() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__23() { return (function __$__23(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__23() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/osProfile/linuxConfiguration";
          anySubItem = ((false || options.disablePasswordAuthentication) || options.ssh);
          if (anySubItem) {
            subItemPath = null;
            if (options.disablePasswordAuthentication) {
              subItemPath = (options.path + "/disablePasswordAuthentication");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.ssh) {
              subItemPath = (options.path + "/ssh");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsSsh0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSsh0 = catparametersCreateOrUpdateVirtualMachineScaleSetsSsh0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsSsh0 = parametersCreateOrUpdateVirtualMachineScaleSetsSsh0.category("ssh").description($("Commands to configure ssh of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsSsh0.command("set").description($("Set ssh in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"ssh\" : {\r\n             \"publicKeys\":[\r\n               {\r\n                 \"path\":\"\",\r\n                 \"keyData\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--public-keys <publicKeys>", $("Set the public-keys value.")).execute(function __24(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__24", line: 2367 }; return __func(_, this, arguments, __24, 1, __frame, function __$__24() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__24() { return (function __$__24(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__24() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/osProfile/linuxConfiguration/ssh";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "publicKeys");
          if (options.publicKeys) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.publicKeys));
            cli.output.verbose("================================================");
            if ((options.parse && options.publicKeys)) {
              options.publicKeys = JSON.parse(options.publicKeys); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.publicKeys },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsSsh1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSsh1 = catparametersCreateOrUpdateVirtualMachineScaleSetsSsh1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsSsh1 = parametersCreateOrUpdateVirtualMachineScaleSetsSsh1.category("ssh").description($("Commands to configure ssh of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsSsh1.command("delete").description($("Remove ssh in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"ssh\" : {\r\n             \"publicKeys\":[\r\n               {\r\n                 \"path\":\"\",\r\n                 \"keyData\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--public-keys", $("Remove the public-keys value.")).execute(function __25(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__25", line: 2419 }; return __func(_, this, arguments, __25, 1, __frame, function __$__25() {





      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__25() { return (function __$__25(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__25() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/osProfile/linuxConfiguration/ssh";
          anySubItem = (false || options.publicKeys);
          if (anySubItem) {
            subItemPath = null;
            if (options.publicKeys) {
              subItemPath = (options.path + "/publicKeys");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys0 = catparametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys0 = parametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys0.category("public-keys").description($("Commands to configure public-keys of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys0.command("set").description($("Set public-keys in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"publicKeys\" : {\r\n             \"path\":\"\",\r\n             \"keyData\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--path <path>", $("Set the path value.")).option("--key-data <keyData>", $("Set the key-data value.")).execute(function __26(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__26", line: 2471 }; return __func(_, this, arguments, __26, 1, __frame, function __$__26() {









      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__26() { return (function __$__26(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__26() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ("/virtualMachineProfile/osProfile/linuxConfiguration/ssh/publicKeys" + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "path");
          if (options.path) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.path));
            cli.output.verbose("================================================");
            if ((options.parse && options.path)) {
              options.path = JSON.parse(options.path); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.path },]); } ;

          paramPath = ((options.path + "/") + "keyData");
          if (options.keyData) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.keyData));
            cli.output.verbose("================================================");
            if ((options.parse && options.keyData)) {
              options.keyData = JSON.parse(options.keyData); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.keyData },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys1 = catparametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys1 = parametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys1.category("public-keys").description($("Commands to configure public-keys of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsPublicKeys1.command("delete").description($("Remove public-keys in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"publicKeys\" : {\r\n             \"path\":\"\",\r\n             \"keyData\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--path", $("Remove the path value.")).option("--key-data", $("Remove the key-data value.")).execute(function __27(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__27", line: 2540 }; return __func(_, this, arguments, __27, 1, __frame, function __$__27() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__27() { return (function __$__27(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__27() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ("/virtualMachineProfile/osProfile/linuxConfiguration/ssh/publicKeys" + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = ((false || options.path) || options.keyData);
          if (anySubItem) {
            subItemPath = null;
            if (options.path) {
              subItemPath = (options.path + "/path");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.keyData) {
              subItemPath = (options.path + "/keyData");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsSecrets0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSecrets0 = catparametersCreateOrUpdateVirtualMachineScaleSetsSecrets0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsSecrets0 = parametersCreateOrUpdateVirtualMachineScaleSetsSecrets0.category("secrets").description($("Commands to configure secrets of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsSecrets0.command("set").description($("Set secrets in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"secrets\" : {\r\n             \"sourceVault\":{\r\n               \"id\":\"\"\r\n             },\r\n             \"vaultCertificates\":[\r\n               {\r\n                 \"certificateUrl\":\"\",\r\n                 \"certificateStore\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--source-vault <sourceVault>", $("Set the source-vault value.")).option("--vault-certificates <vaultCertificates>", $("Set the vault-certificates value.")).execute(function __28(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__28", line: 2596 }; return __func(_, this, arguments, __28, 1, __frame, function __$__28() {









      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__28() { return (function __$__28(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__28() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ("/virtualMachineProfile/osProfile/secrets" + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "sourceVault");
          if (options.sourceVault) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.sourceVault));
            cli.output.verbose("================================================");
            if ((options.parse && options.sourceVault)) {
              options.sourceVault = JSON.parse(options.sourceVault); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.sourceVault },]); } ;

          paramPath = ((options.path + "/") + "vaultCertificates");
          if (options.vaultCertificates) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.vaultCertificates));
            cli.output.verbose("================================================");
            if ((options.parse && options.vaultCertificates)) {
              options.vaultCertificates = JSON.parse(options.vaultCertificates); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.vaultCertificates },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsSecrets1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSecrets1 = catparametersCreateOrUpdateVirtualMachineScaleSetsSecrets1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsSecrets1 = parametersCreateOrUpdateVirtualMachineScaleSetsSecrets1.category("secrets").description($("Commands to configure secrets of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsSecrets1.command("delete").description($("Remove secrets in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"secrets\" : {\r\n             \"sourceVault\":{\r\n               \"id\":\"\"\r\n             },\r\n             \"vaultCertificates\":[\r\n               {\r\n                 \"certificateUrl\":\"\",\r\n                 \"certificateStore\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--source-vault", $("Remove the source-vault value.")).option("--vault-certificates", $("Remove the vault-certificates value.")).execute(function __29(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__29", line: 2665 }; return __func(_, this, arguments, __29, 1, __frame, function __$__29() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__29() { return (function __$__29(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__29() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ("/virtualMachineProfile/osProfile/secrets" + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = ((false || options.sourceVault) || options.vaultCertificates);
          if (anySubItem) {
            subItemPath = null;
            if (options.sourceVault) {
              subItemPath = (options.path + "/sourceVault");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.vaultCertificates) {
              subItemPath = (options.path + "/vaultCertificates");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsSourceVault0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSourceVault0 = catparametersCreateOrUpdateVirtualMachineScaleSetsSourceVault0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsSourceVault0 = parametersCreateOrUpdateVirtualMachineScaleSetsSourceVault0.category("source-vault").description($("Commands to configure source-vault of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsSourceVault0.command("set").description($("Set source-vault in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"sourceVault\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--secrets-index <secrets-index>", $("Indexer: secrets-index.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--id <id>", $("Set the id value.")).execute(function __30(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__30", line: 2719 }; return __func(_, this, arguments, __30, 1, __frame, function __$__30() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__30() { return (function __$__30(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__30() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = (("/virtualMachineProfile/osProfile/secrets/" + options.secretsIndex) + "/sourceVault");
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsSourceVault1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSourceVault1 = catparametersCreateOrUpdateVirtualMachineScaleSetsSourceVault1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsSourceVault1 = parametersCreateOrUpdateVirtualMachineScaleSetsSourceVault1.category("source-vault").description($("Commands to configure source-vault of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsSourceVault1.command("delete").description($("Remove source-vault in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"sourceVault\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--secrets-index <secrets-index>", $("Indexer: secrets-index.")).option("--id", $("Remove the id value.")).execute(function __31(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__31", line: 2772 }; return __func(_, this, arguments, __31, 1, __frame, function __$__31() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__31() { return (function __$__31(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__31() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = (("/virtualMachineProfile/osProfile/secrets/" + options.secretsIndex) + "/sourceVault");
          anySubItem = (false || options.id);
          if (anySubItem) {
            subItemPath = null;
            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates0 = catparametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates0 = parametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates0.category("vault-certificates").description($("Commands to configure vault-certificates of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates0.command("set").description($("Set vault-certificates in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"vaultCertificates\" : {\r\n             \"certificateUrl\":\"\",\r\n             \"certificateStore\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--secrets-index <secrets-index>", $("Indexer: secrets-index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--certificate-url <certificateUrl>", $("Set the certificate-url value.")).option("--certificate-store <certificateStore>", $("Set the certificate-store value.")).execute(function __32(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__32", line: 2825 }; return __func(_, this, arguments, __32, 1, __frame, function __$__32() {










      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__32() { return (function __$__32(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__32() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ((("/virtualMachineProfile/osProfile/secrets/" + options.secretsIndex) + "/vaultCertificates") + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "certificateUrl");
          if (options.certificateUrl) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.certificateUrl));
            cli.output.verbose("================================================");
            if ((options.parse && options.certificateUrl)) {
              options.certificateUrl = JSON.parse(options.certificateUrl); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.certificateUrl },]); } ;

          paramPath = ((options.path + "/") + "certificateStore");
          if (options.certificateStore) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.certificateStore));
            cli.output.verbose("================================================");
            if ((options.parse && options.certificateStore)) {
              options.certificateStore = JSON.parse(options.certificateStore); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.certificateStore },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates1 = catparametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates1 = parametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates1.category("vault-certificates").description($("Commands to configure vault-certificates of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsVaultCertificates1.command("delete").description($("Remove vault-certificates in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"vaultCertificates\" : {\r\n             \"certificateUrl\":\"\",\r\n             \"certificateStore\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--secrets-index <secrets-index>", $("Indexer: secrets-index.")).option("--certificate-url", $("Remove the certificate-url value.")).option("--certificate-store", $("Remove the certificate-store value.")).execute(function __33(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__33", line: 2895 }; return __func(_, this, arguments, __33, 1, __frame, function __$__33() {








      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__33() { return (function __$__33(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__33() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ((("/virtualMachineProfile/osProfile/secrets/" + options.secretsIndex) + "/vaultCertificates") + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = ((false || options.certificateUrl) || options.certificateStore);
          if (anySubItem) {
            subItemPath = null;
            if (options.certificateUrl) {
              subItemPath = (options.path + "/certificateUrl");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.certificateStore) {
              subItemPath = (options.path + "/certificateStore");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile0 = catparametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile0 = parametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile0.category("storage-profile").description($("Commands to configure storage-profile of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile0.command("set").description($("Set storage-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"storageProfile\" : {\r\n             \"imageReference\":{\r\n               \"publisher\":\"\",\r\n               \"offer\":\"\",\r\n               \"sku\":\"\",\r\n               \"version\":\"\"\r\n             },\r\n             \"osDisk\":{\r\n               \"name\":\"\",\r\n               \"caching\":null,\r\n               \"createOption\":\"\",\r\n               \"osType\":null,\r\n               \"image\":{\r\n                 \"uri\":\"\"\r\n               },\r\n               \"vhdContainers\":[\r\n                 \"\"\r\n               ]\r\n             }\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--image-reference <imageReference>", $("Set the image-reference value.")).option("--os-disk <osDisk>", $("Set the os-disk value.")).execute(function __34(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__34", line: 2949 }; return __func(_, this, arguments, __34, 1, __frame, function __$__34() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__34() { return (function __$__34(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__34() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/storageProfile";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "imageReference");
          if (options.imageReference) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.imageReference));
            cli.output.verbose("================================================");
            if ((options.parse && options.imageReference)) {
              options.imageReference = JSON.parse(options.imageReference); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.imageReference },]); } ;

          paramPath = ((options.path + "/") + "osDisk");
          if (options.osDisk) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.osDisk));
            cli.output.verbose("================================================");
            if ((options.parse && options.osDisk)) {
              options.osDisk = JSON.parse(options.osDisk); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.osDisk },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile1 = catparametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile1 = parametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile1.category("storage-profile").description($("Commands to configure storage-profile of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsStorageProfile1.command("delete").description($("Remove storage-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"storageProfile\" : {\r\n             \"imageReference\":{\r\n               \"publisher\":\"\",\r\n               \"offer\":\"\",\r\n               \"sku\":\"\",\r\n               \"version\":\"\"\r\n             },\r\n             \"osDisk\":{\r\n               \"name\":\"\",\r\n               \"caching\":null,\r\n               \"createOption\":\"\",\r\n               \"osType\":null,\r\n               \"image\":{\r\n                 \"uri\":\"\"\r\n               },\r\n               \"vhdContainers\":[\r\n                 \"\"\r\n               ]\r\n             }\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--image-reference", $("Remove the image-reference value.")).option("--os-disk", $("Remove the os-disk value.")).execute(function __35(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__35", line: 3013 }; return __func(_, this, arguments, __35, 1, __frame, function __$__35() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__35() { return (function __$__35(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__35() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/storageProfile";
          anySubItem = ((false || options.imageReference) || options.osDisk);
          if (anySubItem) {
            subItemPath = null;
            if (options.imageReference) {
              subItemPath = (options.path + "/imageReference");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.osDisk) {
              subItemPath = (options.path + "/osDisk");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsImageReference0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsImageReference0 = catparametersCreateOrUpdateVirtualMachineScaleSetsImageReference0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsImageReference0 = parametersCreateOrUpdateVirtualMachineScaleSetsImageReference0.category("image-reference").description($("Commands to configure image-reference of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsImageReference0.command("set").description($("Set image-reference in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"imageReference\" : {\r\n             \"publisher\":\"\",\r\n             \"offer\":\"\",\r\n             \"sku\":\"\",\r\n             \"version\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--publisher <publisher>", $("Set the publisher value.")).option("--offer <offer>", $("Set the offer value.")).option("--sku <sku>", $("Set the sku value.")).option("--version <version>", $("Set the version value.")).execute(function __36(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__36", line: 3069 }; return __func(_, this, arguments, __36, 1, __frame, function __$__36() {









      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__36() { return (function __$__36(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__36() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/storageProfile/imageReference";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "publisher");
          if (options.publisher) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.publisher));
            cli.output.verbose("================================================");
            if ((options.parse && options.publisher)) {
              options.publisher = JSON.parse(options.publisher); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.publisher },]); } ;

          paramPath = ((options.path + "/") + "offer");
          if (options.offer) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.offer));
            cli.output.verbose("================================================");
            if ((options.parse && options.offer)) {
              options.offer = JSON.parse(options.offer); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.offer },]); } ;

          paramPath = ((options.path + "/") + "sku");
          if (options.sku) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.sku));
            cli.output.verbose("================================================");
            if ((options.parse && options.sku)) {
              options.sku = JSON.parse(options.sku); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.sku },]); } ;

          paramPath = ((options.path + "/") + "version");
          if (options.version) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.version));
            cli.output.verbose("================================================");
            if ((options.parse && options.version)) {
              options.version = JSON.parse(options.version); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.version },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsImageReference1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsImageReference1 = catparametersCreateOrUpdateVirtualMachineScaleSetsImageReference1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsImageReference1 = parametersCreateOrUpdateVirtualMachineScaleSetsImageReference1.category("image-reference").description($("Commands to configure image-reference of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsImageReference1.command("delete").description($("Remove image-reference in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"imageReference\" : {\r\n             \"publisher\":\"\",\r\n             \"offer\":\"\",\r\n             \"sku\":\"\",\r\n             \"version\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--publisher", $("Remove the publisher value.")).option("--offer", $("Remove the offer value.")).option("--sku", $("Remove the sku value.")).option("--version", $("Remove the version value.")).execute(function __37(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__37", line: 3157 }; return __func(_, this, arguments, __37, 1, __frame, function __$__37() {








      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__37() { return (function __$__37(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__37() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/storageProfile/imageReference";
          anySubItem = ((((false || options.publisher) || options.offer) || options.sku) || options.version);
          if (anySubItem) {
            subItemPath = null;
            if (options.publisher) {
              subItemPath = (options.path + "/publisher");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.offer) {
              subItemPath = (options.path + "/offer");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.sku) {
              subItemPath = (options.path + "/sku");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.version) {
              subItemPath = (options.path + "/version");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsOsDisk0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsOsDisk0 = catparametersCreateOrUpdateVirtualMachineScaleSetsOsDisk0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsOsDisk0 = parametersCreateOrUpdateVirtualMachineScaleSetsOsDisk0.category("os-disk").description($("Commands to configure os-disk of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsOsDisk0.command("set").description($("Set os-disk in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"osDisk\" : {\r\n             \"name\":\"\",\r\n             \"caching\":null,\r\n             \"createOption\":\"\",\r\n             \"osType\":null,\r\n             \"image\":{\r\n               \"uri\":\"\"\r\n             },\r\n             \"vhdContainers\":[\r\n               \"\"\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--name <name>", $("Set the name value.")).option("--caching <caching>", $("Set the caching value.")).option("--create-option <createOption>", $("Set the create-option value.")).option("--os-type <osType>", $("Set the os-type value.")).option("--image <image>", $("Set the image value.")).option("--vhd-containers <vhdContainers>", $("Set the vhd-containers value.")).execute(function __38(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__38", line: 3223 }; return __func(_, this, arguments, __38, 1, __frame, function __$__38() {











      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__38() { return (function __$__38(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__38() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/storageProfile/osDisk";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "name");
          if (options.name) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.name));
            cli.output.verbose("================================================");
            if ((options.parse && options.name)) {
              options.name = JSON.parse(options.name); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.name },]); } ;

          paramPath = ((options.path + "/") + "caching");
          if (options.caching) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.caching));
            cli.output.verbose("================================================");
            if ((options.parse && options.caching)) {
              options.caching = JSON.parse(options.caching); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.caching },]); } ;

          paramPath = ((options.path + "/") + "createOption");
          if (options.createOption) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.createOption));
            cli.output.verbose("================================================");
            if ((options.parse && options.createOption)) {
              options.createOption = JSON.parse(options.createOption); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.createOption },]); } ;

          paramPath = ((options.path + "/") + "osType");
          if (options.osType) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.osType));
            cli.output.verbose("================================================");
            if ((options.parse && options.osType)) {
              options.osType = JSON.parse(options.osType); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.osType },]); } ;

          paramPath = ((options.path + "/") + "image");
          if (options.image) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.image));
            cli.output.verbose("================================================");
            if ((options.parse && options.image)) {
              options.image = JSON.parse(options.image); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.image },]); } ;

          paramPath = ((options.path + "/") + "vhdContainers");
          if (options.vhdContainers) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.vhdContainers));
            cli.output.verbose("================================================");
            if ((options.parse && options.vhdContainers)) {
              options.vhdContainers = JSON.parse(options.vhdContainers); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.vhdContainers },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsOsDisk1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsOsDisk1 = catparametersCreateOrUpdateVirtualMachineScaleSetsOsDisk1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsOsDisk1 = parametersCreateOrUpdateVirtualMachineScaleSetsOsDisk1.category("os-disk").description($("Commands to configure os-disk of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsOsDisk1.command("delete").description($("Remove os-disk in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"osDisk\" : {\r\n             \"name\":\"\",\r\n             \"caching\":null,\r\n             \"createOption\":\"\",\r\n             \"osType\":null,\r\n             \"image\":{\r\n               \"uri\":\"\"\r\n             },\r\n             \"vhdContainers\":[\r\n               \"\"\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--name", $("Remove the name value.")).option("--caching", $("Remove the caching value.")).option("--create-option", $("Remove the create-option value.")).option("--os-type", $("Remove the os-type value.")).option("--image", $("Remove the image value.")).option("--vhd-containers", $("Remove the vhd-containers value.")).execute(function __39(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__39", line: 3335 }; return __func(_, this, arguments, __39, 1, __frame, function __$__39() {










      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__39() { return (function __$__39(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__39() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/storageProfile/osDisk";
          anySubItem = ((((((false || options.name) || options.caching) || options.createOption) || options.osType) || options.image) || options.vhdContainers);
          if (anySubItem) {
            subItemPath = null;
            if (options.name) {
              subItemPath = (options.path + "/name");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.caching) {
              subItemPath = (options.path + "/caching");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.createOption) {
              subItemPath = (options.path + "/createOption");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.osType) {
              subItemPath = (options.path + "/osType");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.image) {
              subItemPath = (options.path + "/image");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.vhdContainers) {
              subItemPath = (options.path + "/vhdContainers");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsImage0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsImage0 = catparametersCreateOrUpdateVirtualMachineScaleSetsImage0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsImage0 = parametersCreateOrUpdateVirtualMachineScaleSetsImage0.category("image").description($("Commands to configure image of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsImage0.command("set").description($("Set image in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"image\" : {\r\n             \"uri\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--uri <uri>", $("Set the uri value.")).execute(function __40(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__40", line: 3404 }; return __func(_, this, arguments, __40, 1, __frame, function __$__40() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__40() { return (function __$__40(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__40() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/storageProfile/osDisk/image";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "uri");
          if (options.uri) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.uri));
            cli.output.verbose("================================================");
            if ((options.parse && options.uri)) {
              options.uri = JSON.parse(options.uri); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.uri },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsImage1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsImage1 = catparametersCreateOrUpdateVirtualMachineScaleSetsImage1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsImage1 = parametersCreateOrUpdateVirtualMachineScaleSetsImage1.category("image").description($("Commands to configure image of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsImage1.command("delete").description($("Remove image in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"image\" : {\r\n             \"uri\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--uri", $("Remove the uri value.")).execute(function __41(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__41", line: 3456 }; return __func(_, this, arguments, __41, 1, __frame, function __$__41() {





      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__41() { return (function __$__41(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__41() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/storageProfile/osDisk/image";
          anySubItem = (false || options.uri);
          if (anySubItem) {
            subItemPath = null;
            if (options.uri) {
              subItemPath = (options.path + "/uri");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers0 = catparametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers0 = parametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers0.category("vhd-containers").description($("Commands to configure vhd-containers of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers0.command("set").description($("Set vhd-containers in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"vhdContainers\" : \"\"\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).execute(function __42(options, _) { var fileContent, parametersObj, error, updatedContent; var __frame = { name: "__42", line: 3506 }; return __func(_, this, arguments, __42, 1, __frame, function __$__42() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__42() { return (function __$__42(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__42() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ("/virtualMachineProfile/storageProfile/osDisk/vhdContainers" + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers1 = catparametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers1 = parametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers1.category("vhd-containers").description($("Commands to configure vhd-containers of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsVhdContainers1.command("delete").description($("Remove vhd-containers in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"vhdContainers\" : \"\"\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).execute(function __43(options, _) { var fileContent, parametersObj, updatedContent; var __frame = { name: "__43", line: 3551 }; return __func(_, this, arguments, __43, 1, __frame, function __$__43() {





      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__43() { return (function __$__43(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__43() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ("/virtualMachineProfile/storageProfile/osDisk/vhdContainers" + ((options.index ? (("/" + options.index)) : "")));
          jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]);

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile0 = catparametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile0 = parametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile0.category("network-profile").description($("Commands to configure network-profile of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile0.command("set").description($("Set network-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"networkProfile\" : {\r\n             \"networkInterfaceConfigurations\":[\r\n               {\r\n                 \"name\":\"\",\r\n                 \"primary\":null,\r\n                 \"ipConfigurations\":[\r\n                   {\r\n                     \"name\":\"\",\r\n                     \"subnet\":{\r\n                       \"id\":\"\"\r\n                     },\r\n                     \"applicationGatewayBackendAddressPools\":[\r\n                       {\r\n                         \"id\":\"\"\r\n                       }\r\n                     ],\r\n                     \"loadBalancerBackendAddressPools\":[\r\n                       {\r\n                         \"id\":\"\"\r\n                       }\r\n                     ],\r\n                     \"loadBalancerInboundNatPools\":[\r\n                       {\r\n                         \"id\":\"\"\r\n                       }\r\n                     ],\r\n                     \"id\":\"\"\r\n                   }\r\n                 ],\r\n                 \"id\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--network-interface-configurations <networkInterfaceConfigurations>", $("Set the network-interface-configurations value.")).execute(function __44(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__44", line: 3590 }; return __func(_, this, arguments, __44, 1, __frame, function __$__44() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__44() { return (function __$__44(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__44() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/networkProfile";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "networkInterfaceConfigurations");
          if (options.networkInterfaceConfigurations) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.networkInterfaceConfigurations));
            cli.output.verbose("================================================");
            if ((options.parse && options.networkInterfaceConfigurations)) {
              options.networkInterfaceConfigurations = JSON.parse(options.networkInterfaceConfigurations); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.networkInterfaceConfigurations },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile1 = catparametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile1 = parametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile1.category("network-profile").description($("Commands to configure network-profile of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsNetworkProfile1.command("delete").description($("Remove network-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"networkProfile\" : {\r\n             \"networkInterfaceConfigurations\":[\r\n               {\r\n                 \"name\":\"\",\r\n                 \"primary\":null,\r\n                 \"ipConfigurations\":[\r\n                   {\r\n                     \"name\":\"\",\r\n                     \"subnet\":{\r\n                       \"id\":\"\"\r\n                     },\r\n                     \"applicationGatewayBackendAddressPools\":[\r\n                       {\r\n                         \"id\":\"\"\r\n                       }\r\n                     ],\r\n                     \"loadBalancerBackendAddressPools\":[\r\n                       {\r\n                         \"id\":\"\"\r\n                       }\r\n                     ],\r\n                     \"loadBalancerInboundNatPools\":[\r\n                       {\r\n                         \"id\":\"\"\r\n                       }\r\n                     ],\r\n                     \"id\":\"\"\r\n                   }\r\n                 ],\r\n                 \"id\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--network-interface-configurations", $("Remove the network-interface-configurations value.")).execute(function __45(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__45", line: 3642 }; return __func(_, this, arguments, __45, 1, __frame, function __$__45() {





      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__45() { return (function __$__45(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__45() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/networkProfile";
          anySubItem = (false || options.networkInterfaceConfigurations);
          if (anySubItem) {
            subItemPath = null;
            if (options.networkInterfaceConfigurations) {
              subItemPath = (options.path + "/networkInterfaceConfigurations");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations0 = catparametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations0 = parametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations0.category("network-interface-configurations").description($("Commands to configure network-interface-configurations of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations0.command("set").description($("Set network-interface-configurations in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"networkInterfaceConfigurations\" : {\r\n             \"name\":\"\",\r\n             \"primary\":null,\r\n             \"ipConfigurations\":[\r\n               {\r\n                 \"name\":\"\",\r\n                 \"subnet\":{\r\n                   \"id\":\"\"\r\n                 },\r\n                 \"applicationGatewayBackendAddressPools\":[\r\n                   {\r\n                     \"id\":\"\"\r\n                   }\r\n                 ],\r\n                 \"loadBalancerBackendAddressPools\":[\r\n                   {\r\n                     \"id\":\"\"\r\n                   }\r\n                 ],\r\n                 \"loadBalancerInboundNatPools\":[\r\n                   {\r\n                     \"id\":\"\"\r\n                   }\r\n                 ],\r\n                 \"id\":\"\"\r\n               }\r\n             ],\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--name <name>", $("Set the name value.")).option("--primary <primary>", $("Set the primary value.")).option("--ip-configurations <ipConfigurations>", $("Set the ip-configurations value.")).option("--id <id>", $("Set the id value.")).execute(function __46(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__46", line: 3696 }; return __func(_, this, arguments, __46, 1, __frame, function __$__46() {











      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__46() { return (function __$__46(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__46() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations" + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "name");
          if (options.name) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.name));
            cli.output.verbose("================================================");
            if ((options.parse && options.name)) {
              options.name = JSON.parse(options.name); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.name },]); } ;

          paramPath = ((options.path + "/") + "primary");
          if (options.primary) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.primary));
            cli.output.verbose("================================================");
            if ((options.parse && options.primary)) {
              options.primary = JSON.parse(options.primary); } ;

            options.primary = JSON.parse(options.primary);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.primary },]); } ;

          paramPath = ((options.path + "/") + "ipConfigurations");
          if (options.ipConfigurations) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.ipConfigurations));
            cli.output.verbose("================================================");
            if ((options.parse && options.ipConfigurations)) {
              options.ipConfigurations = JSON.parse(options.ipConfigurations); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.ipConfigurations },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations1 = catparametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations1 = parametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations1.category("network-interface-configurations").description($("Commands to configure network-interface-configurations of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsNetworkInterfaceConfigurations1.command("delete").description($("Remove network-interface-configurations in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"networkInterfaceConfigurations\" : {\r\n             \"name\":\"\",\r\n             \"primary\":null,\r\n             \"ipConfigurations\":[\r\n               {\r\n                 \"name\":\"\",\r\n                 \"subnet\":{\r\n                   \"id\":\"\"\r\n                 },\r\n                 \"applicationGatewayBackendAddressPools\":[\r\n                   {\r\n                     \"id\":\"\"\r\n                   }\r\n                 ],\r\n                 \"loadBalancerBackendAddressPools\":[\r\n                   {\r\n                     \"id\":\"\"\r\n                   }\r\n                 ],\r\n                 \"loadBalancerInboundNatPools\":[\r\n                   {\r\n                     \"id\":\"\"\r\n                   }\r\n                 ],\r\n                 \"id\":\"\"\r\n               }\r\n             ],\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--name", $("Remove the name value.")).option("--primary", $("Remove the primary value.")).option("--ip-configurations", $("Remove the ip-configurations value.")).option("--id", $("Remove the id value.")).execute(function __47(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__47", line: 3790 }; return __func(_, this, arguments, __47, 1, __frame, function __$__47() {









      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__47() { return (function __$__47(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__47() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations" + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = ((((false || options.name) || options.primary) || options.ipConfigurations) || options.id);
          if (anySubItem) {
            subItemPath = null;
            if (options.name) {
              subItemPath = (options.path + "/name");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.primary) {
              subItemPath = (options.path + "/primary");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.ipConfigurations) {
              subItemPath = (options.path + "/ipConfigurations");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations0 = catparametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations0 = parametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations0.category("ip-configurations").description($("Commands to configure ip-configurations of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations0.command("set").description($("Set ip-configurations in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"ipConfigurations\" : {\r\n             \"name\":\"\",\r\n             \"subnet\":{\r\n               \"id\":\"\"\r\n             },\r\n             \"applicationGatewayBackendAddressPools\":[\r\n               {\r\n                 \"id\":\"\"\r\n               }\r\n             ],\r\n             \"loadBalancerBackendAddressPools\":[\r\n               {\r\n                 \"id\":\"\"\r\n               }\r\n             ],\r\n             \"loadBalancerInboundNatPools\":[\r\n               {\r\n                 \"id\":\"\"\r\n               }\r\n             ],\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--name <name>", $("Set the name value.")).option("--subnet <subnet>", $("Set the subnet value.")).option("--application-gateway-backend-address-pools <applicationGatewayBackendAddressPools>", $("Set the application-gateway-backend-address-pools value.")).option("--load-balancer-backend-address-pools <loadBalancerBackendAddressPools>", $("Set the load-balancer-backend-address-pools value.")).option("--load-balancer-inbound-nat-pools <loadBalancerInboundNatPools>", $("Set the load-balancer-inbound-nat-pools value.")).option("--id <id>", $("Set the id value.")).execute(function __48(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__48", line: 3859 }; return __func(_, this, arguments, __48, 1, __frame, function __$__48() {














      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__48() { return (function __$__48(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__48() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations") + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "name");
          if (options.name) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.name));
            cli.output.verbose("================================================");
            if ((options.parse && options.name)) {
              options.name = JSON.parse(options.name); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.name },]); } ;

          paramPath = ((options.path + "/") + "subnet");
          if (options.subnet) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.subnet));
            cli.output.verbose("================================================");
            if ((options.parse && options.subnet)) {
              options.subnet = JSON.parse(options.subnet); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.subnet },]); } ;

          paramPath = ((options.path + "/") + "applicationGatewayBackendAddressPools");
          if (options.applicationGatewayBackendAddressPools) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.applicationGatewayBackendAddressPools));
            cli.output.verbose("================================================");
            if ((options.parse && options.applicationGatewayBackendAddressPools)) {
              options.applicationGatewayBackendAddressPools = JSON.parse(options.applicationGatewayBackendAddressPools); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.applicationGatewayBackendAddressPools },]); } ;

          paramPath = ((options.path + "/") + "loadBalancerBackendAddressPools");
          if (options.loadBalancerBackendAddressPools) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.loadBalancerBackendAddressPools));
            cli.output.verbose("================================================");
            if ((options.parse && options.loadBalancerBackendAddressPools)) {
              options.loadBalancerBackendAddressPools = JSON.parse(options.loadBalancerBackendAddressPools); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.loadBalancerBackendAddressPools },]); } ;

          paramPath = ((options.path + "/") + "loadBalancerInboundNatPools");
          if (options.loadBalancerInboundNatPools) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.loadBalancerInboundNatPools));
            cli.output.verbose("================================================");
            if ((options.parse && options.loadBalancerInboundNatPools)) {
              options.loadBalancerInboundNatPools = JSON.parse(options.loadBalancerInboundNatPools); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.loadBalancerInboundNatPools },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations1 = catparametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations1 = parametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations1.category("ip-configurations").description($("Commands to configure ip-configurations of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsIpConfigurations1.command("delete").description($("Remove ip-configurations in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"ipConfigurations\" : {\r\n             \"name\":\"\",\r\n             \"subnet\":{\r\n               \"id\":\"\"\r\n             },\r\n             \"applicationGatewayBackendAddressPools\":[\r\n               {\r\n                 \"id\":\"\"\r\n               }\r\n             ],\r\n             \"loadBalancerBackendAddressPools\":[\r\n               {\r\n                 \"id\":\"\"\r\n               }\r\n             ],\r\n             \"loadBalancerInboundNatPools\":[\r\n               {\r\n                 \"id\":\"\"\r\n               }\r\n             ],\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--name", $("Remove the name value.")).option("--subnet", $("Remove the subnet value.")).option("--application-gateway-backend-address-pools", $("Remove the application-gateway-backend-address-pools value.")).option("--load-balancer-backend-address-pools", $("Remove the load-balancer-backend-address-pools value.")).option("--load-balancer-inbound-nat-pools", $("Remove the load-balancer-inbound-nat-pools value.")).option("--id", $("Remove the id value.")).execute(function __49(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__49", line: 3977 }; return __func(_, this, arguments, __49, 1, __frame, function __$__49() {












      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__49() { return (function __$__49(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__49() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations") + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = ((((((false || options.name) || options.subnet) || options.applicationGatewayBackendAddressPools) || options.loadBalancerBackendAddressPools) || options.loadBalancerInboundNatPools) || options.id);
          if (anySubItem) {
            subItemPath = null;
            if (options.name) {
              subItemPath = (options.path + "/name");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.subnet) {
              subItemPath = (options.path + "/subnet");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.applicationGatewayBackendAddressPools) {
              subItemPath = (options.path + "/applicationGatewayBackendAddressPools");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.loadBalancerBackendAddressPools) {
              subItemPath = (options.path + "/loadBalancerBackendAddressPools");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.loadBalancerInboundNatPools) {
              subItemPath = (options.path + "/loadBalancerInboundNatPools");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsSubnet0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSubnet0 = catparametersCreateOrUpdateVirtualMachineScaleSetsSubnet0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsSubnet0 = parametersCreateOrUpdateVirtualMachineScaleSetsSubnet0.category("subnet").description($("Commands to configure subnet of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsSubnet0.command("set").description($("Set subnet in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"subnet\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--ip-configurations-index <ip-configurations-index>", $("Indexer: ip-configurations-index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--id <id>", $("Set the id value.")).execute(function __50(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__50", line: 4048 }; return __func(_, this, arguments, __50, 1, __frame, function __$__50() {








      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__50() { return (function __$__50(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__50() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = (((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations/") + options.ipConfigurationsIndex) + "/subnet");
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsSubnet1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsSubnet1 = catparametersCreateOrUpdateVirtualMachineScaleSetsSubnet1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsSubnet1 = parametersCreateOrUpdateVirtualMachineScaleSetsSubnet1.category("subnet").description($("Commands to configure subnet of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsSubnet1.command("delete").description($("Remove subnet in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"subnet\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--ip-configurations-index <ip-configurations-index>", $("Indexer: ip-configurations-index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--id", $("Remove the id value.")).execute(function __51(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__51", line: 4102 }; return __func(_, this, arguments, __51, 1, __frame, function __$__51() {







      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__51() { return (function __$__51(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__51() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = (((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations/") + options.ipConfigurationsIndex) + "/subnet");
          anySubItem = (false || options.id);
          if (anySubItem) {
            subItemPath = null;
            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools0 = catparametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools0 = parametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools0.category("application-gateway-backend-address-pools").description($("Commands to configure application-gateway-backend-address-pools of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools0.command("set").description($("Set application-gateway-backend-address-pools in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"applicationGatewayBackendAddressPools\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--ip-configurations-index <ip-configurations-index>", $("Indexer: ip-configurations-index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--id <id>", $("Set the id value.")).execute(function __52(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__52", line: 4155 }; return __func(_, this, arguments, __52, 1, __frame, function __$__52() {










      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__52() { return (function __$__52(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__52() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ((((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations/") + options.ipConfigurationsIndex) + "/applicationGatewayBackendAddressPools") + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools1 = catparametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools1 = parametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools1.category("application-gateway-backend-address-pools").description($("Commands to configure application-gateway-backend-address-pools of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsApplicationGatewayBackendAddressPools1.command("delete").description($("Remove application-gateway-backend-address-pools in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"applicationGatewayBackendAddressPools\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--ip-configurations-index <ip-configurations-index>", $("Indexer: ip-configurations-index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--id", $("Remove the id value.")).execute(function __53(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__53", line: 4214 }; return __func(_, this, arguments, __53, 1, __frame, function __$__53() {








      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__53() { return (function __$__53(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__53() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ((((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations/") + options.ipConfigurationsIndex) + "/applicationGatewayBackendAddressPools") + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = (false || options.id);
          if (anySubItem) {
            subItemPath = null;
            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools0 = catparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools0 = parametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools0.category("load-balancer-backend-address-pools").description($("Commands to configure load-balancer-backend-address-pools of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools0.command("set").description($("Set load-balancer-backend-address-pools in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"loadBalancerBackendAddressPools\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--ip-configurations-index <ip-configurations-index>", $("Indexer: ip-configurations-index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--id <id>", $("Set the id value.")).execute(function __54(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__54", line: 4267 }; return __func(_, this, arguments, __54, 1, __frame, function __$__54() {










      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__54() { return (function __$__54(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__54() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ((((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations/") + options.ipConfigurationsIndex) + "/loadBalancerBackendAddressPools") + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools1 = catparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools1 = parametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools1.category("load-balancer-backend-address-pools").description($("Commands to configure load-balancer-backend-address-pools of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerBackendAddressPools1.command("delete").description($("Remove load-balancer-backend-address-pools in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"loadBalancerBackendAddressPools\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--ip-configurations-index <ip-configurations-index>", $("Indexer: ip-configurations-index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--id", $("Remove the id value.")).execute(function __55(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__55", line: 4326 }; return __func(_, this, arguments, __55, 1, __frame, function __$__55() {








      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__55() { return (function __$__55(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__55() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ((((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations/") + options.ipConfigurationsIndex) + "/loadBalancerBackendAddressPools") + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = (false || options.id);
          if (anySubItem) {
            subItemPath = null;
            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools0 = catparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools0 = parametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools0.category("load-balancer-inbound-nat-pools").description($("Commands to configure load-balancer-inbound-nat-pools of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools0.command("set").description($("Set load-balancer-inbound-nat-pools in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"loadBalancerInboundNatPools\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--ip-configurations-index <ip-configurations-index>", $("Indexer: ip-configurations-index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--id <id>", $("Set the id value.")).execute(function __56(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__56", line: 4379 }; return __func(_, this, arguments, __56, 1, __frame, function __$__56() {










      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__56() { return (function __$__56(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__56() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ((((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations/") + options.ipConfigurationsIndex) + "/loadBalancerInboundNatPools") + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools1 = catparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools1 = parametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools1.category("load-balancer-inbound-nat-pools").description($("Commands to configure load-balancer-inbound-nat-pools of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsLoadBalancerInboundNatPools1.command("delete").description($("Remove load-balancer-inbound-nat-pools in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"loadBalancerInboundNatPools\" : {\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--ip-configurations-index <ip-configurations-index>", $("Indexer: ip-configurations-index.")).option("--network-interface-configurations-index <network-interface-configurations-index>", $("Indexer: network-interface-configurations-index.")).option("--id", $("Remove the id value.")).execute(function __57(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__57", line: 4438 }; return __func(_, this, arguments, __57, 1, __frame, function __$__57() {








      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__57() { return (function __$__57(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__57() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ((((("/virtualMachineProfile/networkProfile/networkInterfaceConfigurations/" + options.networkInterfaceConfigurationsIndex) + "/ipConfigurations/") + options.ipConfigurationsIndex) + "/loadBalancerInboundNatPools") + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = (false || options.id);
          if (anySubItem) {
            subItemPath = null;
            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile0 = catparametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile0 = parametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile0.category("extension-profile").description($("Commands to configure extension-profile of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile0.command("set").description($("Set extension-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"extensionProfile\" : {\r\n             \"extensions\":[\r\n               {\r\n                 \"name\":\"\",\r\n                 \"publisher\":\"\",\r\n                 \"type\":\"\",\r\n                 \"typeHandlerVersion\":\"\",\r\n                 \"autoUpgradeMinorVersion\":null,\r\n                 \"settings\":{\r\n                 },\r\n                 \"protectedSettings\":{\r\n                 },\r\n                 \"provisioningState\":\"\",\r\n                 \"id\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--extensions <extensions>", $("Set the extensions value.")).execute(function __58(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__58", line: 4487 }; return __func(_, this, arguments, __58, 1, __frame, function __$__58() {






      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__58() { return (function __$__58(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__58() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = "/virtualMachineProfile/extensionProfile";
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          paramPath = ((options.path + "/") + "extensions");
          if (options.extensions) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.extensions));
            cli.output.verbose("================================================");
            if ((options.parse && options.extensions)) {
              options.extensions = JSON.parse(options.extensions); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.extensions },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile1 = catparametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile1 = parametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile1.category("extension-profile").description($("Commands to configure extension-profile of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsExtensionProfile1.command("delete").description($("Remove extension-profile in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"extensionProfile\" : {\r\n             \"extensions\":[\r\n               {\r\n                 \"name\":\"\",\r\n                 \"publisher\":\"\",\r\n                 \"type\":\"\",\r\n                 \"typeHandlerVersion\":\"\",\r\n                 \"autoUpgradeMinorVersion\":null,\r\n                 \"settings\":{\r\n                 },\r\n                 \"protectedSettings\":{\r\n                 },\r\n                 \"provisioningState\":\"\",\r\n                 \"id\":\"\"\r\n               }\r\n             ]\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--extensions", $("Remove the extensions value.")).execute(function __59(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__59", line: 4539 }; return __func(_, this, arguments, __59, 1, __frame, function __$__59() {





      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__59() { return (function __$__59(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__59() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = "/virtualMachineProfile/extensionProfile";
          anySubItem = (false || options.extensions);
          if (anySubItem) {
            subItemPath = null;
            if (options.extensions) {
              subItemPath = (options.path + "/extensions");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });


  var catparametersCreateOrUpdateVirtualMachineScaleSetsExtensions0 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsExtensions0 = catparametersCreateOrUpdateVirtualMachineScaleSetsExtensions0.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var setparametersCreateOrUpdateVirtualMachineScaleSetsExtensions0 = parametersCreateOrUpdateVirtualMachineScaleSetsExtensions0.category("extensions").description($("Commands to configure extensions of vmss in config file."));

  setparametersCreateOrUpdateVirtualMachineScaleSetsExtensions0.command("set").description($("Set extensions in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"extensions\" : {\r\n             \"name\":\"\",\r\n             \"publisher\":\"\",\r\n             \"type\":\"\",\r\n             \"typeHandlerVersion\":\"\",\r\n             \"autoUpgradeMinorVersion\":null,\r\n             \"settings\":{\r\n             },\r\n             \"protectedSettings\":{\r\n             },\r\n             \"provisioningState\":\"\",\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--value <value>", $("The input string value for the indexed item.")).option("--parse", $("Parse the input string, i.e. str, for parameters to a JSON object, e.g. JSON.parse(str).")).option("--name <name>", $("Set the name value.")).option("--publisher <publisher>", $("Set the publisher value.")).option("--type <type>", $("Set the type value.")).option("--type-handler-version <typeHandlerVersion>", $("Set the type-handler-version value.")).option("--auto-upgrade-minor-version <autoUpgradeMinorVersion>", $("Set the auto-upgrade-minor-version value.")).option("--settings <settings>", $("Set the settings value.")).option("--protected-settings <protectedSettings>", $("Set the protected-settings value.")).option("--provisioning-state <provisioningState>", $("Set the provisioning-state value.")).option("--id <id>", $("Set the id value.")).execute(function __60(options, _) { var fileContent, parametersObj, error, paramPath, updatedContent; var __frame = { name: "__60", line: 4598 }; return __func(_, this, arguments, __60, 1, __frame, function __$__60() {
















      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__60() { return (function __$__60(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__60() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "replace";
          options.path = ("/virtualMachineProfile/extensionProfile/extensions" + ((options.index ? (("/" + options.index)) : "")));
          error = jsonpatch.validate([{ op: "remove", path: options.path },], parametersObj);
          if ((typeof error !== "undefined")) {
            jsonpatch.apply(parametersObj, [{ op: "add", path: options.path, value: { } },]); } ;

          if (options.value) {
            cli.output.verbose(options.value);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path, value: options.value },]); } ;

          paramPath = ((options.path + "/") + "name");
          if (options.name) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.name));
            cli.output.verbose("================================================");
            if ((options.parse && options.name)) {
              options.name = JSON.parse(options.name); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.name },]); } ;

          paramPath = ((options.path + "/") + "publisher");
          if (options.publisher) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.publisher));
            cli.output.verbose("================================================");
            if ((options.parse && options.publisher)) {
              options.publisher = JSON.parse(options.publisher); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.publisher },]); } ;

          paramPath = ((options.path + "/") + "type");
          if (options.type) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.type));
            cli.output.verbose("================================================");
            if ((options.parse && options.type)) {
              options.type = JSON.parse(options.type); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.type },]); } ;

          paramPath = ((options.path + "/") + "typeHandlerVersion");
          if (options.typeHandlerVersion) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.typeHandlerVersion));
            cli.output.verbose("================================================");
            if ((options.parse && options.typeHandlerVersion)) {
              options.typeHandlerVersion = JSON.parse(options.typeHandlerVersion); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.typeHandlerVersion },]); } ;

          paramPath = ((options.path + "/") + "autoUpgradeMinorVersion");
          if (options.autoUpgradeMinorVersion) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.autoUpgradeMinorVersion));
            cli.output.verbose("================================================");
            if ((options.parse && options.autoUpgradeMinorVersion)) {
              options.autoUpgradeMinorVersion = JSON.parse(options.autoUpgradeMinorVersion); } ;

            options.autoUpgradeMinorVersion = JSON.parse(options.autoUpgradeMinorVersion);
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.autoUpgradeMinorVersion },]); } ;

          paramPath = ((options.path + "/") + "settings");
          if (options.settings) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.settings));
            cli.output.verbose("================================================");
            if ((options.parse && options.settings)) {
              options.settings = JSON.parse(options.settings); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.settings },]); } ;

          paramPath = ((options.path + "/") + "protectedSettings");
          if (options.protectedSettings) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.protectedSettings));
            cli.output.verbose("================================================");
            if ((options.parse && options.protectedSettings)) {
              options.protectedSettings = JSON.parse(options.protectedSettings); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.protectedSettings },]); } ;

          paramPath = ((options.path + "/") + "provisioningState");
          if (options.provisioningState) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.provisioningState));
            cli.output.verbose("================================================");
            if ((options.parse && options.provisioningState)) {
              options.provisioningState = JSON.parse(options.provisioningState); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.provisioningState },]); } ;

          paramPath = ((options.path + "/") + "id");
          if (options.id) {
            cli.output.verbose("================================================");
            cli.output.verbose(("Path  : " + paramPath));
            cli.output.verbose(("Value : " + options.id));
            cli.output.verbose("================================================");
            if ((options.parse && options.id)) {
              options.id = JSON.parse(options.id); } ;

            jsonpatch.apply(parametersObj, [{ op: options.operation, path: paramPath, value: options.id },]); } ;

          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });



  var catparametersCreateOrUpdateVirtualMachineScaleSetsExtensions1 = cli.category("vmss");
  var parametersCreateOrUpdateVirtualMachineScaleSetsExtensions1 = catparametersCreateOrUpdateVirtualMachineScaleSetsExtensions1.category("config").description($("Commands to manage configuration of virtual-machine-scale-sets in the parameter file."));

  var deleteparametersCreateOrUpdateVirtualMachineScaleSetsExtensions1 = parametersCreateOrUpdateVirtualMachineScaleSetsExtensions1.category("extensions").description($("Commands to configure extensions of vmss in config file."));

  deleteparametersCreateOrUpdateVirtualMachineScaleSetsExtensions1.command("delete").description($("Remove extensions in config string or files, e.g. \r\n         {\r\n           ...\r\n           \"extensions\" : {\r\n             \"name\":\"\",\r\n             \"publisher\":\"\",\r\n             \"type\":\"\",\r\n             \"typeHandlerVersion\":\"\",\r\n             \"autoUpgradeMinorVersion\":null,\r\n             \"settings\":{\r\n             },\r\n             \"protectedSettings\":{\r\n             },\r\n             \"provisioningState\":\"\",\r\n             \"id\":\"\"\r\n           }\r\n           ...\r\n         }\r\n\r\n         There are two sets of commands:\r\n           1) function commands that are used to manage Azure resources in the cloud, and \r\n           2) parameter commands that generate & edit input files for the other set of commands.\r\n         For example, 'vmss show/list/stop' are the function commands that call get, list and stop operations of \r\n         virtual machine scale set, whereas 'vmss config * generate/create/set/delete/add' commands \r\n         are used to configure the input parameter file. The 'vmss config' command takes a parameter \r\n         file as for the VM scale set configuration, and creates it online.")).usage("[options]").option("--parameter-file <parameter-file>", $("The parameter file path.")).option("--index <index>", $("Indexer: index.")).option("--name", $("Remove the name value.")).option("--publisher", $("Remove the publisher value.")).option("--type", $("Remove the type value.")).option("--type-handler-version", $("Remove the type-handler-version value.")).option("--auto-upgrade-minor-version", $("Remove the auto-upgrade-minor-version value.")).option("--settings", $("Remove the settings value.")).option("--protected-settings", $("Remove the protected-settings value.")).option("--provisioning-state", $("Remove the provisioning-state value.")).option("--id", $("Remove the id value.")).execute(function __61(options, _) { var fileContent, parametersObj, anySubItem, subItemPath, updatedContent; var __frame = { name: "__61", line: 4752 }; return __func(_, this, arguments, __61, 1, __frame, function __$__61() {














      return cli.output.verbose(JSON.stringify(options), __cb(_, __frame, 1, 15, function __$__61() { return (function __$__61(__then) {
          if (!options.parameterFile) {
            return cli.interaction.promptIfNotGiven($("parameter-file : "), options.parameterFile, __cb(_, __frame, 3, 46, function ___(__0, __1) { options.parameterFile = __1; __then(); }, true)); } else { __then(); } ; })(function __$__61() {


          cli.output.verbose("=====================================");
          cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
          cli.output.verbose("=====================================");
          fileContent = fs.readFileSync(options.parameterFile, "utf8");
          parametersObj = JSON.parse(fileContent);
          cli.output.verbose("JSON object:");
          cli.output.verbose(JSON.stringify(parametersObj));
          options.operation = "remove";
          options.path = ("/virtualMachineProfile/extensionProfile/extensions" + ((options.index ? (("/" + options.index)) : "")));
          anySubItem = (((((((((false || options.name) || options.publisher) || options.type) || options.typeHandlerVersion) || options.autoUpgradeMinorVersion) || options.settings) || options.protectedSettings) || options.provisioningState) || options.id);
          if (anySubItem) {
            subItemPath = null;
            if (options.name) {
              subItemPath = (options.path + "/name");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.publisher) {
              subItemPath = (options.path + "/publisher");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.type) {
              subItemPath = (options.path + "/type");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.typeHandlerVersion) {
              subItemPath = (options.path + "/typeHandlerVersion");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.autoUpgradeMinorVersion) {
              subItemPath = (options.path + "/autoUpgradeMinorVersion");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.settings) {
              subItemPath = (options.path + "/settings");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.protectedSettings) {
              subItemPath = (options.path + "/protectedSettings");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.provisioningState) {
              subItemPath = (options.path + "/provisioningState");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ;

            if (options.id) {
              subItemPath = (options.path + "/id");
              jsonpatch.apply(parametersObj, [{ op: options.operation, path: subItemPath },]); } ; }


           else {
            jsonpatch.apply(parametersObj, [{ op: options.operation, path: options.path },]); } ;


          updatedContent = JSON.stringify(parametersObj);
          cli.output.verbose("=====================================");
          cli.output.verbose("JSON object (updated):");
          cli.output.verbose(JSON.stringify(parametersObj));
          cli.output.verbose("=====================================");
          fs.writeFileSync(options.parameterFile, beautify(updatedContent));
          cli.output.verbose("=====================================");
          cli.output.verbose(("Parameter file updated at: " + options.parameterFile));
          cli.output.verbose("====================================="); _(); }); }, true)); }); });








  var virtualMachineScaleSetsDeallocate = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsDeallocate.command("deallocate [resource-group] [name] [instance-ids]").description($("Allows you to deallocate virtual machines in a virtual machine scale set. Shuts down the virtual machines and releases the compute resources. You are not billed for the compute resources that this virtual machine scale set uses.")).usage("[options] <resource-group> <name> <instance-ids>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("--instance-ids <instance-ids>", $("instance-ids")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __62(resourceGroup, name, instanceIds, options, _) { var instanceIdsObj, fileContent, instanceIdsValArr, item, subscription, computeManagementClient, result; var __frame = { name: "__62", line: 4837 }; return __func(_, this, arguments, __62, 4, __frame, function __$__62() { return (function __$__62(__then) {







        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__62() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__62(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__62() {


          cli.output.verbose(("name = " + name));
          cli.output.verbose(("instanceIds = " + instanceIds));
          instanceIdsObj = null;
          if (options.parameterFile) {
            cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
            fileContent = fs.readFileSync(options.parameterFile, "utf8");
            instanceIdsObj = JSON.parse(fileContent); }

           else {
            instanceIdsValArr = (instanceIds ? instanceIds.split(",") : []);
            cli.output.verbose(("instanceIds : " + instanceIdsValArr));
            instanceIdsObj = [];
            for (item in instanceIdsValArr) {
              instanceIdsObj.push(instanceIdsValArr[item]); };

            instanceIdsObj = { instanceIds: instanceIdsObj }; } ;

          cli.output.verbose(("instanceIdsObj = " + JSON.stringify(instanceIdsObj)));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.deallocate(resourceGroup, name, instanceIdsObj, __cb(_, __frame, 30, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });







  var virtualMachineScaleSetsDelete = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsDelete.command("delete [resource-group] [name]").description($("Allows you to delete a virtual machine scale set.")).usage("[options] <resource-group> <name>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __63(resourceGroup, name, options, _) { var subscription, computeManagementClient, result; var __frame = { name: "__63", line: 4885 }; return __func(_, this, arguments, __63, 3, __frame, function __$__63() { return (function __$__63(__then) {






        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__63() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__63(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__63() {


          cli.output.verbose(("name = " + name));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.deleteMethod(resourceGroup, name, __cb(_, __frame, 13, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });








  var virtualMachineScaleSetsDeleteInstances = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsDeleteInstances.command("delete-instances [resource-group] [name] [instance-ids]").description($("Allows you to delete virtual machines in a virtual machine scale set.")).usage("[options] <resource-group> <name> <instance-ids>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("--instance-ids <instance-ids>", $("instance-ids")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __64(resourceGroup, name, instanceIds, options, _) { var instanceIdsObj, fileContent, instanceIdsValArr, item, subscription, computeManagementClient, result; var __frame = { name: "__64", line: 4918 }; return __func(_, this, arguments, __64, 4, __frame, function __$__64() { return (function __$__64(__then) {







        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__64() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__64(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__64() {


          cli.output.verbose(("name = " + name));
          cli.output.verbose(("instanceIds = " + instanceIds));
          instanceIdsObj = null;
          if (options.parameterFile) {
            cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
            fileContent = fs.readFileSync(options.parameterFile, "utf8");
            instanceIdsObj = JSON.parse(fileContent); }

           else {
            instanceIdsValArr = (instanceIds ? instanceIds.split(",") : []);
            cli.output.verbose(("instanceIds : " + instanceIdsValArr));
            instanceIdsObj = [];
            for (item in instanceIdsValArr) {
              instanceIdsObj.push(instanceIdsValArr[item]); }; } ;


          cli.output.verbose(("instanceIdsObj = " + JSON.stringify(instanceIdsObj)));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.deleteInstances(resourceGroup, name, instanceIdsObj, __cb(_, __frame, 29, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });







  var virtualMachineScaleSetsGet = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsGet.command("show [resource-group] [name]").description($("Display information about a virtual machine scale set.")).usage("[options] <resource-group> <name>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __65(resourceGroup, name, options, _) { var subscription, computeManagementClient, result; var __frame = { name: "__65", line: 4965 }; return __func(_, this, arguments, __65, 3, __frame, function __$__65() { return (function __$__65(__then) {






        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__65() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__65(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__65() {


          cli.output.verbose(("name = " + name));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.get(resourceGroup, name, __cb(_, __frame, 13, 65, function ___(__0, __3) { result = __3;
            if (cli.output.format().json) {
              cli.output.json(result); }

             else {
              display(cli, result); } ; _(); }, true)); }); }); }); });







  var virtualMachineScaleSetsGetInstanceView = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsGetInstanceView.command("get-instance-view [resource-group] [name]").description($("Displays status of a virtual machine scale set instance.")).usage("[options] <resource-group> <name>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __66(resourceGroup, name, options, _) { var subscription, computeManagementClient, result; var __frame = { name: "__66", line: 4999 }; return __func(_, this, arguments, __66, 3, __frame, function __$__66() { return (function __$__66(__then) {






        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__66() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__66(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__66() {


          cli.output.verbose(("name = " + name));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.getInstanceView(resourceGroup, name, __cb(_, __frame, 13, 65, function ___(__0, __3) { result = __3;
            if (cli.output.format().json) {
              cli.output.json(result); }

             else {
              display(cli, result); } ; _(); }, true)); }); }); }); });






  var virtualMachineScaleSetsList = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsList.command("list [resource-group]").description($("Lists all virtual machine scale sets under a resource group.")).usage("[options] <resource-group>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __67(resourceGroup, options, _) { var subscription, computeManagementClient, result, nextPageLink, pageResult; var __frame = { name: "__67", line: 5031 }; return __func(_, this, arguments, __67, 2, __frame, function __$__67() {





      cli.output.verbose(("resourceGroup = " + resourceGroup));
      subscription = profile.current.getSubscription(options.subscription);
      computeManagementClient = utils.createComputeManagementClient(subscription);
      result = null; return (function __$__67(__then) {
        if (utils.stringIsNullOrEmpty(resourceGroup)) {
          return computeManagementClient.virtualMachineScaleSets.listAll(__cb(_, __frame, 6, 63, function ___(__0, __1) { result = __1; __then(); }, true)); } else {


          return computeManagementClient.virtualMachineScaleSets.list(resourceGroup, __cb(_, __frame, 9, 63, function ___(__0, __2) { result = __2; __then(); }, true)); } ; })(function __$__67() {

        nextPageLink = result.nextLink; return (function ___(__break) { var __more; var __loop = __cb(_, __frame, 0, 0, function __$__67() { __more = false;
            var __6 = nextPageLink; if (__6) {
              return computeManagementClient.virtualMachineScaleSets.listNext(nextPageLink, __cb(_, __frame, 13, 71, function ___(__0, __3) { pageResult = __3;
                pageResult.forEach(function(item) {
                  result.push(item); });

                nextPageLink = pageResult.nextLink; while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$__67() {


          if (cli.output.format().json) {
            cli.output.json(result); }

           else {
            cli.output.table(result, function(row, item) {
              var rgName = (item.id ? utils.parseResourceReferenceUri(item.id).resourceGroupName : null);
              row.cell($("ResourceGroupName"), rgName);
              row.cell($("Name"), item.name);
              row.cell($("ProvisioningState"), item.provisioningState);
              row.cell($("Location"), item.location); }); } ; _(); }); }); }); });








  var virtualMachineScaleSetsListSkus = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsListSkus.command("list-skus [resource-group] [name]").description($("Displays available skus for your virtual machine scale set including the minimum and maximum vm instances allowed for a particular sku.")).usage("[options] <resource-group> <name>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __68(resourceGroup, name, options, _) { var subscription, computeManagementClient, result, nextPageLink, pageResult; var __frame = { name: "__68", line: 5077 }; return __func(_, this, arguments, __68, 3, __frame, function __$__68() { return (function __$__68(__then) {






        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__68() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__68(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__68() {


          cli.output.verbose(("name = " + name));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.listSkus(resourceGroup, name, __cb(_, __frame, 13, 65, function ___(__0, __3) { result = __3;
            nextPageLink = result.nextLink; return (function ___(__break) { var __more; var __loop = __cb(_, __frame, 0, 0, function __$__68() { __more = false;
                var __8 = nextPageLink; if (__8) {
                  return computeManagementClient.virtualMachineScaleSets.listSkusNext(nextPageLink, __cb(_, __frame, 16, 71, function ___(__0, __4) { pageResult = __4;
                    pageResult.forEach(function(item) {
                      result.push(item); });

                    nextPageLink = pageResult.nextLink; while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$__68() {


              if (result) {
                cli.output.json(result); } ; _(); }); }, true)); }); }); }); });








  var virtualMachineScaleSetsPowerOff = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsPowerOff.command("power-off [resource-group] [name] [instance-ids]").description($("Allows you to power off (stop) virtual machines in a virtual machine scale set. Note that resources are still attached and you are getting charged for the resources. Use deallocate to release resources.")).usage("[options] <resource-group> <name> <instance-ids>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("--instance-ids <instance-ids>", $("instance-ids")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __69(resourceGroup, name, instanceIds, options, _) { var instanceIdsObj, fileContent, instanceIdsValArr, item, subscription, computeManagementClient, result; var __frame = { name: "__69", line: 5119 }; return __func(_, this, arguments, __69, 4, __frame, function __$__69() { return (function __$__69(__then) {







        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__69() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__69(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__69() {


          cli.output.verbose(("name = " + name));
          cli.output.verbose(("instanceIds = " + instanceIds));
          instanceIdsObj = null;
          if (options.parameterFile) {
            cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
            fileContent = fs.readFileSync(options.parameterFile, "utf8");
            instanceIdsObj = JSON.parse(fileContent); }

           else {
            instanceIdsValArr = (instanceIds ? instanceIds.split(",") : []);
            cli.output.verbose(("instanceIds : " + instanceIdsValArr));
            instanceIdsObj = [];
            for (item in instanceIdsValArr) {
              instanceIdsObj.push(instanceIdsValArr[item]); };

            instanceIdsObj = { instanceIds: instanceIdsObj }; } ;

          cli.output.verbose(("instanceIdsObj = " + JSON.stringify(instanceIdsObj)));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.powerOff(resourceGroup, name, instanceIdsObj, __cb(_, __frame, 30, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });







  var virtualMachineScaleSetsReimage = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsReimage.command("reimage [resource-group] [name]").description($("Allows you to re-image(update the version of the installed operating system) virtual machines in a virtual machine scale set.")).usage("[options] <resource-group> <name>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __70(resourceGroup, name, options, _) { var subscription, computeManagementClient, result; var __frame = { name: "__70", line: 5167 }; return __func(_, this, arguments, __70, 3, __frame, function __$__70() { return (function __$__70(__then) {






        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__70() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__70(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__70() {


          cli.output.verbose(("name = " + name));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.reimage(resourceGroup, name, __cb(_, __frame, 13, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });








  var virtualMachineScaleSetsRestart = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsRestart.command("restart [resource-group] [name] [instance-ids]").description($("Allows you to restart virtual machines in a virtual machine scale set.")).usage("[options] <resource-group> <name> <instance-ids>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("--instance-ids <instance-ids>", $("instance-ids")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __71(resourceGroup, name, instanceIds, options, _) { var instanceIdsObj, fileContent, instanceIdsValArr, item, subscription, computeManagementClient, result; var __frame = { name: "__71", line: 5200 }; return __func(_, this, arguments, __71, 4, __frame, function __$__71() { return (function __$__71(__then) {







        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__71() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__71(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__71() {


          cli.output.verbose(("name = " + name));
          cli.output.verbose(("instanceIds = " + instanceIds));
          instanceIdsObj = null;
          if (options.parameterFile) {
            cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
            fileContent = fs.readFileSync(options.parameterFile, "utf8");
            instanceIdsObj = JSON.parse(fileContent); }

           else {
            instanceIdsValArr = (instanceIds ? instanceIds.split(",") : []);
            cli.output.verbose(("instanceIds : " + instanceIdsValArr));
            instanceIdsObj = [];
            for (item in instanceIdsValArr) {
              instanceIdsObj.push(instanceIdsValArr[item]); };

            instanceIdsObj = { instanceIds: instanceIdsObj }; } ;

          cli.output.verbose(("instanceIdsObj = " + JSON.stringify(instanceIdsObj)));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.restart(resourceGroup, name, instanceIdsObj, __cb(_, __frame, 30, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });








  var virtualMachineScaleSetsStart = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsStart.command("start [resource-group] [name] [instance-ids]").description($("Allows you to start virtual machines in a virtual machine scale set.")).usage("[options] <resource-group> <name> <instance-ids>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("--instance-ids <instance-ids>", $("instance-ids")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __72(resourceGroup, name, instanceIds, options, _) { var instanceIdsObj, fileContent, instanceIdsValArr, item, subscription, computeManagementClient, result; var __frame = { name: "__72", line: 5250 }; return __func(_, this, arguments, __72, 4, __frame, function __$__72() { return (function __$__72(__then) {







        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__72() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__72(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__72() {


          cli.output.verbose(("name = " + name));
          cli.output.verbose(("instanceIds = " + instanceIds));
          instanceIdsObj = null;
          if (options.parameterFile) {
            cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
            fileContent = fs.readFileSync(options.parameterFile, "utf8");
            instanceIdsObj = JSON.parse(fileContent); }

           else {
            instanceIdsValArr = (instanceIds ? instanceIds.split(",") : []);
            cli.output.verbose(("instanceIds : " + instanceIdsValArr));
            instanceIdsObj = [];
            for (item in instanceIdsValArr) {
              instanceIdsObj.push(instanceIdsValArr[item]); };

            instanceIdsObj = { instanceIds: instanceIdsObj }; } ;

          cli.output.verbose(("instanceIdsObj = " + JSON.stringify(instanceIdsObj)));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.start(resourceGroup, name, instanceIdsObj, __cb(_, __frame, 30, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });








  var virtualMachineScaleSetsUpdateInstances = cli.category("vmss").description($("Commands to manage your virtual machine scale sets.  "));

  virtualMachineScaleSetsUpdateInstances.command("update-instances [resource-group] [name] [instance-ids]").description($("Allows you to manually upgrade virtual machines in a virtual machine scale set.")).usage("[options] <resource-group> <name> <instance-ids>").option("-g, --resource-group <resource-group>", $("resource-group")).option("-n, --name <name>", $("name")).option("--instance-ids <instance-ids>", $("instance-ids")).option("-s, --subscription <subscription>", $("The subscription identifier")).execute(function __73(resourceGroup, name, instanceIds, options, _) { var instanceIdsObj, fileContent, instanceIdsValArr, item, subscription, computeManagementClient, result; var __frame = { name: "__73", line: 5300 }; return __func(_, this, arguments, __73, 4, __frame, function __$__73() { return (function __$__73(__then) {







        if (!resourceGroup) {
          return cli.interaction.promptIfNotGiven($("resource-group : "), resourceGroup, __cb(_, __frame, 2, 38, function ___(__0, __1) { resourceGroup = __1; __then(); }, true)); } else { __then(); } ; })(function __$__73() {


        cli.output.verbose(("resourceGroup = " + resourceGroup)); return (function __$__73(__then) {
          if (!name) {
            return cli.interaction.promptIfNotGiven($("name : "), name, __cb(_, __frame, 7, 29, function ___(__0, __2) { name = __2; __then(); }, true)); } else { __then(); } ; })(function __$__73() {


          cli.output.verbose(("name = " + name));
          cli.output.verbose(("instanceIds = " + instanceIds));
          instanceIdsObj = null;
          if (options.parameterFile) {
            cli.output.verbose((("Reading file content from: \"" + options.parameterFile) + "\""));
            fileContent = fs.readFileSync(options.parameterFile, "utf8");
            instanceIdsObj = JSON.parse(fileContent); }

           else {
            instanceIdsValArr = (instanceIds ? instanceIds.split(",") : []);
            cli.output.verbose(("instanceIds : " + instanceIdsValArr));
            instanceIdsObj = [];
            for (item in instanceIdsValArr) {
              instanceIdsObj.push(instanceIdsValArr[item]); }; } ;


          cli.output.verbose(("instanceIdsObj = " + JSON.stringify(instanceIdsObj)));
          subscription = profile.current.getSubscription(options.subscription);
          computeManagementClient = utils.createComputeManagementClient(subscription);
          return computeManagementClient.virtualMachineScaleSets.updateInstances(resourceGroup, name, instanceIdsObj, __cb(_, __frame, 29, 65, function ___(__0, __3) { result = __3;
            if (result) {
              cli.output.json(result); } ; _(); }, true)); }); }); }); });};
