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


mutable struct VirtualMachineScaleSetVMInstanceView <: 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
    vmHealth::Any # spec type: Union{ Nothing, VirtualMachineHealthStatus } # spec name: vmHealth
    bootDiagnostics::Any # spec type: Union{ Nothing, BootDiagnosticsInstanceView } # spec name: bootDiagnostics
    statuses::Any # spec type: Union{ Nothing, Vector{InstanceViewStatus} } # spec name: statuses
    assignedHost::Any # spec type: Union{ Nothing, String } # spec name: assignedHost
    placementGroupId::Any # spec type: Union{ Nothing, String } # spec name: placementGroupId

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

const _property_map_VirtualMachineScaleSetVMInstanceView = 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("vmHealth")=>Symbol("vmHealth"), Symbol("bootDiagnostics")=>Symbol("bootDiagnostics"), Symbol("statuses")=>Symbol("statuses"), Symbol("assignedHost")=>Symbol("assignedHost"), Symbol("placementGroupId")=>Symbol("placementGroupId"))
const _property_types_VirtualMachineScaleSetVMInstanceView = 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("vmHealth")=>"VirtualMachineHealthStatus", Symbol("bootDiagnostics")=>"BootDiagnosticsInstanceView", Symbol("statuses")=>"Vector{InstanceViewStatus}", Symbol("assignedHost")=>"String", Symbol("placementGroupId")=>"String")
Base.propertynames(::Type{ VirtualMachineScaleSetVMInstanceView }) = collect(keys(_property_map_VirtualMachineScaleSetVMInstanceView))
Swagger.property_type(::Type{ VirtualMachineScaleSetVMInstanceView }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_VirtualMachineScaleSetVMInstanceView[name]))}
Swagger.field_name(::Type{ VirtualMachineScaleSetVMInstanceView }, property_name::Symbol) =  _property_map_VirtualMachineScaleSetVMInstanceView[property_name]

function check_required(o::VirtualMachineScaleSetVMInstanceView)
    true
end

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