# encoding: utf-8
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
module Azure::Compute::Mgmt::V2017_12_01
module Models
#
# Specifies the operating system settings for the virtual machine.
#
class OSProfile
include MsRestAzure
# @return [String] Specifies the host OS name of the virtual machine.
#
This name cannot be updated after the VM is created.
# **Max-length (Windows):** 15 characters
**Max-length
# (Linux):** 64 characters.
For naming conventions and
# restrictions see [Azure infrastructure services implementation
# guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions).
attr_accessor :computer_name
# @return [String] Specifies the name of the administrator account.
#
**Windows-only restriction:** Cannot end in "."
# **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".
# **Minimum-length (Linux):** 1 character
**Max-length
# (Linux):** 64 characters
**Max-length (Windows):** 20
# characters
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)
# 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)
attr_accessor :admin_username
# @return [String] Specifies the password of the administrator account.
#
**Minimum-length (Windows):** 8 characters
# **Minimum-length (Linux):** 6 characters
**Max-length
# (Windows):** 123 characters
**Max-length (Linux):** 72
# characters
**Complexity requirements:** 3 out of 4 conditions
# below need to be fulfilled
Has lower characters
Has upper
# characters
Has a digit
Has a special character (Regex match
# [\W_])
**Disallowed values:** "abc@123", "P@$$w0rd",
# "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!",
# "Password1", "Password22", "iloveyou!"
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)
#
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)
attr_accessor :admin_password
# @return [String] 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.
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)
attr_accessor :custom_data
# @return [WindowsConfiguration] Specifies Windows operating system
# settings on the virtual machine.
attr_accessor :windows_configuration
# @return [LinuxConfiguration] Specifies the Linux operating system
# settings on the virtual machine.
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)
#
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).
attr_accessor :linux_configuration
# @return [Array] Specifies set of certificates that
# should be installed onto the virtual machine.
attr_accessor :secrets
#
# Mapper for OSProfile class as Ruby Hash.
# This will be used for serialization/deserialization.
#
def self.mapper()
{
client_side_validation: true,
required: false,
serialized_name: 'OSProfile',
type: {
name: 'Composite',
class_name: 'OSProfile',
model_properties: {
computer_name: {
client_side_validation: true,
required: false,
serialized_name: 'computerName',
type: {
name: 'String'
}
},
admin_username: {
client_side_validation: true,
required: false,
serialized_name: 'adminUsername',
type: {
name: 'String'
}
},
admin_password: {
client_side_validation: true,
required: false,
serialized_name: 'adminPassword',
type: {
name: 'String'
}
},
custom_data: {
client_side_validation: true,
required: false,
serialized_name: 'customData',
type: {
name: 'String'
}
},
windows_configuration: {
client_side_validation: true,
required: false,
serialized_name: 'windowsConfiguration',
type: {
name: 'Composite',
class_name: 'WindowsConfiguration'
}
},
linux_configuration: {
client_side_validation: true,
required: false,
serialized_name: 'linuxConfiguration',
type: {
name: 'Composite',
class_name: 'LinuxConfiguration'
}
},
secrets: {
client_side_validation: true,
required: false,
serialized_name: 'secrets',
type: {
name: 'Sequence',
element: {
client_side_validation: true,
required: false,
serialized_name: 'VaultSecretGroupElementType',
type: {
name: 'Composite',
class_name: 'VaultSecretGroup'
}
}
}
}
}
}
}
end
end
end
end