# 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_09_30_preview
module Models
#
# Specifies information about the gallery image definition that you want to
# create or update.
#
class GalleryImage < Resource
include MsRestAzure
# @return [String] The description of this gallery image definition
# resource. This property is updatable.
attr_accessor :description
# @return [String] The Eula agreement for the gallery image definition.
attr_accessor :eula
# @return [String] The privacy statement uri.
attr_accessor :privacy_statement_uri
# @return [String] The release note uri.
attr_accessor :release_note_uri
# @return [OperatingSystemTypes] This property allows you to specify the
# type of the OS that is included in the disk when creating a VM from a
# managed image.
Possible values are:
**Windows**
#
**Linux**. Possible values include: 'Windows', 'Linux'
attr_accessor :os_type
# @return [OperatingSystemStateTypes] This property allows the user to
# specify whether the virtual machines created under this image are
# 'Generalized' or 'Specialized'. Possible values include: 'Generalized',
# 'Specialized'
attr_accessor :os_state
# @return [HyperVGeneration] The hypervisor generation of the Virtual
# Machine. Applicable to OS disks only. Possible values include: 'V1',
# 'V2'
attr_accessor :hyper_vgeneration
# @return [Array] A list of gallery image features.
attr_accessor :features
# @return [DateTime] The end of life date of the gallery image
# definition. This property can be used for decommissioning purposes.
# This property is updatable.
attr_accessor :end_of_life_date
# @return [GalleryImageIdentifier]
attr_accessor :identifier
# @return [RecommendedMachineConfiguration]
attr_accessor :recommended
# @return [Disallowed]
attr_accessor :disallowed
# @return [ImagePurchasePlan]
attr_accessor :purchase_plan
# @return [Enum] The current state of the gallery image definition. The
# provisioning state, which only appears in the response. Possible values
# include: 'Creating', 'Updating', 'Failed', 'Succeeded', 'Deleting',
# 'Migrating'
attr_accessor :provisioning_state
#
# Mapper for GalleryImage class as Ruby Hash.
# This will be used for serialization/deserialization.
#
def self.mapper()
{
client_side_validation: true,
required: false,
serialized_name: 'GalleryImage',
type: {
name: 'Composite',
class_name: 'GalleryImage',
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'
}
}
}
},
description: {
client_side_validation: true,
required: false,
serialized_name: 'properties.description',
type: {
name: 'String'
}
},
eula: {
client_side_validation: true,
required: false,
serialized_name: 'properties.eula',
type: {
name: 'String'
}
},
privacy_statement_uri: {
client_side_validation: true,
required: false,
serialized_name: 'properties.privacyStatementUri',
type: {
name: 'String'
}
},
release_note_uri: {
client_side_validation: true,
required: false,
serialized_name: 'properties.releaseNoteUri',
type: {
name: 'String'
}
},
os_type: {
client_side_validation: true,
required: true,
serialized_name: 'properties.osType',
type: {
name: 'Enum',
module: 'OperatingSystemTypes'
}
},
os_state: {
client_side_validation: true,
required: true,
serialized_name: 'properties.osState',
type: {
name: 'Enum',
module: 'OperatingSystemStateTypes'
}
},
hyper_vgeneration: {
client_side_validation: true,
required: false,
serialized_name: 'properties.hyperVGeneration',
type: {
name: 'String'
}
},
features: {
client_side_validation: true,
required: false,
serialized_name: 'properties.features',
type: {
name: 'Sequence',
element: {
client_side_validation: true,
required: false,
serialized_name: 'GalleryImageFeatureElementType',
type: {
name: 'Composite',
class_name: 'GalleryImageFeature'
}
}
}
},
end_of_life_date: {
client_side_validation: true,
required: false,
serialized_name: 'properties.endOfLifeDate',
type: {
name: 'DateTime'
}
},
identifier: {
client_side_validation: true,
required: true,
serialized_name: 'properties.identifier',
type: {
name: 'Composite',
class_name: 'GalleryImageIdentifier'
}
},
recommended: {
client_side_validation: true,
required: false,
serialized_name: 'properties.recommended',
type: {
name: 'Composite',
class_name: 'RecommendedMachineConfiguration'
}
},
disallowed: {
client_side_validation: true,
required: false,
serialized_name: 'properties.disallowed',
type: {
name: 'Composite',
class_name: 'Disallowed'
}
},
purchase_plan: {
client_side_validation: true,
required: false,
serialized_name: 'properties.purchasePlan',
type: {
name: 'Composite',
class_name: 'ImagePurchasePlan'
}
},
provisioning_state: {
client_side_validation: true,
required: false,
read_only: true,
serialized_name: 'properties.provisioningState',
type: {
name: 'String'
}
}
}
}
}
end
end
end
end