# 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::V2019_12_01
module Models
#
# Specifies information about the availability set that the virtual machine
# should be assigned to. Virtual machines specified in the same
# availability set are allocated to different nodes to maximize
# availability. For more information about availability sets, see [Manage
# the availability of virtual
# machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
#
For more information on Azure planned maintenance, see [Planned
# maintenance for virtual machines in
# Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
#
Currently, a VM can only be added to availability set at
# creation time. An existing VM cannot be added to an availability set.
#
class AvailabilitySet < Resource
include MsRestAzure
# @return [Integer] Update Domain count.
attr_accessor :platform_update_domain_count
# @return [Integer] Fault Domain count.
attr_accessor :platform_fault_domain_count
# @return [Array] A list of references to all virtual
# machines in the availability set.
attr_accessor :virtual_machines
# @return [SubResource] Specifies information about the proximity
# placement group that the availability set should be assigned to.
#
Minimum api-version: 2018-04-01.
attr_accessor :proximity_placement_group
# @return [Array] The resource status information.
attr_accessor :statuses
# @return [Sku] Sku of the availability set, only name is required to be
# set. See AvailabilitySetSkuTypes for possible set of values. Use
# 'Aligned' for virtual machines with managed disks and 'Classic' for
# virtual machines with unmanaged disks. Default value is 'Classic'.
attr_accessor :sku
#
# Mapper for AvailabilitySet class as Ruby Hash.
# This will be used for serialization/deserialization.
#
def self.mapper()
{
client_side_validation: true,
required: false,
serialized_name: 'AvailabilitySet',
type: {
name: 'Composite',
class_name: 'AvailabilitySet',
model_properties: {
id: {
client_side_validation: true,
required: false,
read_only: true,
serialized_name: 'id',
type: {
name: 'String'
}
},
name: {
client_side_validation: true,
required: false,
read_only: true,
serialized_name: 'name',
type: {
name: 'String'
}
},
type: {
client_side_validation: true,
required: false,
read_only: true,
serialized_name: 'type',
type: {
name: 'String'
}
},
location: {
client_side_validation: true,
required: true,
serialized_name: 'location',
type: {
name: 'String'
}
},
tags: {
client_side_validation: true,
required: false,
serialized_name: 'tags',
type: {
name: 'Dictionary',
value: {
client_side_validation: true,
required: false,
serialized_name: 'StringElementType',
type: {
name: 'String'
}
}
}
},
platform_update_domain_count: {
client_side_validation: true,
required: false,
serialized_name: 'properties.platformUpdateDomainCount',
type: {
name: 'Number'
}
},
platform_fault_domain_count: {
client_side_validation: true,
required: false,
serialized_name: 'properties.platformFaultDomainCount',
type: {
name: 'Number'
}
},
virtual_machines: {
client_side_validation: true,
required: false,
serialized_name: 'properties.virtualMachines',
type: {
name: 'Sequence',
element: {
client_side_validation: true,
required: false,
serialized_name: 'SubResourceElementType',
type: {
name: 'Composite',
class_name: 'SubResource'
}
}
}
},
proximity_placement_group: {
client_side_validation: true,
required: false,
serialized_name: 'properties.proximityPlacementGroup',
type: {
name: 'Composite',
class_name: 'SubResource'
}
},
statuses: {
client_side_validation: true,
required: false,
read_only: true,
serialized_name: 'properties.statuses',
type: {
name: 'Sequence',
element: {
client_side_validation: true,
required: false,
serialized_name: 'InstanceViewStatusElementType',
type: {
name: 'Composite',
class_name: 'InstanceViewStatus'
}
}
}
},
sku: {
client_side_validation: true,
required: false,
serialized_name: 'sku',
type: {
name: 'Composite',
class_name: 'Sku'
}
}
}
}
}
end
end
end
end