github.com/vmware/govmomi@v0.51.0/eam/types/enum.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package types 6 7 import ( 8 "reflect" 9 10 "github.com/vmware/govmomi/vim25/types" 11 ) 12 13 // Deprecated as of vSphere 9.0. Please refer to vLCM System VMs APIs. 14 // 15 // Defines if the deployed VMs needs to run on different hosts. 16 type AgencyVMPlacementPolicyVMAntiAffinity string 17 18 const ( 19 // Denotes no specific VM anti-affinity policy. 20 AgencyVMPlacementPolicyVMAntiAffinityNone = AgencyVMPlacementPolicyVMAntiAffinity("none") 21 // Best effort is made the VMs to run on different hosts as long as 22 // this does not impact the ability of the host to satisfy current CPU 23 // or memory requirements for virtual machines on the system. 24 // 25 // NOTE: Currently not supported - i.e. the agency configuration is 26 // considered as invalid. 27 AgencyVMPlacementPolicyVMAntiAffinitySoft = AgencyVMPlacementPolicyVMAntiAffinity("soft") 28 ) 29 30 func (e AgencyVMPlacementPolicyVMAntiAffinity) Values() []AgencyVMPlacementPolicyVMAntiAffinity { 31 return []AgencyVMPlacementPolicyVMAntiAffinity{ 32 AgencyVMPlacementPolicyVMAntiAffinityNone, 33 AgencyVMPlacementPolicyVMAntiAffinitySoft, 34 } 35 } 36 37 func (e AgencyVMPlacementPolicyVMAntiAffinity) Strings() []string { 38 return types.EnumValuesAsStrings(e.Values()) 39 } 40 41 func init() { 42 types.Add("eam:AgencyVMPlacementPolicyVMAntiAffinity", reflect.TypeOf((*AgencyVMPlacementPolicyVMAntiAffinity)(nil)).Elem()) 43 } 44 45 // Deprecated as of vSphere 9.0. Please refer to vLCM System VMs APIs. 46 // 47 // Defines if the deployed VM is affinied to run on the same host it is 48 // deployed on. 49 type AgencyVMPlacementPolicyVMDataAffinity string 50 51 const ( 52 // Denotes no specific VM data affinity policy. 53 AgencyVMPlacementPolicyVMDataAffinityNone = AgencyVMPlacementPolicyVMDataAffinity("none") 54 // Best effort is made the VM to run on the same host it is deployed on 55 // as long as this does not impact the ability of the host to satisfy 56 // current CPU or memory requirements for virtual machines on the 57 // system. 58 // 59 // NOTE: Currently not supported - i.e. the agency configuration is 60 // considered as invalid. 61 AgencyVMPlacementPolicyVMDataAffinitySoft = AgencyVMPlacementPolicyVMDataAffinity("soft") 62 ) 63 64 func (e AgencyVMPlacementPolicyVMDataAffinity) Values() []AgencyVMPlacementPolicyVMDataAffinity { 65 return []AgencyVMPlacementPolicyVMDataAffinity{ 66 AgencyVMPlacementPolicyVMDataAffinityNone, 67 AgencyVMPlacementPolicyVMDataAffinitySoft, 68 } 69 } 70 71 func (e AgencyVMPlacementPolicyVMDataAffinity) Strings() []string { 72 return types.EnumValuesAsStrings(e.Values()) 73 } 74 75 func init() { 76 types.Add("eam:AgencyVMPlacementPolicyVMDataAffinity", reflect.TypeOf((*AgencyVMPlacementPolicyVMDataAffinity)(nil)).Elem()) 77 } 78 79 type AgentConfigInfoAuthenticationScheme string 80 81 const ( 82 AgentConfigInfoAuthenticationSchemeNONE = AgentConfigInfoAuthenticationScheme("NONE") 83 AgentConfigInfoAuthenticationSchemeVMWARE_SESSION_ID = AgentConfigInfoAuthenticationScheme("VMWARE_SESSION_ID") 84 ) 85 86 func (e AgentConfigInfoAuthenticationScheme) Values() []AgentConfigInfoAuthenticationScheme { 87 return []AgentConfigInfoAuthenticationScheme{ 88 AgentConfigInfoAuthenticationSchemeNONE, 89 AgentConfigInfoAuthenticationSchemeVMWARE_SESSION_ID, 90 } 91 } 92 93 func (e AgentConfigInfoAuthenticationScheme) Strings() []string { 94 return types.EnumValuesAsStrings(e.Values()) 95 } 96 97 func init() { 98 types.Add("eam:AgentConfigInfoAuthenticationScheme", reflect.TypeOf((*AgentConfigInfoAuthenticationScheme)(nil)).Elem()) 99 } 100 101 // Deprecated as of vSphere 9.0. Please refer to vLCM APIs. 102 // 103 // Defines the type of disk provisioning for the target Agent VMs. 104 type AgentConfigInfoOvfDiskProvisioning string 105 106 const ( 107 // Denotes no specific type for disk provisioning. 108 // 109 // Disks will be 110 // provisioned as defaulted by vSphere. 111 AgentConfigInfoOvfDiskProvisioningNone = AgentConfigInfoOvfDiskProvisioning("none") 112 // Disks will be provisioned with only used space allocated. 113 AgentConfigInfoOvfDiskProvisioningThin = AgentConfigInfoOvfDiskProvisioning("thin") 114 // Disks will be provisioned with full size allocated. 115 AgentConfigInfoOvfDiskProvisioningThick = AgentConfigInfoOvfDiskProvisioning("thick") 116 ) 117 118 func (e AgentConfigInfoOvfDiskProvisioning) Values() []AgentConfigInfoOvfDiskProvisioning { 119 return []AgentConfigInfoOvfDiskProvisioning{ 120 AgentConfigInfoOvfDiskProvisioningNone, 121 AgentConfigInfoOvfDiskProvisioningThin, 122 AgentConfigInfoOvfDiskProvisioningThick, 123 } 124 } 125 126 func (e AgentConfigInfoOvfDiskProvisioning) Strings() []string { 127 return types.EnumValuesAsStrings(e.Values()) 128 } 129 130 func init() { 131 types.Add("eam:AgentConfigInfoOvfDiskProvisioning", reflect.TypeOf((*AgentConfigInfoOvfDiskProvisioning)(nil)).Elem()) 132 } 133 134 // Represents the state of the VM lifecycle. 135 type AgentVmHookVmState string 136 137 const ( 138 // The VM is provisioned and not powered-on. 139 AgentVmHookVmStateProvisioned = AgentVmHookVmState("provisioned") 140 // The VM is powered on. 141 AgentVmHookVmStatePoweredOn = AgentVmHookVmState("poweredOn") 142 // The VM is about to be powered on as part of a VM upgrade workflow. 143 AgentVmHookVmStatePrePowerOn = AgentVmHookVmState("prePowerOn") 144 ) 145 146 func (e AgentVmHookVmState) Values() []AgentVmHookVmState { 147 return []AgentVmHookVmState{ 148 AgentVmHookVmStateProvisioned, 149 AgentVmHookVmStatePoweredOn, 150 AgentVmHookVmStatePrePowerOn, 151 } 152 } 153 154 func (e AgentVmHookVmState) Strings() []string { 155 return types.EnumValuesAsStrings(e.Values()) 156 } 157 158 func init() { 159 types.Add("eam:AgentVmHookVmState", reflect.TypeOf((*AgentVmHookVmState)(nil)).Elem()) 160 } 161 162 // Deprecated as of vSphere 9.0. Please refer to vLCM APIs. 163 // 164 // The <code>GoalState</code> enumeration defines the goal of the entity. 165 type EamObjectRuntimeInfoGoalState string 166 167 const ( 168 // The entity should be fully deployed and active. 169 // 170 // If the entity is an 171 // `Agency`, it should install VIBs and deploy and power on all agent 172 // virtual machines. If the entity is an `Agent`, its VIB should be installed and its 173 // agent virtual machine should be deployed and powered on. 174 EamObjectRuntimeInfoGoalStateEnabled = EamObjectRuntimeInfoGoalState("enabled") 175 // The entity should be fully deployed but inactive. 176 // 177 // f the entity is an 178 // `Agency`, the behavior is similar to the <code>enabled</code> goal state, but 179 // agents are not powered on (if they have been powered on they are powered 180 // off). 181 EamObjectRuntimeInfoGoalStateDisabled = EamObjectRuntimeInfoGoalState("disabled") 182 // The entity should be completely removed from the vCenter Server. 183 // 184 // If the entity is an 185 // `Agency`, no more VIBs or agent virtual machines are deployed. All installed VIBs 186 // installed by the `Agency` are uninstalled and any deployed agent virtual machines 187 // are powered off (if they have been powered on) and deleted. 188 // If the entity is an `Agent`, its VIB is uninstalled and the virtual machine is 189 // powered off and deleted. 190 EamObjectRuntimeInfoGoalStateUninstalled = EamObjectRuntimeInfoGoalState("uninstalled") 191 ) 192 193 func (e EamObjectRuntimeInfoGoalState) Values() []EamObjectRuntimeInfoGoalState { 194 return []EamObjectRuntimeInfoGoalState{ 195 EamObjectRuntimeInfoGoalStateEnabled, 196 EamObjectRuntimeInfoGoalStateDisabled, 197 EamObjectRuntimeInfoGoalStateUninstalled, 198 } 199 } 200 201 func (e EamObjectRuntimeInfoGoalState) Strings() []string { 202 return types.EnumValuesAsStrings(e.Values()) 203 } 204 205 func init() { 206 types.Add("eam:EamObjectRuntimeInfoGoalState", reflect.TypeOf((*EamObjectRuntimeInfoGoalState)(nil)).Elem()) 207 } 208 209 // Deprecated as of vSphere 9.0. Please refer to vLCM APIs. 210 // 211 // <code>Status</code> defines a health value that denotes how well the entity 212 // conforms to the goal state. 213 type EamObjectRuntimeInfoStatus string 214 215 const ( 216 // The entity is in perfect compliance with the goal state. 217 EamObjectRuntimeInfoStatusGreen = EamObjectRuntimeInfoStatus("green") 218 // The entity is actively working to reach the desired goal state. 219 EamObjectRuntimeInfoStatusYellow = EamObjectRuntimeInfoStatus("yellow") 220 // The entity has reached an issue which prevents it from reaching the desired goal 221 // state. 222 // 223 // To remediate any offending issues, look at `EamObjectRuntimeInfo.issue` 224 // and use either `EamObject.Resolve` or 225 // `EamObject.ResolveAll`. 226 EamObjectRuntimeInfoStatusRed = EamObjectRuntimeInfoStatus("red") 227 ) 228 229 func (e EamObjectRuntimeInfoStatus) Values() []EamObjectRuntimeInfoStatus { 230 return []EamObjectRuntimeInfoStatus{ 231 EamObjectRuntimeInfoStatusGreen, 232 EamObjectRuntimeInfoStatusYellow, 233 EamObjectRuntimeInfoStatusRed, 234 } 235 } 236 237 func (e EamObjectRuntimeInfoStatus) Strings() []string { 238 return types.EnumValuesAsStrings(e.Values()) 239 } 240 241 func init() { 242 types.Add("eam:EamObjectRuntimeInfoStatus", reflect.TypeOf((*EamObjectRuntimeInfoStatus)(nil)).Elem()) 243 } 244 245 // Deprecated as of vSphere 9.0. Please refer to vLCM Image APIs. 246 // 247 // <code>MaintenanceModePolicy</code> defines how ESX Agent Manager is going 248 // to put into maintenance mode hosts which are part of a cluster not managed 249 type EsxAgentManagerMaintenanceModePolicy string 250 251 const ( 252 // Only a single host at a time will be put into maintenance mode. 253 EsxAgentManagerMaintenanceModePolicySingleHost = EsxAgentManagerMaintenanceModePolicy("singleHost") 254 // Hosts will be put into maintenance mode simultaneously. 255 // 256 // If vSphere DRS 257 // is enabled, its recommendations will be used. Otherwise, it will be 258 // attempted to put in maintenance mode simultaneously as many host as 259 // possible. 260 EsxAgentManagerMaintenanceModePolicyMultipleHosts = EsxAgentManagerMaintenanceModePolicy("multipleHosts") 261 ) 262 263 func (e EsxAgentManagerMaintenanceModePolicy) Values() []EsxAgentManagerMaintenanceModePolicy { 264 return []EsxAgentManagerMaintenanceModePolicy{ 265 EsxAgentManagerMaintenanceModePolicySingleHost, 266 EsxAgentManagerMaintenanceModePolicyMultipleHosts, 267 } 268 } 269 270 func (e EsxAgentManagerMaintenanceModePolicy) Strings() []string { 271 return types.EnumValuesAsStrings(e.Values()) 272 } 273 274 func init() { 275 types.Add("eam:EsxAgentManagerMaintenanceModePolicy", reflect.TypeOf((*EsxAgentManagerMaintenanceModePolicy)(nil)).Elem()) 276 types.AddMinAPIVersionForType("eam:EsxAgentManagerMaintenanceModePolicy", "7.4") 277 } 278 279 // Supported types of hooks for agents. 280 type HooksHookType string 281 282 const ( 283 // Hook raised for an agent immediately after a Virtual Machine was 284 // created. 285 HooksHookTypePOST_PROVISIONING = HooksHookType("POST_PROVISIONING") 286 // Hook raised for an agent immediately after a Virtual Machine was 287 // powered on. 288 HooksHookTypePOST_POWER_ON = HooksHookType("POST_POWER_ON") 289 ) 290 291 func (e HooksHookType) Values() []HooksHookType { 292 return []HooksHookType{ 293 HooksHookTypePOST_PROVISIONING, 294 HooksHookTypePOST_POWER_ON, 295 } 296 } 297 298 func (e HooksHookType) Strings() []string { 299 return types.EnumValuesAsStrings(e.Values()) 300 } 301 302 func init() { 303 types.Add("eam:HooksHookType", reflect.TypeOf((*HooksHookType)(nil)).Elem()) 304 } 305 306 type ManagedObjectTypes string 307 308 const ( 309 ManagedObjectTypesAgency = ManagedObjectTypes("Agency") 310 ManagedObjectTypesAgent = ManagedObjectTypes("Agent") 311 ManagedObjectTypesEamObject = ManagedObjectTypes("EamObject") 312 ManagedObjectTypesEsxAgentManager = ManagedObjectTypes("EsxAgentManager") 313 ManagedObjectTypesEamTask = ManagedObjectTypes("EamTask") 314 ) 315 316 func (e ManagedObjectTypes) Values() []ManagedObjectTypes { 317 return []ManagedObjectTypes{ 318 ManagedObjectTypesAgency, 319 ManagedObjectTypesAgent, 320 ManagedObjectTypesEamObject, 321 ManagedObjectTypesEsxAgentManager, 322 ManagedObjectTypesEamTask, 323 } 324 } 325 326 func (e ManagedObjectTypes) Strings() []string { 327 return types.EnumValuesAsStrings(e.Values()) 328 } 329 330 func init() { 331 types.Add("eam:ManagedObjectTypes", reflect.TypeOf((*ManagedObjectTypes)(nil)).Elem()) 332 } 333 334 // Reasons solution is not valid for application. 335 type SolutionsInvalidReason string 336 337 const ( 338 // The OVF descriptor provided in the VM source is invalid. 339 SolutionsInvalidReasonINVALID_OVF_DESCRIPTOR = SolutionsInvalidReason("INVALID_OVF_DESCRIPTOR") 340 // The provided VM source is inaccessible from ESX Agent Manager. 341 SolutionsInvalidReasonINACCESSBLE_VM_SOURCE = SolutionsInvalidReason("INACCESSBLE_VM_SOURCE") 342 // The provided networks are not suitable for application purposes. 343 SolutionsInvalidReasonINVALID_NETWORKS = SolutionsInvalidReason("INVALID_NETWORKS") 344 // The provided datastores are not suitable for application purposes. 345 SolutionsInvalidReasonINVALID_DATASTORES = SolutionsInvalidReason("INVALID_DATASTORES") 346 // The provided resource pool is not accessible or part of the cluster. 347 SolutionsInvalidReasonINVALID_RESOURCE_POOL = SolutionsInvalidReason("INVALID_RESOURCE_POOL") 348 // The provided folder is inaccessible or not part of the same datacenter 349 // with the cluster. 350 SolutionsInvalidReasonINVALID_FOLDER = SolutionsInvalidReason("INVALID_FOLDER") 351 // The provided OVF properties are insufficient to satisfy the required 352 // user configurable properties in the VM described in the vmSource. 353 SolutionsInvalidReasonINVALID_PROPERTIES = SolutionsInvalidReason("INVALID_PROPERTIES") 354 // The legacy agency requested for transition is not valid/cannot be 355 // mapped to systm Virtual Machines solution. 356 SolutionsInvalidReasonINVALID_TRANSITION = SolutionsInvalidReason("INVALID_TRANSITION") 357 ) 358 359 func (e SolutionsInvalidReason) Values() []SolutionsInvalidReason { 360 return []SolutionsInvalidReason{ 361 SolutionsInvalidReasonINVALID_OVF_DESCRIPTOR, 362 SolutionsInvalidReasonINACCESSBLE_VM_SOURCE, 363 SolutionsInvalidReasonINVALID_NETWORKS, 364 SolutionsInvalidReasonINVALID_DATASTORES, 365 SolutionsInvalidReasonINVALID_RESOURCE_POOL, 366 SolutionsInvalidReasonINVALID_FOLDER, 367 SolutionsInvalidReasonINVALID_PROPERTIES, 368 SolutionsInvalidReasonINVALID_TRANSITION, 369 } 370 } 371 372 func (e SolutionsInvalidReason) Strings() []string { 373 return types.EnumValuesAsStrings(e.Values()) 374 } 375 376 func init() { 377 types.Add("eam:SolutionsInvalidReason", reflect.TypeOf((*SolutionsInvalidReason)(nil)).Elem()) 378 } 379 380 // Describes possible reasons a solution is non compliant. 381 type SolutionsNonComplianceReason string 382 383 const ( 384 // There is ongoing work to acheive the desired state. 385 SolutionsNonComplianceReasonWORKING = SolutionsNonComplianceReason("WORKING") 386 // ESX Agent Manager has ecnountered am issue attempting to acheive the 387 // desired state. 388 SolutionsNonComplianceReasonISSUE = SolutionsNonComplianceReason("ISSUE") 389 // ESX Agent Manager is awaiting user input to continue attempting to 390 // acheive the desired state. 391 SolutionsNonComplianceReasonIN_HOOK = SolutionsNonComplianceReason("IN_HOOK") 392 // An obsoleted spec is currently in application for this solution. 393 // 394 // This state should take precedence over: 395 // - `WORKING` 396 // - `ISSUE` 397 // - `IN_HOOK` 398 SolutionsNonComplianceReasonOBSOLETE_SPEC = SolutionsNonComplianceReason("OBSOLETE_SPEC") 399 // Application for this solutiona has never been requested with 400 // `Solutions.Apply`. 401 SolutionsNonComplianceReasonNO_SPEC = SolutionsNonComplianceReason("NO_SPEC") 402 ) 403 404 func (e SolutionsNonComplianceReason) Values() []SolutionsNonComplianceReason { 405 return []SolutionsNonComplianceReason{ 406 SolutionsNonComplianceReasonWORKING, 407 SolutionsNonComplianceReasonISSUE, 408 SolutionsNonComplianceReasonIN_HOOK, 409 SolutionsNonComplianceReasonOBSOLETE_SPEC, 410 SolutionsNonComplianceReasonNO_SPEC, 411 } 412 } 413 414 func (e SolutionsNonComplianceReason) Strings() []string { 415 return types.EnumValuesAsStrings(e.Values()) 416 } 417 418 func init() { 419 types.Add("eam:SolutionsNonComplianceReason", reflect.TypeOf((*SolutionsNonComplianceReason)(nil)).Elem()) 420 } 421 422 // Virtual Machine deployment optimization strategies. 423 type SolutionsVMDeploymentOptimization string 424 425 const ( 426 // Utilizes all cloning methods available, will create initial snapshots 427 // on the Virtual Machines. 428 SolutionsVMDeploymentOptimizationALL_CLONES = SolutionsVMDeploymentOptimization("ALL_CLONES") 429 // Utilize only full copy cloning menthods, will create initial snapshots 430 // on the Virtual Machines. 431 SolutionsVMDeploymentOptimizationFULL_CLONES_ONLY = SolutionsVMDeploymentOptimization("FULL_CLONES_ONLY") 432 // Virtual Machiness will not be cloned from pre-existing deployment. 433 SolutionsVMDeploymentOptimizationNO_CLONES = SolutionsVMDeploymentOptimization("NO_CLONES") 434 ) 435 436 func (e SolutionsVMDeploymentOptimization) Values() []SolutionsVMDeploymentOptimization { 437 return []SolutionsVMDeploymentOptimization{ 438 SolutionsVMDeploymentOptimizationALL_CLONES, 439 SolutionsVMDeploymentOptimizationFULL_CLONES_ONLY, 440 SolutionsVMDeploymentOptimizationNO_CLONES, 441 } 442 } 443 444 func (e SolutionsVMDeploymentOptimization) Strings() []string { 445 return types.EnumValuesAsStrings(e.Values()) 446 } 447 448 func init() { 449 types.Add("eam:SolutionsVMDeploymentOptimization", reflect.TypeOf((*SolutionsVMDeploymentOptimization)(nil)).Elem()) 450 } 451 452 // Provisioning types for system Virtual Machines. 453 type SolutionsVMDiskProvisioning string 454 455 const ( 456 // Disks will be provisioned with only used space allocated. 457 SolutionsVMDiskProvisioningTHIN = SolutionsVMDiskProvisioning("THIN") 458 // Disks will be provisioned with full size allocated. 459 SolutionsVMDiskProvisioningTHICK = SolutionsVMDiskProvisioning("THICK") 460 ) 461 462 func (e SolutionsVMDiskProvisioning) Values() []SolutionsVMDiskProvisioning { 463 return []SolutionsVMDiskProvisioning{ 464 SolutionsVMDiskProvisioningTHIN, 465 SolutionsVMDiskProvisioningTHICK, 466 } 467 } 468 469 func (e SolutionsVMDiskProvisioning) Strings() []string { 470 return types.EnumValuesAsStrings(e.Values()) 471 } 472 473 func init() { 474 types.Add("eam:SolutionsVMDiskProvisioning", reflect.TypeOf((*SolutionsVMDiskProvisioning)(nil)).Elem()) 475 } 476 477 // Defines the DRS placement policies applied on the VMs. 478 type SolutionsVmPlacementPolicy string 479 480 const ( 481 // VMs are anti-affined to each other. 482 SolutionsVmPlacementPolicyVM_VM_ANTI_AFFINITY = SolutionsVmPlacementPolicy("VM_VM_ANTI_AFFINITY") 483 ) 484 485 func (e SolutionsVmPlacementPolicy) Values() []SolutionsVmPlacementPolicy { 486 return []SolutionsVmPlacementPolicy{ 487 SolutionsVmPlacementPolicyVM_VM_ANTI_AFFINITY, 488 } 489 } 490 491 func (e SolutionsVmPlacementPolicy) Strings() []string { 492 return types.EnumValuesAsStrings(e.Values()) 493 } 494 495 func init() { 496 types.Add("eam:SolutionsVmPlacementPolicy", reflect.TypeOf((*SolutionsVmPlacementPolicy)(nil)).Elem()) 497 }