// classname, property name is case-sensitive
// syntax:
// [association] class XXXX [: YYYY]
// 	    Property_Type  Property_Name

class Computer : Entity
	String OSType
	String OSVersion
	String Hostname
	String IPAddress
	String GUID
	String AgentsInstalled

class Computer2DatabaseGroup : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref DatabaseGroup.ID DatabaseGroupID ToID

class Computer2Database : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref Database.ID DatabaseID ToID

class Computer2Filesystem : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref Filesystem.ID FilesystemID ToID

class Computer2FCPort : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref FCPort.ID FCPortID ToID

class Computer2HBA : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref HBA.ID HBAID ToID

class Computer2LogicalVolume : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref LogicalVolume.ID LogicalVolumeID ToID

class Computer2LogicalVolumeManager : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref LogicalVolumeManager.ID LogicalVolumeManagerID ToID

class Computer2Lun : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref Lun.ID LunID ToID

class Computer2TableSpace : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref TableSpace.ID TableSpaceID ToID

class Computer2Volume : Association [assocication]
	ref Computer.ID ComputerID FromID
	ref Volume.ID VolumeID ToID

class ComputerGroup : Entity
	Integer NumOfComputers
	Integer NumOfAbnormalComputers

class ComputerGroup2Computer : Association [assocication]
	ref ComputerGroup.ID ComputerGroupID FromID
	ref Computer.ID ComputerID ToID

class ComputerSummary : Entity
	Integer NumOfComputers
	Integer NumOfAbnormalComputers

class Database : Entity
	Long TotalSize
	Long TotalLogSize
	Long ContainerCapacity
	Integer NumOfTableSpaces
	Integer NumOfAbnormalTableSpaces

class Database2TableSpace : Association [assocication]
	ref Database.ID DatabaseID FromID
	ref TableSpace.ID TableSpaceID ToID

class DatabaseGroup : Entity
	Integer NumOfDatabases
	Integer NumOfAbnormalDatabases
	Integer NumOfTableSpaces
	Integer NumOfAbnormalTableSpaces

class DatabaseGroup2Database : Association [assocication]
	ref DatabaseGroup.ID DatabaseGroupID FromID
	ref Database.ID DatabaseID ToID

class Disk : Entity
	String Vendor
	String Model
	String SerialNumber
	Long Capacity

class Disk2DiskPerf : Association [assocication]
	ref Disk.ID DiskID FromID
	ref DiskPerf.ID DiskPerfID ToID

class DiskGroup : Entity
	Integer NumOfDisks
	Integer NumOfAbnormalDisks

class DiskGroup2Disk : Association [assocication]
	ref DiskGroup.ID DiskGroupID FromID
	ref Disk.ID DiskID ToID

class DiskPerf : Entity

class Fabric : Entity
	String WWN
	String Name
	String ParentLabel
	Boolean Active
	Integer NumOfVirtualFabrics
	Integer NumOfAbnormalVirtualFabrics
	Integer NumOfComputers
	Integer NumOfAbnormalComputers
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches
	Integer NumOfSubsystems
	Integer NumOfAbnormalSubsystems
	Integer NumOfTapeLibraries
	Integer NumOfAbnormalTapeLibraries
	Integer NumOfOthers
	Integer NumOfAbnormalOthers
	// internal
	Boolean IsPhysical

class Fabric2Computer : Association [assocication]
	ref Fabric.ID FabricID FromID
	ref Computer.ID ComputerID ToID

class Fabric2Other : Association [assocication]
	ref Fabric.ID FabricID FromID
	ref Other.ID OtherID ToID

class Fabric2Subsystem : Association [assocication]
	ref Fabric.ID FabricID FromID
	ref Subsystem.ID SubsystemID ToID

class Fabric2Switch : Association [assocication]
	ref Fabric.ID FabricID FromID
	ref Switch.ID SwitchID ToID

class Fabric2TapeLibrary : Association [assocication]
	ref Fabric.ID FabricID FromID
	ref TapeLibrary.ID TapeLibraryID ToID

class Fabric2VirtualFabric : Association [assocication]
	ref Fabric.ID FabricID FromID
	ref Fabric.ID VirtualFabricID ToID

class FabricGroup : Entity
	Integer NumOfFabrics
	Integer NumOfAbnormalFabrics

class FabricGroup2Fabric : Association [assocication]
	ref FabricGroup.ID FabricGroupID FromID
	ref Fabric.ID FabricID ToID

class FabricSummary : Entity
	Integer NumOfFabrics
	Integer NumOfAbnormalFabrics
	Integer NumOfVirtualFabrics
	Integer NumOfAbnormalVirtualFabrics

class FCPort : Entity
	String Name
	String PortNumber
	String Type
	Long PortSpeed

class FCPort2FCPort : Association [assocication]
	ref FCPort.ID FCPort1ID FromID
	ref FCPort.ID FCPort2ID ToID

class FCPort2SubsystemFCPortPerf : Association [assocication]
	ref FCPort.ID FCPortID FromID
	ref SubsystemFCPortPerf.ID SubsystemFCPortPerfID ToID

class FCPort2SwitchFCPortPerf : Association [assocication]
	ref FCPort.ID FCPortID FromID
	ref SwitchFCPortPerf.ID SwitchFCPortPerfID ToID

class FCPortGroup : Entity
	Integer NumOfFCPortsInUse
	Integer NumOfAbnormalFCPortsInUse
	Integer NumOfFCPortsEmpty
	Integer NumOfAbnormalFCPortsEmpty
	Integer PerfStatus

class FCPortGroup2FCPort : Association [assocication]
	ref FCPortGroup.ID FCPortGroupID FromID
	ref FCPort.ID FCPortID ToID
	
class Filesystem : Entity
	Integer Type
	String MountPoint
	Long PhysicalSize
	Long Capacity

class Filesystem2LogicalVolume : Association [assocication]
	ref Filesystem.ID FilesystemID FromID
	ref LogicalVolume.ID LogicalVolumeID ToID

class Filesystem2Lun : Association [assocication]
	ref Filesystem.ID FilesystemID FromID
	ref Lun.ID LunID ToID

class FilesystemGroup : Entity
	Integer NumOfFilesystems
	Integer NumOfAbnormalFilesystems

class FilesystemGroup2Filesystem : Association [assocication]
	ref FilesystemGroup.ID FilesystemGroupID FromID
	ref Filesystem.ID FilesystemID ToID

class HBA : Entity
	String WWN
	String Vendor
	String Model
	String SerialNumber
	String FirmwareVersion
	String DriverName
	String DriverVersion
	String APIVersion
	Integer NumOfFCPortsInUse
	Integer NumOfAbnormalFCPortsInUse
	Integer NumOfFCPortsEmpty
	Integer NumOfAbnormalFCPortsEmpty

class HBA2FCPort : Association [assocication]
	ref HBA.ID HBAID FromID
	ref FCPort.ID FCPortID ToID

class LogicalVolume : Entity
	Integer Type
	Long Capacity
	Long FreeSpace

class LogicalVolume2Lun : Association [assocication]
	ref LogicalVolume.ID LogicalVolumeID FromID
	ref Lun.ID LunID ToID

class LogicalVolumeManager : Entity
	Integer Type
	Long Capacity
	Long FreeSpace
	Integer NumOfLogicalVolumes
	Integer NumOfAbnormalLogicalVolumes
	Integer NumOfLuns
	Integer NumOfAbnormalLuns

class LogicalVolumeManager2LogicalVolume : Association [assocication]
	ref LogicalVolumeManager.ID LogicalVolumeManagerID FromID
	ref LogicalVolume.ID LogicalVolumeID ToID

class LogicalVolumeManager2Lun : Association [assocication]
	ref LogicalVolumeManager.ID LogicalVolumeManagerID FromID
	ref Lun.ID LunID ToID

class Lun : Entity
	Long Capacity
	Long FreeSpace
	Integer SCSITargetID
	Integer LunID

class LunGroup : Entity
	Integer NumOfLuns
	Integer NumOfAbnormalLuns

class LunGroup2Lun : Association [assocication]
	ref LunGroup.ID LunGroupID FromID
	ref Lun.ID LunID ToID

class MediaChanger : Entity
	String FirmwareVersion

class MediaChanger2TapeDrive : Association [assocication]
	ref MediaChanger.ID MediaChangerID FromID
	ref TapeDrive.ID TapeDriveID ToID

class MediaChangerGroup : Entity
	Integer NumOfMediaChangers
	Integer NumOfAbnormalMediaChangers

class MediaChangerGroup2MediaChanger : Association [assocication]
	ref MediaChangerGroup.ID MediaChangerGroupID FromID
	ref MediaChanger.ID MediaChangerID ToID

class Other : Entity
	String WWN
	String Vendor
	String Model
	Integer Type
	String SerialNumber

class Other2FCPort : Association [assocication]
	ref Other.ID OtherID FromID
	ref FCPort.ID FCPortID ToID

class Other2Lun : Association [assocication]
	ref Other.ID OtherID FromID
	ref Lun.ID LunID ToID

class Other2Volume : Association [assocication]
	ref Other.ID OtherID FromID
	ref Volume.ID VolumeID ToID

class OtherGroup : Entity
	Integer NumOfOthers
	Integer NumOfAbnormalOthers

class OtherGroup2Other : Association [assocication]
	ref OtherGroup.ID OtherGroupID FromID
	ref Other.ID OtherID ToID

class OtherSummary : Entity
	Integer NumOfOthers
	Integer NumOfAbnormalOthers

class Pool : Entity
	Long TotalManagedSpace
	Long RemainingManagedSpace
	Boolean Primodial
	String RAIDLevel
	Integer NumOfVolumes
	Integer NumOfDisks

class Pool2Disk : Association [assocication]
	ref Pool.ID PoolID FromID
	ref Disk.ID DiskID ToID

class Pool2PoolPerf : Association [assocication]
	ref Pool.ID PoolID FromID
	ref PoolPerf.ID PoolPerfID ToID

class Pool2Volume : Association [assocication]
	ref Pool.ID PoolID FromID
	ref Volume.ID VolumeID ToID

class PoolGroup : Entity
	Integer NumOfPools
	Integer NumOfAbnormalPools

class PoolGroup2Pool : Association [assocication]
	ref PoolGroup.ID PoolGroupID FromID
	ref Pool.ID PoolID ToID

class PoolPerf : Entity

class StorageSummary : Entity
	Integer NumOfSubsystems
	Integer NumOfAbnormalSubsystems
	Integer NumOfTapeLibraries
	Integer NumOfAbnormalTapeLibraries

class Subsystem : Entity
	constant String MODEL_2105 = "ESS"
	constant String MODEL_2107 = "DS8000"
	constant String MODEL_1705 = "DS6000"
	
	String Vendor
	String Model
	String Type
	String SerialNumber
	Long AllocatedCapacity
	Long AvailableCapacity
	Long BackendStorageCapacity
	String CodeLevel
	Long Cache
	String IPAddress
	String DefaultElementManager
	String ElementManager
	// the following are internal used
	Boolean IsSVC

class SubsystemPerf : Entity
    Double IORateRx
    Double IORateTx
    Double DataRateRx
    Double DataRateTx
    Double ResponseTimeRx
    Double ResponseTimeTx
    Double CacheHitRx
    Double CacheHitTx
    Double NVSFullPercentage
    Integer CacheHoldingTime

class Subsystem2SubsystemPerf : Association [assocication]
	ref Subsystem.ID SubsystemID FromID
	ref SubsystemPerf.ID SubsystemPerfID ToID

class Subsystem2Disk : Association [assocication]
	ref Subsystem.ID SubsystemID FromID
	ref Disk.ID DiskID ToID

class Subsystem2FCPort : Association [assocication]
	ref Subsystem.ID SubsystemID FromID
	ref FCPort.ID FCPortID ToID

class Subsystem2Pool : Association [assocication]
	ref Subsystem.ID SubsystemID FromID
	ref Pool.ID PoolID ToID

class Subsystem2Volume : Association [assocication]
	ref Subsystem.ID SubsystemID FromID
	ref Volume.ID VolumeID ToID

class SubsystemFCPortPerf : Entity
	Double IORateRx
	Double IORateTx
	Double DataRateRx
	Double DataRateTx
    Double ResponseTimeRx
    Double ResponseTimeTx

class SubsystemGroup : Entity
	Integer NumOfSubsystems
	Integer NumOfAbnormalSubsystems

class SubsystemGroup2Subsystem : Association [assocication]
	ref SubsystemGroup.ID SubsystemGroupID FromID
	ref Subsystem.ID SubsystemID ToID

class SubviewComputerL1Connectivity : Entity
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SubviewComputerL1Device : Entity
	Integer NumOfVolumes
	Integer NumOfAbnormalVolumes

class SubviewComputerL2Connectivity : Entity
	Integer NumOfHBAs
	Integer NumOfAbnormalHBAs
	Integer NumOfFCPorts
	Integer NumOfAbnormalFCPorts
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SubviewComputerL2Device : Entity
	Integer NumOfLuns
	Integer NumOfAbnormalLuns
	Integer NumOfVolumes
	Integer NumOfAbnormalVolumes

class SubviewOtherL1Connectivity : Entity
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SubviewOtherL1Device : Entity
	Integer NumOfVolumes
	Integer NumOfAbnormalVolumes

class SubviewOtherL2Connectivity : Entity
	Integer NumOfFCPorts
	Integer NumOfAbnormalFCPorts
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SubviewOtherL2Device : Entity
	Integer NumOfLuns
	Integer NumOfAbnormalLuns
	Integer NumOfVolumes
	Integer NumOfAbnormalVolumes

class SubviewFabricL2Connectivity : Entity
	Integer NumOfComputers
	Integer NumOfAbnormalComputers
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches
	Integer NumOfSubsystems
	Integer NumOfAbnormalSubsystems
	Integer NumOfTapeLibraries
	Integer NumOfAbnormalTapeLibraries
	Integer NumOfOthers
	Integer NumOfAbnormalOthers

class SubviewSubsystemL1Connectivity : Entity
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SubviewSubsystemL2Connectivity : Entity
	Integer NumOfFCPorts
	Integer NumOfAbnormalFCPorts
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SubviewSubsystemL2Device : Entity
	Boolean IsSVC
	Integer NumOfExternalVolumes
	Integer NumOfAbnormalExternalVolumes
	Integer NumOfDisks
	Integer NumOfAbnormalDisks
	Integer NumOfPools
	Integer NumOfAbnormalPools
	Integer NumOfVolumes
	Integer NumOfAbnormalVolumes
	Integer NumOfExternalDisks
	Integer NumOfAbnormalExternalDisks
	Integer NumOfLuns
	Integer NumOfAbnormalLuns

class SubviewSwitchL1Connectivity : Entity
	Integer NumOfComputers
	Integer NumOfAbnormalComputers
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches
	Integer NumOfSubsystems
	Integer NumOfAbnormalSubsystems
	Integer NumOfTapeLibraries
	Integer NumOfAbnormalTapeLibraries
	Integer NumOfOthers
	Integer NumOfAbnormalOthers

class SubviewSwitchL2Connectivity : Entity
	Integer NumOfFCPorts
	Integer NumOfAbnormalFCPorts
	Integer NumOfComputers
	Integer NumOfAbnormalComputers
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches
	Integer NumOfSubsystems
	Integer NumOfAbnormalSubsystems
	Integer NumOfTapeLibraries
	Integer NumOfAbnormalTapeLibraries
	Integer NumOfOthers
	Integer NumOfAbnormalOthers

class SubviewTapeLibraryL1Connectivity : Entity
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SubviewTapeLibraryL2Connectivity : Entity
	Integer NumOfTapeDrives
	Integer NumOfAbnormalTapeDrives
	Integer NumOfFCPorts
	Integer NumOfAbnormalFCPorts
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SubviewTapeLibraryL2Device : Entity
	Integer NumOfMediaChangers
	Integer NumOfAbnormalMediaChangers

class Switch : Entity
	String WWN
	String LogicalName
	String Domain
	String IPAddress
	String Vendor
	String Model
	String SerialNumber
	String Version
	String Description
	String ParentWWN
	String DefaultElementManager
	String ElementManager

class Switch2Computer : Association [assocication]
	ref Switch.ID SwitchID FromID
	ref Computer.ID ComputerID ToID

class Switch2FCPort : Association [assocication]
	ref Switch.ID SwitchID FromID
	ref FCPort.ID FCPortID ToID

class Switch2Other : Association [assocication]
	ref Switch.ID SwitchID FromID
	ref Other.ID OtherID ToID

class Switch2Subsystem : Association [assocication]
	ref Switch.ID SwitchID FromID
	ref Subsystem.ID SubsystemID ToID

class Switch2Switch : Association [assocication]
	ref Switch.ID Switch1ID FromID
	ref Switch.ID Switch2ID ToID

class Switch2SwitchPerf : Association [assocication]
	ref Switch.ID SwitchID FromID
	ref SwitchPerf.ID SwitchPerfID ToID

class Switch2TapeLibrary : Association [assocication]
	ref Switch.ID SwitchID FromID
	ref TapeLibrary.ID TapeLibraryID ToID

class SwitchFCPortPerf : Entity
	Double PacketRateRx
	Double PacketRateTx
	Double DataRateRx
	Double DataRateTx
    Double ErrorFrameRate
    Double LinkFailureRate

class SwitchGroup : Entity
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class SwitchGroup2Switch : Association [assocication]
	ref SwitchGroup.ID SwitchGroupID FromID
	ref Switch.ID SwitchID ToID

class SwitchPerf : Entity

class SwitchSummary : Entity
	Integer NumOfSwitches
	Integer NumOfAbnormalSwitches

class TableSpace : Entity
	Integer DatabaseType
	Integer TableSpaceType
	Integer DataType
	Long Capacity
	Long FreeSpace

class TableSpace2Filesystem : Association [assocication]
	ref TableSpace.ID TableSpaceID FromID
	ref Filesystem.ID FilesystemID ToID

class TableSpace2LogicalVolume : Association [assocication]
	ref TableSpace.ID TableSpaceID FromID
	ref LogicalVolume.ID LogicalVolumeID ToID

class TableSpace2Lun : Association [assocication]
	ref TableSpace.ID TableSpaceID FromID
	ref Lun.ID LunID ToID

class TapeDrive : Entity
	Boolean NeedCleaning
	String FirmwareVersion
	String Location
	Long MountCount
	Integer NumOfFCPortsInUse
	Integer NumOfAbnormalFCPortsInUse
	Integer NumOfFCPortsEmpty
	Integer NumOfAbnormalFCPortsEmpty

class TapeDrive2FCPort : Association [assocication]
	ref TapeDrive.ID TapeDriveID FromID
	ref FCPort.ID FCPortID ToID

class TapeDriveGroup : Entity
	Integer NumOfTapeDrives
	Integer NumOfAbnormalTapeDrives
	Integer NumOfFCPorts
	Integer NumOfAbnormalFCPorts

class TapeDriveGroup2TapeDrive : Association [assocication]
	ref TapeDriveGroup.ID TapeDriveGroupID FromID
	ref TapeDrive.ID TapeDriveID ToID

class TapeLibrary : Entity
	String Vendor
	String Model
	String SerialNumber
	String FirmwareVersion
	Integer NumOfDrives
	Integer NumOfCartridges
	Integer MaxNumOfCartridges
	String DefaultElementManager
	String ElementManager

class TapeLibrary2FCPort : Association [assocication]
	ref TapeLibrary.ID TapeLibraryID FromID
	ref FCPort.ID FCPortID ToID

class TapeLibrary2TapeDrive : Association [assocication]
	ref TapeLibrary.ID TapeLibraryID FromID
	ref TapeDrive.ID TapeDriveID ToID

class TapeLibrary2MediaChanger : Association [assocication]
	ref TapeLibrary.ID TapeLibraryID FromID
	ref MediaChanger.ID MediaChangerID ToID

class TapeLibraryGroup : Entity
	Integer NumOfTapeLibraries
	Integer NumOfAbnormalTapeLibraries

class TapeLibraryGroup2TapeLibrary : Association [assocication]
	ref TapeLibraryGroup.ID TapeLibraryGroupID FromID
	ref TapeLibrary.ID TapeLibraryID ToID

class Volume : Entity
	constant Integer FORMAT_CKD_3380 = 0
	constant Integer FORMAT_FB = 1
	constant Integer FORMAT_CKD_3390 = 2
	constant Integer FLASHCOPYTYPE_NONE = 0
	constant Integer FLASHCOPYTYPE_SOURCE = 1
	constant Integer FLASHCOPYTYPE_TARGET = 2
	constant Integer FLASHCOPYTYPE_SOURCETARGET = 3
		
	Long Capacity
	Boolean IsAssigned
	Integer Format
	Integer FlashCopyType

class VolumePerf : Entity
    Double IORateRx
    Double IORateTx
    Double DataRateRx
    Double DataRateTx
    Double ResponseTimeRx
    Double ResponseTimeTx
	Double CacheHitRx
	Double CacheHitTx

class Volume2Disk : Association [assocication]
	ref Volume.ID VolumeID FromID
	ref Disk.ID DiskID ToID

class Volume2Lun : Association [assocication]
	ref Volume.ID VolumeID FromID
	ref Lun.ID LunID ToID

class Volume2Volume : Association [assocication]
	ref Volume.ID SourceID FromID
	ref Volume.ID TargetID ToID

class Volume2VolumePerf : Association [assocication]
	ref Volume.ID VolumeID FromID
	ref VolumePerf.ID VolumePerfID ToID

class VolumeGroup : Entity
	Integer NumOfVolumes
	Integer NumOfAbnormalVolumes
	Integer PerfStatus

class VolumeGroup2Volume : Association [assocication]
	ref VolumeGroup.ID VolumeGroupID FromID
	ref Volume.ID VolumeID ToID

class Zone : Entity
	String ZoneType
	Boolean Active
	String Description

class Zone2ZoneMember : Association [assocication]
	ref Zone.ID ZoneID FromID
	ref ZoneMember.ID ZoneMemberID ToID

class ZoneMember : Entity
	GraphFCPort.ID FCPortID
	String FCPortLabel
	String FCPortPortNumber
	GraphEntity.ID ParentID
	String ParentLabel

class ZoneFabric : Entity
	GraphFabric.ID FabricID

class ZoneFabric2ZoneSet : Association [assocication]
	ref ZoneFabric.ID ZoneFabricID FromID
	ref ZoneSet.ID ZoneSetID ToID

class ZoneFabric2Zone : Association [assocication]
	ref ZoneFabric.ID ZoneFabricID FromID
	ref Zone.ID ZoneID ToID
	
class ZoneSet : Entity
	Boolean Active
	String Description

class ZoneSet2Zone : Association [assocication]
	ref ZoneSet.ID ZoneSetID FromID
	ref Zone.ID ZoneID ToID
