UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

298 lines (292 loc) 13.7 kB
/* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is * regenerated. */ 'use strict'; const models = require('./index'); /** * Describes a Virtual Machine Scale Set. * * @extends models['UpdateResource'] */ class VirtualMachineScaleSetUpdate extends models['UpdateResource'] { /** * Create a VirtualMachineScaleSetUpdate. * @member {object} [sku] The virtual machine scale set sku. * @member {string} [sku.name] The sku name. * @member {string} [sku.tier] Specifies the tier of virtual machines in a * scale set.<br /><br /> Possible Values:<br /><br /> **Standard**<br /><br * /> **Basic** * @member {number} [sku.capacity] Specifies the number of virtual machines * in the scale set. * @member {object} [plan] The purchase plan when deploying a virtual machine * scale set from VM Marketplace images. * @member {string} [plan.name] The plan ID. * @member {string} [plan.publisher] The publisher ID. * @member {string} [plan.product] Specifies the product of the image from * the marketplace. This is the same value as Offer under the imageReference * element. * @member {string} [plan.promotionCode] The promotion code. * @member {object} [upgradePolicy] The upgrade policy. * @member {string} [upgradePolicy.mode] Specifies the mode of an upgrade to * virtual machines in the scale set.<br /><br /> Possible values are:<br * /><br /> **Manual** - You control the application of updates to virtual * machines in the scale set. You do this by using the manualUpgrade * action.<br /><br /> **Automatic** - All virtual machines in the scale set * are automatically updated at the same time. Possible values include: * 'Automatic', 'Manual', 'Rolling' * @member {object} [upgradePolicy.rollingUpgradePolicy] The configuration * parameters used while performing a rolling upgrade. * @member {number} * [upgradePolicy.rollingUpgradePolicy.maxBatchInstancePercent] The maximum * percent of total virtual machine instances that will be upgraded * simultaneously by the rolling upgrade in one batch. As this is a maximum, * unhealthy instances in previous or future batches can cause the percentage * of instances in a batch to decrease to ensure higher reliability. The * default value for this parameter is 20%. * @member {number} * [upgradePolicy.rollingUpgradePolicy.maxUnhealthyInstancePercent] The * maximum percentage of the total virtual machine instances in the scale set * that can be simultaneously unhealthy, either as a result of being * upgraded, or by being found in an unhealthy state by the virtual machine * health checks before the rolling upgrade aborts. This constraint will be * checked prior to starting any batch. The default value for this parameter * is 20%. * @member {number} * [upgradePolicy.rollingUpgradePolicy.maxUnhealthyUpgradedInstancePercent] * The maximum percentage of upgraded virtual machine instances that can be * found to be in an unhealthy state. This check will happen after each batch * is upgraded. If this percentage is ever exceeded, the rolling update * aborts. The default value for this parameter is 20%. * @member {string} * [upgradePolicy.rollingUpgradePolicy.pauseTimeBetweenBatches] The wait time * between completing the update for all virtual machines in one batch and * starting the next batch. The time duration should be specified in ISO 8601 * format. The default value is 0 seconds (PT0S). * @member {boolean} [upgradePolicy.automaticOSUpgrade] Whether OS upgrades * should automatically be applied to scale set instances in a rolling * fashion when a newer version of the image becomes available. * @member {object} [virtualMachineProfile] The virtual machine profile. * @member {object} [virtualMachineProfile.osProfile] The virtual machine * scale set OS profile. * @member {string} [virtualMachineProfile.osProfile.customData] A base-64 * encoded string of custom data. * @member {object} [virtualMachineProfile.osProfile.windowsConfiguration] * The Windows Configuration of the OS profile. * @member {boolean} * [virtualMachineProfile.osProfile.windowsConfiguration.provisionVMAgent] * Indicates whether virtual machine agent should be provisioned on the * virtual machine. <br><br> When this property is not specified in the * request body, default behavior is to set it to true. This will ensure * that VM Agent is installed on the VM so that extensions can be added to * the VM later. * @member {boolean} * [virtualMachineProfile.osProfile.windowsConfiguration.enableAutomaticUpdates] * Indicates whether virtual machine is enabled for automatic updates. * @member {string} * [virtualMachineProfile.osProfile.windowsConfiguration.timeZone] Specifies * the time zone of the virtual machine. e.g. "Pacific Standard Time" * @member {array} * [virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent] * Specifies additional base-64 encoded XML formatted information that can be * included in the Unattend.xml file, which is used by Windows Setup. * @member {object} * [virtualMachineProfile.osProfile.windowsConfiguration.winRM] Specifies the * Windows Remote Management listeners. This enables remote Windows * PowerShell. * @member {array} * [virtualMachineProfile.osProfile.windowsConfiguration.winRM.listeners] The * list of Windows Remote Management listeners * @member {object} [virtualMachineProfile.osProfile.linuxConfiguration] The * Linux Configuration of the OS profile. * @member {boolean} * [virtualMachineProfile.osProfile.linuxConfiguration.disablePasswordAuthentication] * Specifies whether password authentication should be disabled. * @member {object} [virtualMachineProfile.osProfile.linuxConfiguration.ssh] * Specifies the ssh key configuration for a Linux OS. * @member {array} * [virtualMachineProfile.osProfile.linuxConfiguration.ssh.publicKeys] The * list of SSH public keys used to authenticate with linux based VMs. * @member {array} [virtualMachineProfile.osProfile.secrets] The List of * certificates for addition to the VM. * @member {object} [virtualMachineProfile.storageProfile] The virtual * machine scale set storage profile. * @member {object} [virtualMachineProfile.storageProfile.imageReference] The * image reference. * @member {string} * [virtualMachineProfile.storageProfile.imageReference.publisher] The image * publisher. * @member {string} * [virtualMachineProfile.storageProfile.imageReference.offer] Specifies the * offer of the platform image or marketplace image used to create the * virtual machine. * @member {string} [virtualMachineProfile.storageProfile.imageReference.sku] * The image SKU. * @member {string} * [virtualMachineProfile.storageProfile.imageReference.version] Specifies * the version of the platform image or marketplace image used to create the * virtual machine. The allowed formats are Major.Minor.Build or 'latest'. * Major, Minor, and Build are decimal numbers. Specify 'latest' to use the * latest version of an image available at deploy time. Even if you use * 'latest', the VM image will not automatically update after deploy time * even if a new version becomes available. * @member {object} [virtualMachineProfile.storageProfile.osDisk] The OS * disk. * @member {string} [virtualMachineProfile.storageProfile.osDisk.caching] The * caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite' * @member {object} [virtualMachineProfile.storageProfile.osDisk.image] The * Source User Image VirtualHardDisk. This VirtualHardDisk will be copied * before using it to attach to the Virtual Machine. If SourceImage is * provided, the destination VirtualHardDisk should not exist. * @member {string} [virtualMachineProfile.storageProfile.osDisk.image.uri] * Specifies the virtual hard disk's uri. * @member {array} * [virtualMachineProfile.storageProfile.osDisk.vhdContainers] The list of * virtual hard disk container uris. * @member {object} [virtualMachineProfile.storageProfile.osDisk.managedDisk] * The managed disk parameters. * @member {string} * [virtualMachineProfile.storageProfile.osDisk.managedDisk.storageAccountType] * Specifies the storage account type for the managed disk. Possible values * are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', * 'Premium_LRS' * @member {array} [virtualMachineProfile.storageProfile.dataDisks] The data * disks. * @member {object} [virtualMachineProfile.networkProfile] The virtual * machine scale set network profile. * @member {array} * [virtualMachineProfile.networkProfile.networkInterfaceConfigurations] The * list of network configurations. * @member {object} [virtualMachineProfile.diagnosticsProfile] The virtual * machine scale set diagnostics profile. * @member {object} * [virtualMachineProfile.diagnosticsProfile.bootDiagnostics] Boot * Diagnostics is a debugging feature which allows you to view Console Output * and Screenshot to diagnose VM status. <br><br> For Linux Virtual Machines, * you can easily view the output of your console log. <br><br> For both * Windows and Linux virtual machines, Azure also enables you to see a * screenshot of the VM from the hypervisor. * @member {boolean} * [virtualMachineProfile.diagnosticsProfile.bootDiagnostics.enabled] Whether * boot diagnostics should be enabled on the Virtual Machine. * @member {string} * [virtualMachineProfile.diagnosticsProfile.bootDiagnostics.storageUri] Uri * of the storage account to use for placing the console output and * screenshot. * @member {object} [virtualMachineProfile.extensionProfile] The virtual * machine scale set extension profile. * @member {array} [virtualMachineProfile.extensionProfile.extensions] The * virtual machine scale set child extension resources. * @member {string} [virtualMachineProfile.licenseType] The license type, * which is for bring your own license scenario. * @member {boolean} [overprovision] Specifies whether the Virtual Machine * Scale Set should be overprovisioned. * @member {boolean} [singlePlacementGroup] When true this limits the scale * set to a single placement group, of max size 100 virtual machines. * @member {object} [identity] The identity of the virtual machine scale set, * if configured. * @member {string} [identity.principalId] The principal id of virtual * machine scale set identity. * @member {string} [identity.tenantId] The tenant id associated with the * virtual machine scale set. * @member {string} [identity.type] The type of identity used for the virtual * machine scale set. Currently, the only supported type is 'SystemAssigned', * which implicitly creates an identity. Possible values include: * 'SystemAssigned' */ constructor() { super(); } /** * Defines the metadata of VirtualMachineScaleSetUpdate * * @returns {object} metadata of VirtualMachineScaleSetUpdate * */ mapper() { return { required: false, serializedName: 'VirtualMachineScaleSetUpdate', type: { name: 'Composite', className: 'VirtualMachineScaleSetUpdate', modelProperties: { tags: { required: false, serializedName: 'tags', type: { name: 'Dictionary', value: { required: false, serializedName: 'StringElementType', type: { name: 'String' } } } }, sku: { required: false, serializedName: 'sku', type: { name: 'Composite', className: 'Sku' } }, plan: { required: false, serializedName: 'plan', type: { name: 'Composite', className: 'Plan' } }, upgradePolicy: { required: false, serializedName: 'properties.upgradePolicy', type: { name: 'Composite', className: 'UpgradePolicy' } }, virtualMachineProfile: { required: false, serializedName: 'properties.virtualMachineProfile', type: { name: 'Composite', className: 'VirtualMachineScaleSetUpdateVMProfile' } }, overprovision: { required: false, serializedName: 'properties.overprovision', type: { name: 'Boolean' } }, singlePlacementGroup: { required: false, serializedName: 'properties.singlePlacementGroup', type: { name: 'Boolean' } }, identity: { required: false, serializedName: 'identity', type: { name: 'Composite', className: 'VirtualMachineScaleSetIdentity' } } } } }; } } module.exports = VirtualMachineScaleSetUpdate;