# This file was generated by the Julia Swagger Code Generator
# Do not modify this file directly. Modify the swagger specification instead.



mutable struct VirtualMachineInstanceView <: SwaggerModel
    platformUpdateDomain::Any # spec type: Union{ Nothing, Int32 } # spec name: platformUpdateDomain
    platformFaultDomain::Any # spec type: Union{ Nothing, Int32 } # spec name: platformFaultDomain
    rdpThumbPrint::Any # spec type: Union{ Nothing, String } # spec name: rdpThumbPrint
    vmAgent::Any # spec type: Union{ Nothing, VirtualMachineAgentInstanceView } # spec name: vmAgent
    maintenanceRedeployStatus::Any # spec type: Union{ Nothing, MaintenanceRedeployStatus } # spec name: maintenanceRedeployStatus
    disks::Any # spec type: Union{ Nothing, Vector{DiskInstanceView} } # spec name: disks
    extensions::Any # spec type: Union{ Nothing, Vector{VirtualMachineExtensionInstanceView} } # spec name: extensions
    bootDiagnostics::Any # spec type: Union{ Nothing, BootDiagnosticsInstanceView } # spec name: bootDiagnostics
    statuses::Any # spec type: Union{ Nothing, Vector{InstanceViewStatus} } # spec name: statuses

    function VirtualMachineInstanceView(;platformUpdateDomain=nothing, platformFaultDomain=nothing, rdpThumbPrint=nothing, vmAgent=nothing, maintenanceRedeployStatus=nothing, disks=nothing, extensions=nothing, bootDiagnostics=nothing, statuses=nothing)
        o = new()
        validate_property(VirtualMachineInstanceView, Symbol("platformUpdateDomain"), platformUpdateDomain)
        setfield!(o, Symbol("platformUpdateDomain"), platformUpdateDomain)
        validate_property(VirtualMachineInstanceView, Symbol("platformFaultDomain"), platformFaultDomain)
        setfield!(o, Symbol("platformFaultDomain"), platformFaultDomain)
        validate_property(VirtualMachineInstanceView, Symbol("rdpThumbPrint"), rdpThumbPrint)
        setfield!(o, Symbol("rdpThumbPrint"), rdpThumbPrint)
        validate_property(VirtualMachineInstanceView, Symbol("vmAgent"), vmAgent)
        setfield!(o, Symbol("vmAgent"), vmAgent)
        validate_property(VirtualMachineInstanceView, Symbol("maintenanceRedeployStatus"), maintenanceRedeployStatus)
        setfield!(o, Symbol("maintenanceRedeployStatus"), maintenanceRedeployStatus)
        validate_property(VirtualMachineInstanceView, Symbol("disks"), disks)
        setfield!(o, Symbol("disks"), disks)
        validate_property(VirtualMachineInstanceView, Symbol("extensions"), extensions)
        setfield!(o, Symbol("extensions"), extensions)
        validate_property(VirtualMachineInstanceView, Symbol("bootDiagnostics"), bootDiagnostics)
        setfield!(o, Symbol("bootDiagnostics"), bootDiagnostics)
        validate_property(VirtualMachineInstanceView, Symbol("statuses"), statuses)
        setfield!(o, Symbol("statuses"), statuses)
        o
    end
end # type VirtualMachineInstanceView

const _property_map_VirtualMachineInstanceView = Dict{Symbol,Symbol}(Symbol("platformUpdateDomain")=>Symbol("platformUpdateDomain"), Symbol("platformFaultDomain")=>Symbol("platformFaultDomain"), Symbol("rdpThumbPrint")=>Symbol("rdpThumbPrint"), Symbol("vmAgent")=>Symbol("vmAgent"), Symbol("maintenanceRedeployStatus")=>Symbol("maintenanceRedeployStatus"), Symbol("disks")=>Symbol("disks"), Symbol("extensions")=>Symbol("extensions"), Symbol("bootDiagnostics")=>Symbol("bootDiagnostics"), Symbol("statuses")=>Symbol("statuses"))
const _property_types_VirtualMachineInstanceView = Dict{Symbol,String}(Symbol("platformUpdateDomain")=>"Int32", Symbol("platformFaultDomain")=>"Int32", Symbol("rdpThumbPrint")=>"String", Symbol("vmAgent")=>"VirtualMachineAgentInstanceView", Symbol("maintenanceRedeployStatus")=>"MaintenanceRedeployStatus", Symbol("disks")=>"Vector{DiskInstanceView}", Symbol("extensions")=>"Vector{VirtualMachineExtensionInstanceView}", Symbol("bootDiagnostics")=>"BootDiagnosticsInstanceView", Symbol("statuses")=>"Vector{InstanceViewStatus}")
Base.propertynames(::Type{ VirtualMachineInstanceView }) = collect(keys(_property_map_VirtualMachineInstanceView))
Swagger.property_type(::Type{ VirtualMachineInstanceView }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_VirtualMachineInstanceView[name]))}
Swagger.field_name(::Type{ VirtualMachineInstanceView }, property_name::Symbol) =  _property_map_VirtualMachineInstanceView[property_name]

function check_required(o::VirtualMachineInstanceView)
    true
end

function validate_property(::Type{ VirtualMachineInstanceView }, name::Symbol, val)
end
