github.com/emc-advanced-dev/unik@v0.0.0-20190717152701-a58d3e8e33b7/pkg/providers/vsphere/vsphereclient/types.go (about)

     1  package vsphereclient
     2  
     3  type VmInfo struct {
     4  	VirtualMachines []VirtualMachine `json:"VirtualMachines"`
     5  }
     6  
     7  type VirtualMachine struct {
     8  	Self struct {
     9  		Type  string `json:"Type"`
    10  		Value string `json:"Value"`
    11  	} `json:"Self"`
    12  	Value          interface{} `json:"Value"`
    13  	AvailableField interface{} `json:"AvailableField"`
    14  	Parent         struct {
    15  		Type  string `json:"Type"`
    16  		Value string `json:"Value"`
    17  	} `json:"Parent"`
    18  	CustomValue         interface{} `json:"CustomValue"`
    19  	OverallStatus       string      `json:"OverallStatus"`
    20  	ConfigStatus        string      `json:"ConfigStatus"`
    21  	ConfigIssue         interface{} `json:"ConfigIssue"`
    22  	EffectiveRole       []int       `json:"EffectiveRole"`
    23  	Permission          interface{} `json:"Permission"`
    24  	Name                string      `json:"Name"`
    25  	DisabledMethod      []string    `json:"DisabledMethod"`
    26  	RecentTask          interface{} `json:"RecentTask"`
    27  	DeclaredAlarmState  interface{} `json:"DeclaredAlarmState"`
    28  	TriggeredAlarmState interface{} `json:"TriggeredAlarmState"`
    29  	AlarmActionsEnabled interface{} `json:"AlarmActionsEnabled"`
    30  	Tag                 interface{} `json:"Tag"`
    31  	Capability          struct {
    32  		SnapshotOperationsSupported         bool `json:"SnapshotOperationsSupported"`
    33  		MultipleSnapshotsSupported          bool `json:"MultipleSnapshotsSupported"`
    34  		SnapshotConfigSupported             bool `json:"SnapshotConfigSupported"`
    35  		PoweredOffSnapshotsSupported        bool `json:"PoweredOffSnapshotsSupported"`
    36  		MemorySnapshotsSupported            bool `json:"MemorySnapshotsSupported"`
    37  		RevertToSnapshotSupported           bool `json:"RevertToSnapshotSupported"`
    38  		QuiescedSnapshotsSupported          bool `json:"QuiescedSnapshotsSupported"`
    39  		DisableSnapshotsSupported           bool `json:"DisableSnapshotsSupported"`
    40  		LockSnapshotsSupported              bool `json:"LockSnapshotsSupported"`
    41  		ConsolePreferencesSupported         bool `json:"ConsolePreferencesSupported"`
    42  		CPUFeatureMaskSupported             bool `json:"CpuFeatureMaskSupported"`
    43  		S1AcpiManagementSupported           bool `json:"S1AcpiManagementSupported"`
    44  		SettingScreenResolutionSupported    bool `json:"SettingScreenResolutionSupported"`
    45  		ToolsAutoUpdateSupported            bool `json:"ToolsAutoUpdateSupported"`
    46  		VMNpivWwnSupported                  bool `json:"VmNpivWwnSupported"`
    47  		NpivWwnOnNonRdmVMSupported          bool `json:"NpivWwnOnNonRdmVmSupported"`
    48  		VMNpivWwnDisableSupported           bool `json:"VmNpivWwnDisableSupported"`
    49  		VMNpivWwnUpdateSupported            bool `json:"VmNpivWwnUpdateSupported"`
    50  		SwapPlacementSupported              bool `json:"SwapPlacementSupported"`
    51  		ToolsSyncTimeSupported              bool `json:"ToolsSyncTimeSupported"`
    52  		VirtualMmuUsageSupported            bool `json:"VirtualMmuUsageSupported"`
    53  		DiskSharesSupported                 bool `json:"DiskSharesSupported"`
    54  		BootOptionsSupported                bool `json:"BootOptionsSupported"`
    55  		BootRetryOptionsSupported           bool `json:"BootRetryOptionsSupported"`
    56  		SettingVideoRAMSizeSupported        bool `json:"SettingVideoRamSizeSupported"`
    57  		SettingDisplayTopologySupported     bool `json:"SettingDisplayTopologySupported"`
    58  		RecordReplaySupported               bool `json:"RecordReplaySupported"`
    59  		ChangeTrackingSupported             bool `json:"ChangeTrackingSupported"`
    60  		MultipleCoresPerSocketSupported     bool `json:"MultipleCoresPerSocketSupported"`
    61  		HostBasedReplicationSupported       bool `json:"HostBasedReplicationSupported"`
    62  		GuestAutoLockSupported              bool `json:"GuestAutoLockSupported"`
    63  		MemoryReservationLockSupported      bool `json:"MemoryReservationLockSupported"`
    64  		FeatureRequirementSupported         bool `json:"FeatureRequirementSupported"`
    65  		PoweredOnMonitorTypeChangeSupported bool `json:"PoweredOnMonitorTypeChangeSupported"`
    66  		SeSparseDiskSupported               bool `json:"SeSparseDiskSupported"`
    67  		NestedHVSupported                   bool `json:"NestedHVSupported"`
    68  		VPMCSupported                       bool `json:"VPMCSupported"`
    69  	} `json:"Capability"`
    70  	Config struct {
    71  		Name                  string      `json:"Name"`
    72  		GuestFullName         string      `json:"GuestFullName"`
    73  		Version               string      `json:"Version"`
    74  		UUID                  string      `json:"Uuid"`
    75  		InstanceUUID          string      `json:"InstanceUuid"`
    76  		NpivNodeWorldWideName interface{} `json:"NpivNodeWorldWideName"`
    77  		NpivPortWorldWideName interface{} `json:"NpivPortWorldWideName"`
    78  		NpivWorldWideNameType string      `json:"NpivWorldWideNameType"`
    79  		NpivDesiredNodeWwns   int         `json:"NpivDesiredNodeWwns"`
    80  		NpivDesiredPortWwns   int         `json:"NpivDesiredPortWwns"`
    81  		NpivTemporaryDisabled bool        `json:"NpivTemporaryDisabled"`
    82  		NpivOnNonRdmDisks     interface{} `json:"NpivOnNonRdmDisks"`
    83  		LocationID            string      `json:"LocationId"`
    84  		Template              bool        `json:"Template"`
    85  		GuestID               string      `json:"GuestId"`
    86  		AlternateGuestName    string      `json:"AlternateGuestName"`
    87  		Annotation            string      `json:"Annotation"`
    88  		Files                 struct {
    89  			VMPathName          string `json:"VmPathName"`
    90  			SnapshotDirectory   string `json:"SnapshotDirectory"`
    91  			SuspendDirectory    string `json:"SuspendDirectory"`
    92  			LogDirectory        string `json:"LogDirectory"`
    93  			FtMetadataDirectory string `json:"FtMetadataDirectory"`
    94  		} `json:"Files"`
    95  		Tools struct {
    96  			ToolsVersion         int         `json:"ToolsVersion"`
    97  			AfterPowerOn         bool        `json:"AfterPowerOn"`
    98  			AfterResume          bool        `json:"AfterResume"`
    99  			BeforeGuestStandby   bool        `json:"BeforeGuestStandby"`
   100  			BeforeGuestShutdown  bool        `json:"BeforeGuestShutdown"`
   101  			BeforeGuestReboot    interface{} `json:"BeforeGuestReboot"`
   102  			ToolsUpgradePolicy   string      `json:"ToolsUpgradePolicy"`
   103  			PendingCustomization string      `json:"PendingCustomization"`
   104  			SyncTimeWithHost     bool        `json:"SyncTimeWithHost"`
   105  			LastInstallInfo      struct {
   106  				Counter int         `json:"Counter"`
   107  				Fault   interface{} `json:"Fault"`
   108  			} `json:"LastInstallInfo"`
   109  		} `json:"Tools"`
   110  		Flags struct {
   111  			DisableAcceleration      bool   `json:"DisableAcceleration"`
   112  			EnableLogging            bool   `json:"EnableLogging"`
   113  			UseToe                   bool   `json:"UseToe"`
   114  			RunWithDebugInfo         bool   `json:"RunWithDebugInfo"`
   115  			MonitorType              string `json:"MonitorType"`
   116  			HtSharing                string `json:"HtSharing"`
   117  			SnapshotDisabled         bool   `json:"SnapshotDisabled"`
   118  			SnapshotLocked           bool   `json:"SnapshotLocked"`
   119  			DiskUUIDEnabled          bool   `json:"DiskUuidEnabled"`
   120  			VirtualMmuUsage          string `json:"VirtualMmuUsage"`
   121  			VirtualExecUsage         string `json:"VirtualExecUsage"`
   122  			SnapshotPowerOffBehavior string `json:"SnapshotPowerOffBehavior"`
   123  			RecordReplayEnabled      bool   `json:"RecordReplayEnabled"`
   124  			FaultToleranceType       string `json:"FaultToleranceType"`
   125  		} `json:"Flags"`
   126  		ConsolePreferences interface{} `json:"ConsolePreferences"`
   127  		DefaultPowerOps    struct {
   128  			PowerOffType        string `json:"PowerOffType"`
   129  			SuspendType         string `json:"SuspendType"`
   130  			ResetType           string `json:"ResetType"`
   131  			DefaultPowerOffType string `json:"DefaultPowerOffType"`
   132  			DefaultSuspendType  string `json:"DefaultSuspendType"`
   133  			DefaultResetType    string `json:"DefaultResetType"`
   134  			StandbyAction       string `json:"StandbyAction"`
   135  		} `json:"DefaultPowerOps"`
   136  		Hardware struct {
   137  			NumCPU              int  `json:"NumCPU"`
   138  			NumCoresPerSocket   int  `json:"NumCoresPerSocket"`
   139  			MemoryMB            int  `json:"MemoryMB"`
   140  			VirtualICH7MPresent bool `json:"VirtualICH7MPresent"`
   141  			VirtualSMCPresent   bool `json:"VirtualSMCPresent"`
   142  			Device              []struct {
   143  				Key        int `json:"Key"`
   144  				DeviceInfo struct {
   145  					Label   string `json:"Label"`
   146  					Summary string `json:"Summary"`
   147  				} `json:"DeviceInfo"`
   148  				Backing                        interface{} `json:"Backing"`
   149  				Connectable                    interface{} `json:"Connectable"`
   150  				SlotInfo                       interface{} `json:"SlotInfo"`
   151  				ControllerKey                  int         `json:"ControllerKey"`
   152  				UnitNumber                     interface{} `json:"UnitNumber"`
   153  				BusNumber                      int         `json:"BusNumber,omitempty"`
   154  				Device                         interface{} `json:"Device,omitempty"`
   155  				VideoRAMSizeInKB               int         `json:"VideoRamSizeInKB,omitempty"`
   156  				NumDisplays                    int         `json:"NumDisplays,omitempty"`
   157  				UseAutoDetect                  bool        `json:"UseAutoDetect,omitempty"`
   158  				Enable3DSupport                bool        `json:"Enable3DSupport,omitempty"`
   159  				Use3DRenderer                  string      `json:"Use3dRenderer,omitempty"`
   160  				GraphicsMemorySizeInKB         int         `json:"GraphicsMemorySizeInKB,omitempty"`
   161  				ID                             int         `json:"Id,omitempty"`
   162  				AllowUnrestrictedCommunication bool        `json:"AllowUnrestrictedCommunication,omitempty"`
   163  				FilterEnable                   bool        `json:"FilterEnable,omitempty"`
   164  				FilterInfo                     interface{} `json:"FilterInfo,omitempty"`
   165  				HotAddRemove                   bool        `json:"HotAddRemove,omitempty"`
   166  				SharedBus                      string      `json:"SharedBus,omitempty"`
   167  				ScsiCtlrUnitNumber             int         `json:"ScsiCtlrUnitNumber,omitempty"`
   168  				CapacityInKB                   int         `json:"CapacityInKB,omitempty"`
   169  				CapacityInBytes                int64       `json:"CapacityInBytes,omitempty"`
   170  				Shares                         struct {
   171  					Shares int    `json:"Shares"`
   172  					Level  string `json:"Level"`
   173  				} `json:"Shares,omitempty"`
   174  				StorageIOAllocation struct {
   175  					Limit  int `json:"Limit"`
   176  					Shares struct {
   177  						Shares int    `json:"Shares"`
   178  						Level  string `json:"Level"`
   179  					} `json:"Shares"`
   180  					Reservation int `json:"Reservation"`
   181  				} `json:"StorageIOAllocation,omitempty"`
   182  				DiskObjectID          string      `json:"DiskObjectId,omitempty"`
   183  				VFlashCacheConfigInfo interface{} `json:"VFlashCacheConfigInfo,omitempty"`
   184  				Iofilter              interface{} `json:"Iofilter,omitempty"`
   185  				AddressType           string      `json:"AddressType,omitempty"`
   186  				MacAddress            string      `json:"MacAddress,omitempty"`
   187  				WakeOnLanEnabled      bool        `json:"WakeOnLanEnabled,omitempty"`
   188  				ResourceAllocation    struct {
   189  					Reservation int `json:"Reservation"`
   190  					Share       struct {
   191  						Shares int    `json:"Shares"`
   192  						Level  string `json:"Level"`
   193  					} `json:"Share"`
   194  					Limit int `json:"Limit"`
   195  				} `json:"ResourceAllocation,omitempty"`
   196  				ExternalID              string `json:"ExternalId,omitempty"`
   197  				UptCompatibilityEnabled bool   `json:"UptCompatibilityEnabled,omitempty"`
   198  			} `json:"Device"`
   199  		} `json:"Hardware"`
   200  		CPUAllocation struct {
   201  			Reservation           int  `json:"Reservation"`
   202  			ExpandableReservation bool `json:"ExpandableReservation"`
   203  			Limit                 int  `json:"Limit"`
   204  			Shares                struct {
   205  				Shares int    `json:"Shares"`
   206  				Level  string `json:"Level"`
   207  			} `json:"Shares"`
   208  			OverheadLimit int `json:"OverheadLimit"`
   209  		} `json:"CpuAllocation"`
   210  		MemoryAllocation struct {
   211  			Reservation           int  `json:"Reservation"`
   212  			ExpandableReservation bool `json:"ExpandableReservation"`
   213  			Limit                 int  `json:"Limit"`
   214  			Shares                struct {
   215  				Shares int    `json:"Shares"`
   216  				Level  string `json:"Level"`
   217  			} `json:"Shares"`
   218  			OverheadLimit int `json:"OverheadLimit"`
   219  		} `json:"MemoryAllocation"`
   220  		LatencySensitivity struct {
   221  			Level       string `json:"Level"`
   222  			Sensitivity int    `json:"Sensitivity"`
   223  		} `json:"LatencySensitivity"`
   224  		MemoryHotAddEnabled        bool        `json:"MemoryHotAddEnabled"`
   225  		CPUHotAddEnabled           bool        `json:"CpuHotAddEnabled"`
   226  		CPUHotRemoveEnabled        bool        `json:"CpuHotRemoveEnabled"`
   227  		HotPlugMemoryLimit         int         `json:"HotPlugMemoryLimit"`
   228  		HotPlugMemoryIncrementSize int         `json:"HotPlugMemoryIncrementSize"`
   229  		CPUAffinity                interface{} `json:"CpuAffinity"`
   230  		MemoryAffinity             interface{} `json:"MemoryAffinity"`
   231  		NetworkShaper              interface{} `json:"NetworkShaper"`
   232  		ExtraConfig                []struct {
   233  			Key   string `json:"Key"`
   234  			Value string `json:"Value"`
   235  		} `json:"ExtraConfig"`
   236  		CPUFeatureMask []struct {
   237  			Level  int    `json:"Level"`
   238  			Vendor string `json:"Vendor"`
   239  			Eax    string `json:"Eax"`
   240  			Ebx    string `json:"Ebx"`
   241  			Ecx    string `json:"Ecx"`
   242  			Edx    string `json:"Edx"`
   243  		} `json:"CpuFeatureMask"`
   244  		DatastoreURL []struct {
   245  			Name string `json:"Name"`
   246  			URL  string `json:"Url"`
   247  		} `json:"DatastoreUrl"`
   248  		SwapPlacement string `json:"SwapPlacement"`
   249  		BootOptions   struct {
   250  			BootDelay           int         `json:"BootDelay"`
   251  			EnterBIOSSetup      bool        `json:"EnterBIOSSetup"`
   252  			BootRetryEnabled    bool        `json:"BootRetryEnabled"`
   253  			BootRetryDelay      int         `json:"BootRetryDelay"`
   254  			BootOrder           interface{} `json:"BootOrder"`
   255  			NetworkBootProtocol string      `json:"NetworkBootProtocol"`
   256  		} `json:"BootOptions"`
   257  		FtInfo                       interface{} `json:"FtInfo"`
   258  		RepConfig                    interface{} `json:"RepConfig"`
   259  		VAppConfig                   interface{} `json:"VAppConfig"`
   260  		VAssertsEnabled              bool        `json:"VAssertsEnabled"`
   261  		ChangeTrackingEnabled        bool        `json:"ChangeTrackingEnabled"`
   262  		Firmware                     string      `json:"Firmware"`
   263  		MaxMksConnections            int         `json:"MaxMksConnections"`
   264  		GuestAutoLockEnabled         bool        `json:"GuestAutoLockEnabled"`
   265  		ManagedBy                    interface{} `json:"ManagedBy"`
   266  		MemoryReservationLockedToMax bool        `json:"MemoryReservationLockedToMax"`
   267  		InitialOverhead              struct {
   268  			InitialMemoryReservation int `json:"InitialMemoryReservation"`
   269  			InitialSwapReservation   int `json:"InitialSwapReservation"`
   270  		} `json:"InitialOverhead"`
   271  		NestedHVEnabled              bool `json:"NestedHVEnabled"`
   272  		VPMCEnabled                  bool `json:"VPMCEnabled"`
   273  		ScheduledHardwareUpgradeInfo struct {
   274  			UpgradePolicy                  string      `json:"UpgradePolicy"`
   275  			VersionKey                     string      `json:"VersionKey"`
   276  			ScheduledHardwareUpgradeStatus string      `json:"ScheduledHardwareUpgradeStatus"`
   277  			Fault                          interface{} `json:"Fault"`
   278  		} `json:"ScheduledHardwareUpgradeInfo"`
   279  		ForkConfigInfo struct {
   280  			ParentEnabled    bool   `json:"ParentEnabled"`
   281  			ChildForkGroupID string `json:"ChildForkGroupId"`
   282  			ChildType        string `json:"ChildType"`
   283  		} `json:"ForkConfigInfo"`
   284  		VFlashCacheReservation  int    `json:"VFlashCacheReservation"`
   285  		VmxConfigChecksum       string `json:"VmxConfigChecksum"`
   286  		MessageBusTunnelEnabled bool   `json:"MessageBusTunnelEnabled"`
   287  		VMStorageObjectID       string `json:"VmStorageObjectId"`
   288  		SwapStorageObjectID     string `json:"SwapStorageObjectId"`
   289  	} `json:"Config"`
   290  	Layout struct {
   291  		ConfigFile []string `json:"ConfigFile"`
   292  		LogFile    []string `json:"LogFile"`
   293  		Disk       []struct {
   294  			Key      int      `json:"Key"`
   295  			DiskFile []string `json:"DiskFile"`
   296  		} `json:"Disk"`
   297  		Snapshot interface{} `json:"Snapshot"`
   298  		SwapFile string      `json:"SwapFile"`
   299  	} `json:"Layout"`
   300  	LayoutEx struct {
   301  		File []struct {
   302  			Key             int    `json:"Key"`
   303  			Name            string `json:"Name"`
   304  			Type            string `json:"Type"`
   305  			Size            int    `json:"Size"`
   306  			UniqueSize      int    `json:"UniqueSize"`
   307  			BackingObjectID string `json:"BackingObjectId"`
   308  			Accessible      bool   `json:"Accessible"`
   309  		} `json:"File"`
   310  		Disk []struct {
   311  			Key   int `json:"Key"`
   312  			Chain []struct {
   313  				FileKey []int `json:"FileKey"`
   314  			} `json:"Chain"`
   315  		} `json:"Disk"`
   316  		Snapshot interface{} `json:"Snapshot"`
   317  	} `json:"LayoutEx"`
   318  	Storage struct {
   319  		PerDatastoreUsage []struct {
   320  			Datastore struct {
   321  				Type  string `json:"Type"`
   322  				Value string `json:"Value"`
   323  			} `json:"Datastore"`
   324  			Committed   int   `json:"Committed"`
   325  			Uncommitted int64 `json:"Uncommitted"`
   326  			Unshared    int   `json:"Unshared"`
   327  		} `json:"PerDatastoreUsage"`
   328  	} `json:"Storage"`
   329  	EnvironmentBrowser struct {
   330  		Type  string `json:"Type"`
   331  		Value string `json:"Value"`
   332  	} `json:"EnvironmentBrowser"`
   333  	ResourcePool struct {
   334  		Type  string `json:"Type"`
   335  		Value string `json:"Value"`
   336  	} `json:"ResourcePool"`
   337  	ParentVApp     interface{} `json:"ParentVApp"`
   338  	ResourceConfig struct {
   339  		Entity struct {
   340  			Type  string `json:"Type"`
   341  			Value string `json:"Value"`
   342  		} `json:"Entity"`
   343  		ChangeVersion string      `json:"ChangeVersion"`
   344  		LastModified  interface{} `json:"LastModified"`
   345  		CPUAllocation struct {
   346  			Reservation           int  `json:"Reservation"`
   347  			ExpandableReservation bool `json:"ExpandableReservation"`
   348  			Limit                 int  `json:"Limit"`
   349  			Shares                struct {
   350  				Shares int    `json:"Shares"`
   351  				Level  string `json:"Level"`
   352  			} `json:"Shares"`
   353  			OverheadLimit int `json:"OverheadLimit"`
   354  		} `json:"CpuAllocation"`
   355  		MemoryAllocation struct {
   356  			Reservation           int  `json:"Reservation"`
   357  			ExpandableReservation bool `json:"ExpandableReservation"`
   358  			Limit                 int  `json:"Limit"`
   359  			Shares                struct {
   360  				Shares int    `json:"Shares"`
   361  				Level  string `json:"Level"`
   362  			} `json:"Shares"`
   363  			OverheadLimit int `json:"OverheadLimit"`
   364  		} `json:"MemoryAllocation"`
   365  	} `json:"ResourceConfig"`
   366  	Runtime struct {
   367  		Device []struct {
   368  			RuntimeState struct {
   369  				VMDirectPathGen2Active                 bool     `json:"VmDirectPathGen2Active"`
   370  				VMDirectPathGen2InactiveReasonVM       []string `json:"VmDirectPathGen2InactiveReasonVm"`
   371  				VMDirectPathGen2InactiveReasonOther    []string `json:"VmDirectPathGen2InactiveReasonOther"`
   372  				VMDirectPathGen2InactiveReasonExtended string   `json:"VmDirectPathGen2InactiveReasonExtended"`
   373  				ReservationStatus                      string   `json:"ReservationStatus"`
   374  			} `json:"RuntimeState"`
   375  			Key int `json:"Key"`
   376  		} `json:"Device"`
   377  		Host struct {
   378  			Type  string `json:"Type"`
   379  			Value string `json:"Value"`
   380  		} `json:"Host"`
   381  		ConnectionState           string      `json:"ConnectionState"`
   382  		PowerState                string      `json:"PowerState"`
   383  		FaultToleranceState       string      `json:"FaultToleranceState"`
   384  		DasVMProtection           interface{} `json:"DasVmProtection"`
   385  		ToolsInstallerMounted     bool        `json:"ToolsInstallerMounted"`
   386  		SuspendTime               interface{} `json:"SuspendTime"`
   387  		BootTime                  interface{} `json:"BootTime"`
   388  		SuspendInterval           int         `json:"SuspendInterval"`
   389  		Question                  interface{} `json:"Question"`
   390  		MemoryOverhead            int         `json:"MemoryOverhead"`
   391  		MaxCPUUsage               int         `json:"MaxCpuUsage"`
   392  		MaxMemoryUsage            int         `json:"MaxMemoryUsage"`
   393  		NumMksConnections         int         `json:"NumMksConnections"`
   394  		RecordReplayState         string      `json:"RecordReplayState"`
   395  		CleanPowerOff             bool        `json:"CleanPowerOff"`
   396  		NeedSecondaryReason       string      `json:"NeedSecondaryReason"`
   397  		OnlineStandby             bool        `json:"OnlineStandby"`
   398  		MinRequiredEVCModeKey     string      `json:"MinRequiredEVCModeKey"`
   399  		ConsolidationNeeded       bool        `json:"ConsolidationNeeded"`
   400  		OfflineFeatureRequirement interface{} `json:"OfflineFeatureRequirement"`
   401  		FeatureRequirement        interface{} `json:"FeatureRequirement"`
   402  		FeatureMask               interface{} `json:"FeatureMask"`
   403  		VFlashCacheAllocation     int         `json:"VFlashCacheAllocation"`
   404  		Paused                    bool        `json:"Paused"`
   405  		SnapshotInBackground      bool        `json:"SnapshotInBackground"`
   406  		QuiescedForkParent        interface{} `json:"QuiescedForkParent"`
   407  	} `json:"Runtime"`
   408  	Guest struct {
   409  		ToolsStatus         string      `json:"ToolsStatus"`
   410  		ToolsVersionStatus  string      `json:"ToolsVersionStatus"`
   411  		ToolsVersionStatus2 string      `json:"ToolsVersionStatus2"`
   412  		ToolsRunningStatus  string      `json:"ToolsRunningStatus"`
   413  		ToolsVersion        string      `json:"ToolsVersion"`
   414  		GuestID             string      `json:"GuestId"`
   415  		GuestFamily         string      `json:"GuestFamily"`
   416  		GuestFullName       string      `json:"GuestFullName"`
   417  		HostName            string      `json:"HostName"`
   418  		IPAddress           string      `json:"IpAddress"`
   419  		Net                 interface{} `json:"Net"`
   420  		IPStack             interface{} `json:"IpStack"`
   421  		Disk                interface{} `json:"Disk"`
   422  		Screen              struct {
   423  			Width  int `json:"Width"`
   424  			Height int `json:"Height"`
   425  		} `json:"Screen"`
   426  		GuestState                      string      `json:"GuestState"`
   427  		AppHeartbeatStatus              string      `json:"AppHeartbeatStatus"`
   428  		GuestKernelCrashed              interface{} `json:"GuestKernelCrashed"`
   429  		AppState                        string      `json:"AppState"`
   430  		GuestOperationsReady            bool        `json:"GuestOperationsReady"`
   431  		InteractiveGuestOperationsReady bool        `json:"InteractiveGuestOperationsReady"`
   432  		GuestStateChangeSupported       bool        `json:"GuestStateChangeSupported"`
   433  		GenerationInfo                  interface{} `json:"GenerationInfo"`
   434  	} `json:"Guest"`
   435  	Summary struct {
   436  		VM struct {
   437  			Type  string `json:"Type"`
   438  			Value string `json:"Value"`
   439  		} `json:"Vm"`
   440  		Runtime struct {
   441  			Device []struct {
   442  				RuntimeState struct {
   443  					VMDirectPathGen2Active                 bool     `json:"VmDirectPathGen2Active"`
   444  					VMDirectPathGen2InactiveReasonVM       []string `json:"VmDirectPathGen2InactiveReasonVm"`
   445  					VMDirectPathGen2InactiveReasonOther    []string `json:"VmDirectPathGen2InactiveReasonOther"`
   446  					VMDirectPathGen2InactiveReasonExtended string   `json:"VmDirectPathGen2InactiveReasonExtended"`
   447  					ReservationStatus                      string   `json:"ReservationStatus"`
   448  				} `json:"RuntimeState"`
   449  				Key int `json:"Key"`
   450  			} `json:"Device"`
   451  			Host struct {
   452  				Type  string `json:"Type"`
   453  				Value string `json:"Value"`
   454  			} `json:"Host"`
   455  			ConnectionState           string      `json:"ConnectionState"`
   456  			PowerState                string      `json:"PowerState"`
   457  			FaultToleranceState       string      `json:"FaultToleranceState"`
   458  			DasVMProtection           interface{} `json:"DasVmProtection"`
   459  			ToolsInstallerMounted     bool        `json:"ToolsInstallerMounted"`
   460  			SuspendTime               interface{} `json:"SuspendTime"`
   461  			BootTime                  interface{} `json:"BootTime"`
   462  			SuspendInterval           int         `json:"SuspendInterval"`
   463  			Question                  interface{} `json:"Question"`
   464  			MemoryOverhead            int         `json:"MemoryOverhead"`
   465  			MaxCPUUsage               int         `json:"MaxCpuUsage"`
   466  			MaxMemoryUsage            int         `json:"MaxMemoryUsage"`
   467  			NumMksConnections         int         `json:"NumMksConnections"`
   468  			RecordReplayState         string      `json:"RecordReplayState"`
   469  			CleanPowerOff             bool        `json:"CleanPowerOff"`
   470  			NeedSecondaryReason       string      `json:"NeedSecondaryReason"`
   471  			OnlineStandby             bool        `json:"OnlineStandby"`
   472  			MinRequiredEVCModeKey     string      `json:"MinRequiredEVCModeKey"`
   473  			ConsolidationNeeded       bool        `json:"ConsolidationNeeded"`
   474  			OfflineFeatureRequirement interface{} `json:"OfflineFeatureRequirement"`
   475  			FeatureRequirement        interface{} `json:"FeatureRequirement"`
   476  			FeatureMask               interface{} `json:"FeatureMask"`
   477  			VFlashCacheAllocation     int         `json:"VFlashCacheAllocation"`
   478  			Paused                    bool        `json:"Paused"`
   479  			SnapshotInBackground      bool        `json:"SnapshotInBackground"`
   480  			QuiescedForkParent        interface{} `json:"QuiescedForkParent"`
   481  		} `json:"Runtime"`
   482  		Guest struct {
   483  			GuestID             string `json:"GuestId"`
   484  			GuestFullName       string `json:"GuestFullName"`
   485  			ToolsStatus         string `json:"ToolsStatus"`
   486  			ToolsVersionStatus  string `json:"ToolsVersionStatus"`
   487  			ToolsVersionStatus2 string `json:"ToolsVersionStatus2"`
   488  			ToolsRunningStatus  string `json:"ToolsRunningStatus"`
   489  			HostName            string `json:"HostName"`
   490  			IPAddress           string `json:"IpAddress"`
   491  		} `json:"Guest"`
   492  		Config struct {
   493  			Name                string      `json:"Name"`
   494  			Template            bool        `json:"Template"`
   495  			VMPathName          string      `json:"VmPathName"`
   496  			MemorySizeMB        int         `json:"MemorySizeMB"`
   497  			CPUReservation      int         `json:"CpuReservation"`
   498  			MemoryReservation   int         `json:"MemoryReservation"`
   499  			NumCPU              int         `json:"NumCpu"`
   500  			NumEthernetCards    int         `json:"NumEthernetCards"`
   501  			NumVirtualDisks     int         `json:"NumVirtualDisks"`
   502  			UUID                string      `json:"Uuid"`
   503  			InstanceUUID        string      `json:"InstanceUuid"`
   504  			GuestID             string      `json:"GuestId"`
   505  			GuestFullName       string      `json:"GuestFullName"`
   506  			Annotation          string      `json:"Annotation"`
   507  			Product             interface{} `json:"Product"`
   508  			InstallBootRequired interface{} `json:"InstallBootRequired"`
   509  			FtInfo              interface{} `json:"FtInfo"`
   510  			ManagedBy           interface{} `json:"ManagedBy"`
   511  		} `json:"Config"`
   512  		Storage struct {
   513  			Committed   int   `json:"Committed"`
   514  			Uncommitted int64 `json:"Uncommitted"`
   515  			Unshared    int   `json:"Unshared"`
   516  		} `json:"Storage"`
   517  		QuickStats struct {
   518  			OverallCPUUsage              int    `json:"OverallCpuUsage"`
   519  			OverallCPUDemand             int    `json:"OverallCpuDemand"`
   520  			GuestMemoryUsage             int    `json:"GuestMemoryUsage"`
   521  			HostMemoryUsage              int    `json:"HostMemoryUsage"`
   522  			GuestHeartbeatStatus         string `json:"GuestHeartbeatStatus"`
   523  			DistributedCPUEntitlement    int    `json:"DistributedCpuEntitlement"`
   524  			DistributedMemoryEntitlement int    `json:"DistributedMemoryEntitlement"`
   525  			StaticCPUEntitlement         int    `json:"StaticCpuEntitlement"`
   526  			StaticMemoryEntitlement      int    `json:"StaticMemoryEntitlement"`
   527  			PrivateMemory                int    `json:"PrivateMemory"`
   528  			SharedMemory                 int    `json:"SharedMemory"`
   529  			SwappedMemory                int    `json:"SwappedMemory"`
   530  			BalloonedMemory              int    `json:"BalloonedMemory"`
   531  			ConsumedOverheadMemory       int    `json:"ConsumedOverheadMemory"`
   532  			FtLogBandwidth               int    `json:"FtLogBandwidth"`
   533  			FtSecondaryLatency           int    `json:"FtSecondaryLatency"`
   534  			FtLatencyStatus              string `json:"FtLatencyStatus"`
   535  			CompressedMemory             int    `json:"CompressedMemory"`
   536  			UptimeSeconds                int    `json:"UptimeSeconds"`
   537  			SsdSwappedMemory             int    `json:"SsdSwappedMemory"`
   538  		} `json:"QuickStats"`
   539  		OverallStatus string      `json:"OverallStatus"`
   540  		CustomValue   interface{} `json:"CustomValue"`
   541  	} `json:"Summary"`
   542  	Datastore []struct {
   543  		Type  string `json:"Type"`
   544  		Value string `json:"Value"`
   545  	} `json:"Datastore"`
   546  	Network []struct {
   547  		Type  string `json:"Type"`
   548  		Value string `json:"Value"`
   549  	} `json:"Network"`
   550  	Snapshot             interface{} `json:"Snapshot"`
   551  	RootSnapshot         interface{} `json:"RootSnapshot"`
   552  	GuestHeartbeatStatus string      `json:"GuestHeartbeatStatus"`
   553  }