Lib/ArmorVM.ps1

Class ArmorVmService {
    [ValidateRange( 1, 65535 )]
    [UInt16] $VmID

    [String] $SKU

    [Boolean] $IsDeleted

    [UInt16] $ID

    [DateTime] $CreatedDate

    [String] $CreatedBy

    [DateTime] $ModifiedDate

    [String] $ModifiedBy

    #Constructors
    ArmorVmService () {}
}


Class ArmorVM {
    [ValidatePattern( '^(?:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$' )]
    [String] $CoreInstanceId

    [DateTime] $DateCreated

    [String] $ProviderRefId

    [ValidateSet( 'Complete', 'AWS', 'Azure', '' )]
    [String] $Provider

    [String] $HostName

    [ValidatePattern( '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])?$' )]
    [String] $ExternalAddress

    [Boolean] $IsRegistered

    [DateTime] $DateRegistered

    [DateTime] $LastPing

    [Boolean] $NeedsReboot

    [String] $CustomProvider

    [String] $CustomLocation

    [String] $InstanceType

    [UInt16] $Status

    [Boolean] $IsCore

    [Boolean] $ExternalVmIsDeleted

    [UInt16] $AccountID

    [UInt16] $VmID

    # workLoadId
    # workLoadName
    # location
    # operatingSystem
    # isArmor
    # ipAddress
    # zone
    # name
    # cpu
    # memory
    # storage
    # statusId
    # deployed
    # vcdOrgVdcId
    [String[]] $Product

    [String[]] $Tags = @()

    [PSObject[]] $ScheduledEvents = @()

    [ArmorVmService[]] $VmServices = @()
}