azure-cli
Version:
Microsoft Azure Cross Platform Command Line tool
177 lines (171 loc) • 8.26 kB
JavaScript
/*
* 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.
*/
;
const models = require('./index');
/**
* Describes a virtual machine scale set OS profile.
*
*/
class VirtualMachineScaleSetOSProfile {
/**
* Create a VirtualMachineScaleSetOSProfile.
* @member {string} [computerNamePrefix] Specifies the computer name prefix
* for all of the virtual machines in the scale set. Computer name prefixes
* must be 1 to 15 characters long.
* @member {string} [adminUsername] Specifies the name of the administrator
* account. <br><br> **Windows-only restriction:** Cannot end in "." <br><br>
* **Disallowed values:** "administrator", "admin", "user", "user1", "test",
* "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm",
* "admin2", "aspnet", "backup", "console", "david", "guest", "john",
* "owner", "root", "server", "sql", "support", "support_388945a0", "sys",
* "test2", "test3", "user4", "user5". <br><br> **Minimum-length (Linux):** 1
* character <br><br> **Max-length (Linux):** 64 characters <br><br>
* **Max-length (Windows):** 20 characters <br><br><li> For root access to
* the Linux VM, see [Using root privileges on Linux virtual machines in
* Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)<br><li>
* For a list of built-in system users on Linux that should not be used in
* this field, see [Selecting User Names for Linux on
* Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
* @member {string} [adminPassword] Specifies the password of the
* administrator account. <br><br> **Minimum-length (Windows):** 8 characters
* <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length
* (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters
* <br><br> **Complexity requirements:** 3 out of 4 conditions below need to
* be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a
* digit <br> Has a special character (Regex match [\W_]) <br><br>
* **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123",
* "Pa$$word", "pass@word1", "Password!", "Password1", "Password22",
* "iloveyou!" <br><br> For resetting the password, see [How to reset the
* Remote Desktop service or its login password in a Windows
* VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
* <br><br> For resetting root password, see [Manage users, SSH, and check or
* repair disks on Azure Linux VMs using the VMAccess
* Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password)
* @member {string} [customData] Specifies a base-64 encoded string of custom
* data. The base-64 encoded string is decoded to a binary array that is
* saved as a file on the Virtual Machine. The maximum length of the binary
* array is 65535 bytes. <br><br> For using cloud-init for your VM, see
* [Using cloud-init to customize a Linux VM during
* creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
* @member {object} [windowsConfiguration] Specifies Windows operating system
* settings on the virtual machine.
* @member {boolean} [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} [windowsConfiguration.enableAutomaticUpdates] Indicates
* whether virtual machine is enabled for automatic updates.
* @member {string} [windowsConfiguration.timeZone] Specifies the time zone
* of the virtual machine. e.g. "Pacific Standard Time"
* @member {array} [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} [windowsConfiguration.winRM] Specifies the Windows Remote
* Management listeners. This enables remote Windows PowerShell.
* @member {array} [windowsConfiguration.winRM.listeners] The list of Windows
* Remote Management listeners
* @member {object} [linuxConfiguration] Specifies the Linux operating system
* settings on the virtual machine. <br><br>For a list of supported Linux
* distributions, see [Linux on Azure-Endorsed
* Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
* <br><br> For running non-endorsed distributions, see [Information for
* Non-Endorsed
* Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
* @member {boolean} [linuxConfiguration.disablePasswordAuthentication]
* Specifies whether password authentication should be disabled.
* @member {object} [linuxConfiguration.ssh] Specifies the ssh key
* configuration for a Linux OS.
* @member {array} [linuxConfiguration.ssh.publicKeys] The list of SSH public
* keys used to authenticate with linux based VMs.
* @member {array} [secrets] Specifies set of certificates that should be
* installed onto the virtual machines in the scale set.
*/
constructor() {
}
/**
* Defines the metadata of VirtualMachineScaleSetOSProfile
*
* @returns {object} metadata of VirtualMachineScaleSetOSProfile
*
*/
mapper() {
return {
required: false,
serializedName: 'VirtualMachineScaleSetOSProfile',
type: {
name: 'Composite',
className: 'VirtualMachineScaleSetOSProfile',
modelProperties: {
computerNamePrefix: {
required: false,
serializedName: 'computerNamePrefix',
type: {
name: 'String'
}
},
adminUsername: {
required: false,
serializedName: 'adminUsername',
type: {
name: 'String'
}
},
adminPassword: {
required: false,
serializedName: 'adminPassword',
type: {
name: 'String'
}
},
customData: {
required: false,
serializedName: 'customData',
type: {
name: 'String'
}
},
windowsConfiguration: {
required: false,
serializedName: 'windowsConfiguration',
type: {
name: 'Composite',
className: 'WindowsConfiguration'
}
},
linuxConfiguration: {
required: false,
serializedName: 'linuxConfiguration',
type: {
name: 'Composite',
className: 'LinuxConfiguration'
}
},
secrets: {
required: false,
serializedName: 'secrets',
type: {
name: 'Sequence',
element: {
required: false,
serializedName: 'VaultSecretGroupElementType',
type: {
name: 'Composite',
className: 'VaultSecretGroup'
}
}
}
}
}
}
};
}
}
module.exports = VirtualMachineScaleSetOSProfile;