# 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::V2020_12_01
module Models
#
# Specifies information about the proximity placement group.
#
class ProximityPlacementGroup < Resource
include MsRestAzure
# @return [ProximityPlacementGroupType] Specifies the type of the
# proximity placement group.
Possible values are:
# **Standard** : Co-locate resources within an Azure region or
# Availability Zone.
**Ultra** : For future use. Possible values
# include: 'Standard', 'Ultra'
attr_accessor :proximity_placement_group_type
# @return [Array] A list of references
# to all virtual machines in the proximity placement group.
attr_accessor :virtual_machines
# @return [Array] A list of references
# to all virtual machine scale sets in the proximity placement group.
attr_accessor :virtual_machine_scale_sets
# @return [Array] A list of references
# to all availability sets in the proximity placement group.
attr_accessor :availability_sets
# @return [InstanceViewStatus] Describes colocation status of the
# Proximity Placement Group.
attr_accessor :colocation_status
#
# Mapper for ProximityPlacementGroup class as Ruby Hash.
# This will be used for serialization/deserialization.
#
def self.mapper()
{
client_side_validation: true,
required: false,
serialized_name: 'ProximityPlacementGroup',
type: {
name: 'Composite',
class_name: 'ProximityPlacementGroup',
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'
}
}
}
},
proximity_placement_group_type: {
client_side_validation: true,
required: false,
serialized_name: 'properties.proximityPlacementGroupType',
type: {
name: 'String'
}
},
virtual_machines: {
client_side_validation: true,
required: false,
read_only: true,
serialized_name: 'properties.virtualMachines',
type: {
name: 'Sequence',
element: {
client_side_validation: true,
required: false,
serialized_name: 'SubResourceWithColocationStatusElementType',
type: {
name: 'Composite',
class_name: 'SubResourceWithColocationStatus'
}
}
}
},
virtual_machine_scale_sets: {
client_side_validation: true,
required: false,
read_only: true,
serialized_name: 'properties.virtualMachineScaleSets',
type: {
name: 'Sequence',
element: {
client_side_validation: true,
required: false,
serialized_name: 'SubResourceWithColocationStatusElementType',
type: {
name: 'Composite',
class_name: 'SubResourceWithColocationStatus'
}
}
}
},
availability_sets: {
client_side_validation: true,
required: false,
read_only: true,
serialized_name: 'properties.availabilitySets',
type: {
name: 'Sequence',
element: {
client_side_validation: true,
required: false,
serialized_name: 'SubResourceWithColocationStatusElementType',
type: {
name: 'Composite',
class_name: 'SubResourceWithColocationStatus'
}
}
}
},
colocation_status: {
client_side_validation: true,
required: false,
serialized_name: 'properties.colocationStatus',
type: {
name: 'Composite',
class_name: 'InstanceViewStatus'
}
}
}
}
}
end
end
end
end