github.com/vmware/govmomi@v0.37.1/eam/types/types.go (about)

     1  /*
     2  Copyright (c) 2021-2023 VMware, Inc. All Rights Reserved.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package types
    18  
    19  import (
    20  	"reflect"
    21  	"time"
    22  
    23  	"github.com/vmware/govmomi/vim25/types"
    24  )
    25  
    26  type AddIssue AddIssueRequestType
    27  
    28  func init() {
    29  	types.Add("eam:AddIssue", reflect.TypeOf((*AddIssue)(nil)).Elem())
    30  }
    31  
    32  // The parameters of `Agency.AddIssue`.
    33  type AddIssueRequestType struct {
    34  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
    35  	// A new issue.
    36  	Issue BaseIssue `xml:"issue,typeattr" json:"issue"`
    37  }
    38  
    39  func init() {
    40  	types.Add("eam:AddIssueRequestType", reflect.TypeOf((*AddIssueRequestType)(nil)).Elem())
    41  }
    42  
    43  type AddIssueResponse struct {
    44  	Returnval BaseIssue `xml:"returnval,typeattr" json:"returnval"`
    45  }
    46  
    47  // Scope specifies on which compute resources to deploy a solution's agents.
    48  //
    49  // This structure may be used only with operations rendered under `/eam`.
    50  type AgencyComputeResourceScope struct {
    51  	AgencyScope
    52  
    53  	// Compute resources on which to deploy the agents.
    54  	//
    55  	// If `ConfigInfo#vmPlacementPolicy` is set, the array needs to
    56  	// contain exactly one cluster compute resource.
    57  	//
    58  	// Refers instances of `ComputeResource`.
    59  	ComputeResource []types.ManagedObjectReference `xml:"computeResource,omitempty" json:"computeResource,omitempty"`
    60  }
    61  
    62  func init() {
    63  	types.Add("eam:AgencyComputeResourceScope", reflect.TypeOf((*AgencyComputeResourceScope)(nil)).Elem())
    64  }
    65  
    66  // This is the configuration of an <code>Agency</code>.
    67  //
    68  // It determines on
    69  // which compute resources to deploy the agents, which VIB to install, which
    70  // OVF package to install, and how to configure these items by setting the
    71  // OVF environment properties.
    72  //
    73  // This structure may be used only with operations rendered under `/eam`.
    74  type AgencyConfigInfo struct {
    75  	types.DynamicData
    76  
    77  	// A list of `AgentConfigInfo`s for hosts covered by this
    78  	// <code>Agency</code>.
    79  	//
    80  	// When provisioning a new agent to a host, vSphere
    81  	// ESX Agent Manager tries to find, from left to right in the array, a
    82  	// match for an `AgentConfigInfo` and stops searching at the first
    83  	// one that it finds.
    84  	// If `#vmPlacementPolicy` is set, the array needs to contain only a
    85  	// single agent config. In that case the agent config is not bound to a
    86  	// specific host, but to the whole cluster.
    87  	AgentConfig []AgentConfigInfo `xml:"agentConfig,omitempty" json:"agentConfig,omitempty"`
    88  	// The scope of the <code>Agency</code>.
    89  	Scope BaseAgencyScope `xml:"scope,omitempty,typeattr" json:"scope,omitempty"`
    90  	// If set to <code>true</code>, the client of this agency must manually
    91  	// mark the agent as ready after the agent virtual machine has been
    92  	// provisioned.
    93  	//
    94  	// This is useful if the client of this solution performs
    95  	// some extra reconfiguration of the agent virtual machine before it is
    96  	// powered on.
    97  	//
    98  	// See also `Agent.MarkAsAvailable`.
    99  	ManuallyMarkAgentVmAvailableAfterProvisioning *bool `xml:"manuallyMarkAgentVmAvailableAfterProvisioning" json:"manuallyMarkAgentVmAvailableAfterProvisioning,omitempty"`
   100  	// If set to <code>true</code>, the client of this agency must manually
   101  	// mark the agent as ready after the agent virtual machine has been
   102  	// powered on.
   103  	//
   104  	// In this case, DRS will not regard the agent virtual machine
   105  	// as ready until the client has marked the agent as ready.
   106  	//
   107  	// See also `Agent.MarkAsAvailable`.
   108  	ManuallyMarkAgentVmAvailableAfterPowerOn *bool `xml:"manuallyMarkAgentVmAvailableAfterPowerOn" json:"manuallyMarkAgentVmAvailableAfterPowerOn,omitempty"`
   109  	// If set to <code>true</code>, ESX Agent Manager will use vSphere Linked
   110  	// Clones to speed up the deployment of agent virtual machines.
   111  	//
   112  	// Using
   113  	// linked clones implies that the agent virtual machines cannot use
   114  	// Storage vMotion to move to another vSphere datastore.
   115  	// If set to <code>false</code>, ESX Agent Manager will use Full VM
   116  	// Cloning.
   117  	// If unset default is <code>true<code>.
   118  	OptimizedDeploymentEnabled *bool `xml:"optimizedDeploymentEnabled" json:"optimizedDeploymentEnabled,omitempty"`
   119  	// An optional name to use when naming agent virtual machines.
   120  	//
   121  	// For
   122  	// example, if set to "example-agent", each agent virtual machine will be
   123  	// named "example-agent (1)", "example-agent (2)", and so on. The maximum
   124  	// length of <code>agentName</code> is 70 characters.
   125  	AgentName string `xml:"agentName,omitempty" json:"agentName,omitempty"`
   126  	// Name of the agency.
   127  	//
   128  	// Must be set when creating the agency.
   129  	AgencyName string `xml:"agencyName,omitempty" json:"agencyName,omitempty"`
   130  	// Property <code>agentName</code> is required if this property is set to
   131  	// <code>true</code>.
   132  	//
   133  	// If set to <code>true</code>, ESX Agent Manager will name virtual
   134  	// machines with UUID suffix. For example, "example-agent-UUID".
   135  	// In this case, the maximum length of <code>agentName</code> is 43
   136  	// characters.
   137  	//
   138  	// If not set or is set to <code>false</code>, virtual
   139  	// machines will not contain UUID in their name.
   140  	UseUuidVmName *bool `xml:"useUuidVmName" json:"useUuidVmName,omitempty" vim:"7.5"`
   141  	// Deprecated use automatically provisioned VMs and register hooks to
   142  	// have control post provisioning and power on.
   143  	//
   144  	// Set to true if agent VMs are manually provisioned.
   145  	//
   146  	// If unset, defaults
   147  	// to false.
   148  	ManuallyProvisioned *bool `xml:"manuallyProvisioned" json:"manuallyProvisioned,omitempty" vim:"2.0"`
   149  	// Deprecated use automatically provisioned VMs and register hooks to
   150  	// have control post provisioning and power on.
   151  	//
   152  	// Set to true if agent VMs are manually monitored.
   153  	//
   154  	// If unset, defaults to
   155  	// false. This can only be set to true if
   156  	// `AgencyConfigInfo.manuallyProvisioned` is set to true.
   157  	ManuallyMonitored *bool `xml:"manuallyMonitored" json:"manuallyMonitored,omitempty" vim:"2.0"`
   158  	// Deprecated vUM is no more consulted so this property has no sense
   159  	// anymore.
   160  	//
   161  	// Set to true will install VIBs directly on the hosts even if VMware
   162  	// Update Manager is installed.
   163  	//
   164  	// If unset, defaults to false.
   165  	BypassVumEnabled *bool `xml:"bypassVumEnabled" json:"bypassVumEnabled,omitempty" vim:"2.0"`
   166  	// Specifies the networks which to be configured on the agent VMs.
   167  	//
   168  	// This property is only applicable for pinned to host VMs - i.e.
   169  	// (`#vmPlacementPolicy`) is not set.
   170  	//
   171  	// If not set or `AgencyConfigInfo.preferHostConfiguration` is set to true, the
   172  	// default host agent VM network (configured through
   173  	// vim.host.EsxAgentHostManager) is used, otherwise the first network from
   174  	// the array that is present on the host is used.
   175  	//
   176  	// At most one of `AgencyConfigInfo.agentVmNetwork` and `#vmNetworkMapping`
   177  	// needs to be set.
   178  	//
   179  	// Refers instances of `Network`.
   180  	AgentVmNetwork []types.ManagedObjectReference `xml:"agentVmNetwork,omitempty" json:"agentVmNetwork,omitempty" vim:"2.0"`
   181  	// The datastores used to configure the storage on the agent VMs.
   182  	//
   183  	// This property is required if `#vmPlacementPolicy` is set and
   184  	// `#datastoreSelectionPolicy` is not set. In that case the first
   185  	// element from the list is used.
   186  	//
   187  	// If not set or `AgencyConfigInfo.preferHostConfiguration` is set to true and
   188  	// `#vmPlacementPolicy` is not set, the default host agent VM
   189  	// datastore (configured through vim.host.EsxAgentHostManager) is used,
   190  	// otherwise the first datastore from the array that is present on the
   191  	// host is used.
   192  	//
   193  	// If `#vmPlacementPolicy` is set at most one of
   194  	// `AgencyConfigInfo.agentVmDatastore` and `#datastoreSelectionPolicy` needs
   195  	// to be set. If `#vmPlacementPolicy` is not set
   196  	// `#datastoreSelectionPolicy` takes precedence over
   197  	// `AgencyConfigInfo.agentVmDatastore` .
   198  	//
   199  	// Refers instances of `Datastore`.
   200  	AgentVmDatastore []types.ManagedObjectReference `xml:"agentVmDatastore,omitempty" json:"agentVmDatastore,omitempty" vim:"2_5"`
   201  	// If set to true the default agent VM datastore and network will take
   202  	// precedence over `Agency.ConfigInfo.agentVmNetwork` and
   203  	// `Agency.ConfigInfo.agentVmDatastore` when configuring the agent
   204  	// VMs.
   205  	//
   206  	// This property is not used if `#vmPlacementPolicy` is set.
   207  	PreferHostConfiguration *bool `xml:"preferHostConfiguration" json:"preferHostConfiguration,omitempty" vim:"2_5"`
   208  	// Deprecated that is a custom configuration that should be setup by the
   209  	// agency owner. One way is to use
   210  	// `AgencyConfigInfo.manuallyMarkAgentVmAvailableAfterPowerOn` or
   211  	// `AgencyConfigInfo.manuallyMarkAgentVmAvailableAfterProvisioning`
   212  	// hooks.
   213  	//
   214  	// If set, a property with id "ip" and value an IP from the pool is added
   215  	// to the vApp configuration of the deployed VMs.
   216  	IpPool *types.IpPool `xml:"ipPool,omitempty" json:"ipPool,omitempty" vim:"3.0"`
   217  	// Defines the resource pools where VMs to be deployed.
   218  	//
   219  	// If specified, the VMs for every compute resouce in the scope will be
   220  	// deployed to its corresponding resource pool.
   221  	// If not specified, the agent VMs for each compute resource will be
   222  	// deployed under top level nested resource pool created for the agent
   223  	// VMs. If unable to create a nested resource pool, the root resource pool
   224  	// of the compute resource will be used.
   225  	ResourcePools []AgencyVMResourcePool `xml:"resourcePools,omitempty" json:"resourcePools,omitempty" vim:"6.9"`
   226  	// Defines the folders where VMs to be deployed.
   227  	//
   228  	// If specified, the VMs for every compute resouce in the scope will be
   229  	// deployed to its corresponding folder. The link is made between the
   230  	// compute resource parent and the datacenter the folder belongs to
   231  	// `AgencyVMFolder.datacenterId`.
   232  	// If not specified, the agent VMs for each compute resource will be
   233  	// deployed in top level folder created in each datacenter for the agent
   234  	// VMs.
   235  	Folders []AgencyVMFolder `xml:"folders,omitempty" json:"folders,omitempty" vim:"6.9"`
   236  }
   237  
   238  func init() {
   239  	types.Add("eam:AgencyConfigInfo", reflect.TypeOf((*AgencyConfigInfo)(nil)).Elem())
   240  }
   241  
   242  // Agency is disabled - one or more ClusterComputeResources from it's scope are
   243  // disabled.
   244  //
   245  // This is not a remediable issue. To remediate, re-enable the cluster.
   246  //
   247  // This structure may be used only with operations rendered under `/eam`.
   248  type AgencyDisabled struct {
   249  	AgencyIssue
   250  }
   251  
   252  func init() {
   253  	types.Add("eam:AgencyDisabled", reflect.TypeOf((*AgencyDisabled)(nil)).Elem())
   254  	types.AddMinAPIVersionForType("eam:AgencyDisabled", "7.6")
   255  }
   256  
   257  // Base class for all agency issues.
   258  //
   259  // This structure may be used only with operations rendered under `/eam`.
   260  type AgencyIssue struct {
   261  	Issue
   262  
   263  	// The agency to which this issue belongs.
   264  	//
   265  	// Refers instance of `Agency`.
   266  	Agency types.ManagedObjectReference `xml:"agency" json:"agency"`
   267  	// The name of the agency.
   268  	AgencyName string `xml:"agencyName" json:"agencyName"`
   269  	// The ID of the solution to which this issue belongs.
   270  	SolutionId string `xml:"solutionId" json:"solutionId"`
   271  	// The name of the solution to which this issue belongs.
   272  	SolutionName string `xml:"solutionName" json:"solutionName"`
   273  }
   274  
   275  func init() {
   276  	types.Add("eam:AgencyIssue", reflect.TypeOf((*AgencyIssue)(nil)).Elem())
   277  }
   278  
   279  type AgencyQueryRuntime AgencyQueryRuntimeRequestType
   280  
   281  func init() {
   282  	types.Add("eam:AgencyQueryRuntime", reflect.TypeOf((*AgencyQueryRuntime)(nil)).Elem())
   283  }
   284  
   285  type AgencyQueryRuntimeRequestType struct {
   286  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
   287  }
   288  
   289  func init() {
   290  	types.Add("eam:AgencyQueryRuntimeRequestType", reflect.TypeOf((*AgencyQueryRuntimeRequestType)(nil)).Elem())
   291  }
   292  
   293  type AgencyQueryRuntimeResponse struct {
   294  	Returnval BaseEamObjectRuntimeInfo `xml:"returnval,typeattr" json:"returnval"`
   295  }
   296  
   297  // Scope specifies which where to deploy agents.
   298  //
   299  // This structure may be used only with operations rendered under `/eam`.
   300  type AgencyScope struct {
   301  	types.DynamicData
   302  }
   303  
   304  func init() {
   305  	types.Add("eam:AgencyScope", reflect.TypeOf((*AgencyScope)(nil)).Elem())
   306  }
   307  
   308  // Represents the mapping of a VM folder to a datacenter.
   309  //
   310  // This structure may be used only with operations rendered under `/eam`.
   311  type AgencyVMFolder struct {
   312  	types.DynamicData
   313  
   314  	// Folder identifier.
   315  	//
   316  	// The folder must be present in the corresponding
   317  	// datacenter.
   318  	//
   319  	// Refers instance of `Folder`.
   320  	FolderId types.ManagedObjectReference `xml:"folderId" json:"folderId"`
   321  	// Datacenter identifier.
   322  	//
   323  	// Refers instance of `Datacenter`.
   324  	DatacenterId types.ManagedObjectReference `xml:"datacenterId" json:"datacenterId"`
   325  }
   326  
   327  func init() {
   328  	types.Add("eam:AgencyVMFolder", reflect.TypeOf((*AgencyVMFolder)(nil)).Elem())
   329  	types.AddMinAPIVersionForType("eam:AgencyVMFolder", "6.9")
   330  }
   331  
   332  // Represents the mapping of a VM resource pool to a compute resource.
   333  //
   334  // This structure may be used only with operations rendered under `/eam`.
   335  type AgencyVMResourcePool struct {
   336  	types.DynamicData
   337  
   338  	// Resource pool identifier.
   339  	//
   340  	// The resource pool must be present in the
   341  	// corresponding compute resource.
   342  	//
   343  	// Refers instance of `ResourcePool`.
   344  	ResourcePoolId types.ManagedObjectReference `xml:"resourcePoolId" json:"resourcePoolId"`
   345  	// Compute resource identifier.
   346  	//
   347  	// Refers instance of `ComputeResource`.
   348  	ComputeResourceId types.ManagedObjectReference `xml:"computeResourceId" json:"computeResourceId"`
   349  }
   350  
   351  func init() {
   352  	types.Add("eam:AgencyVMResourcePool", reflect.TypeOf((*AgencyVMResourcePool)(nil)).Elem())
   353  	types.AddMinAPIVersionForType("eam:AgencyVMResourcePool", "6.9")
   354  }
   355  
   356  type Agency_Disable Agency_DisableRequestType
   357  
   358  func init() {
   359  	types.Add("eam:Agency_Disable", reflect.TypeOf((*Agency_Disable)(nil)).Elem())
   360  }
   361  
   362  type Agency_DisableRequestType struct {
   363  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
   364  }
   365  
   366  func init() {
   367  	types.Add("eam:Agency_DisableRequestType", reflect.TypeOf((*Agency_DisableRequestType)(nil)).Elem())
   368  }
   369  
   370  type Agency_DisableResponse struct {
   371  }
   372  
   373  type Agency_Enable Agency_EnableRequestType
   374  
   375  func init() {
   376  	types.Add("eam:Agency_Enable", reflect.TypeOf((*Agency_Enable)(nil)).Elem())
   377  }
   378  
   379  type Agency_EnableRequestType struct {
   380  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
   381  }
   382  
   383  func init() {
   384  	types.Add("eam:Agency_EnableRequestType", reflect.TypeOf((*Agency_EnableRequestType)(nil)).Elem())
   385  }
   386  
   387  type Agency_EnableResponse struct {
   388  }
   389  
   390  // Specifies an SSL policy that trusts any SSL certificate.
   391  //
   392  // This structure may be used only with operations rendered under `/eam`.
   393  type AgentAnyCertificate struct {
   394  	AgentSslTrust
   395  }
   396  
   397  func init() {
   398  	types.Add("eam:AgentAnyCertificate", reflect.TypeOf((*AgentAnyCertificate)(nil)).Elem())
   399  	types.AddMinAPIVersionForType("eam:AgentAnyCertificate", "8.2")
   400  }
   401  
   402  // A description of what should be put on a host.
   403  //
   404  // By setting the
   405  // <code>productLineId</code> and <code>hostVersion</code>, you can specify
   406  // the types of hosts for which to use the <code>ConfigInfo</code>.
   407  //
   408  // This structure may be used only with operations rendered under `/eam`.
   409  type AgentConfigInfo struct {
   410  	types.DynamicData
   411  
   412  	// The product line ID of the host.
   413  	//
   414  	// Examples of values are "esx" or
   415  	// "embeddedEsx". If omitted, the host's product line ID is not considered
   416  	// when matching an <code>AgentPackage</code> against a host.
   417  	ProductLineId string `xml:"productLineId,omitempty" json:"productLineId,omitempty"`
   418  	// A dot-separated string of the host version.
   419  	//
   420  	// Examples of values are
   421  	// "4.1.0" "3.5", "4.\*" where \* is a wildcard meaning any version minor
   422  	// version of the major version 4. If omitted, the host version will not
   423  	// be considered when matching an <code>AgentPackage</code> against a
   424  	// host.
   425  	// This property is not used if
   426  	// `Agency.ConfigInfo#vmPlacementPolicy` is set. It is client's
   427  	// responsibility to trigger an agency upgrade with a new
   428  	// `AgentConfigInfo.ovfPackageUrl`.
   429  	HostVersion string `xml:"hostVersion,omitempty" json:"hostVersion,omitempty"`
   430  	// The URL of the solution's agent OVF package.
   431  	//
   432  	// If not set, no agent
   433  	// virtual machines are installed on the hosts covered by the scope.
   434  	// If `Agency.ConfigInfo#vmPlacementPolicy` is set, the VM needs to
   435  	// be agnostic to the different host versions inside the cluster.
   436  	OvfPackageUrl string `xml:"ovfPackageUrl,omitempty" json:"ovfPackageUrl,omitempty"`
   437  	// Specifies an SSL trust policy to be use for verification of the
   438  	// server that hosts the `AgentConfigInfo.ovfPackageUrl`.
   439  	//
   440  	// If not set, the server
   441  	// certificate is validated against the trusted root certificates of the
   442  	// OS (Photon) and VECS (TRUSTED\_ROOTS).
   443  	OvfSslTrust BaseAgentSslTrust `xml:"ovfSslTrust,omitempty,typeattr" json:"ovfSslTrust,omitempty" vim:"8.2"`
   444  	// The part of the OVF environment that can be set by the solution.
   445  	//
   446  	// This
   447  	// is where Properties that the agent virtual machine's OVF descriptor
   448  	// specifies are set here. All properties that are specified as
   449  	// user-configurable must be set.
   450  	OvfEnvironment *AgentOvfEnvironmentInfo `xml:"ovfEnvironment,omitempty" json:"ovfEnvironment,omitempty"`
   451  	// An optional URL to an offline bundle.
   452  	//
   453  	// If not set, no VIB is installed
   454  	// on the hosts in the scope. Offline bundles are only supported on 4.0
   455  	// hosts and later.
   456  	//
   457  	// VIB downgrade is not permitted - in case a VIB with the same name, but
   458  	// lower version is installed on a host in the scope the VIB installation
   459  	// on that host will not succeed.
   460  	//
   461  	// If two or more agents have the same VIB with different versions on the
   462  	// same host, the install/uninstall behaviour is undefined (the VIB may
   463  	// remain installed, etc.).
   464  	//
   465  	// The property is not used if `Agency.ConfigInfo#vmPlacementPolicy`
   466  	// is set.
   467  	VibUrl string `xml:"vibUrl,omitempty" json:"vibUrl,omitempty"`
   468  	// Specifies an SSL trust policy to be use for verification of the
   469  	// server that hosts the `AgentConfigInfo.vibUrl`.
   470  	//
   471  	// If not set, the server
   472  	// certificate is validated against the trusted root certificates of the
   473  	// OS (Photon) and VECS (TRUSTED\_ROOTS).
   474  	VibSslTrust BaseAgentSslTrust `xml:"vibSslTrust,omitempty,typeattr" json:"vibSslTrust,omitempty" vim:"8.2"`
   475  	// Deprecated vIB matching rules are no longer supported by EAM. Same
   476  	// overlaps with VIB dependency requirements which reside in
   477  	// each VIB's metadata.
   478  	//
   479  	// Optional Vib matching rules.
   480  	//
   481  	// If set, the Vib, specified by vibUrl, will
   482  	// be installed either
   483  	//     - if there is installed Vib on the host which name and version match
   484  	//       the regular expressions in the corresponding rule
   485  	//     - or there isn't any installed Vib on the host with name which
   486  	//       matches the Vib name regular expression in the corresponding rule. Vib
   487  	//       matching rules are usually used for controlling VIB upgrades, in which
   488  	//       case the name regular expression matches any previous versions of the
   489  	//       agency Vib and version regular expression determines whether the
   490  	//       existing Vib should be upgraded.
   491  	//
   492  	// For every Vib in the Vib package, only one Vib matching rule can be
   493  	// defined. If specified more than one, it is not determined which one
   494  	// will be used. The Vib name regular expression in the Vib matching rule
   495  	// will be matched against the name of the Vib which will be installed.
   496  	// Only rules for Vibs which are defined in the Vib package metadata will
   497  	// be taken in account.
   498  	VibMatchingRules []AgentVibMatchingRule `xml:"vibMatchingRules,omitempty" json:"vibMatchingRules,omitempty" vim:"2_5"`
   499  	// Deprecated use VIB metadata to add such dependency.
   500  	//
   501  	// An optional name of a VIB.
   502  	//
   503  	// If set, no VIB is installed on the host. The
   504  	// host is checked if a VIB with vibName is already installed on it. Also
   505  	// the vibUrl must not be set together with the vibUrl.
   506  	VibName string `xml:"vibName,omitempty" json:"vibName,omitempty" vim:"2.0"`
   507  	// Deprecated that is a custom setup specific for a particular agency.
   508  	// The agency owner should do it using other means, e.g.
   509  	// `#manuallyMarkAgentVmAvailableAfterPowerOn` or
   510  	// `#manuallyMarkAgentVmAvailableAfterProvisioning`
   511  	// hooks. Support for this has been removed. Seting this to
   512  	// <code>true</code> will no longer have any effect.
   513  	//
   514  	// If set to <code>true</code>, the hosts in the scope must be configured
   515  	// for DvFilter before VIBs and agent virtual machines are deployed on
   516  	// them.
   517  	//
   518  	// If not set or set to <code>false</code>, no DvFilter
   519  	// configuration is done on the hosts.
   520  	DvFilterEnabled *bool `xml:"dvFilterEnabled" json:"dvFilterEnabled,omitempty"`
   521  	// Deprecated express that requirement in the VIB descriptor with
   522  	// 'live-remove-allowed=false'.
   523  	//
   524  	// An optional boolean flag to specify whether the agent's host is
   525  	// rebooted after the VIB is uninstalled.
   526  	//
   527  	// If not set, the default value is
   528  	// <code>false</code>. If set to <code>true</code>, the agent gets a
   529  	// `VibRequiresHostReboot` issue after a successful
   530  	// uninstallation.
   531  	RebootHostAfterVibUninstall *bool `xml:"rebootHostAfterVibUninstall" json:"rebootHostAfterVibUninstall,omitempty"`
   532  	// If set the virtual machine will be configured with the services and
   533  	// allow VMCI access from the virtual machine to the installed VIB.
   534  	VmciService []string `xml:"vmciService,omitempty" json:"vmciService,omitempty"`
   535  	// AgentVM disk provisioning type.
   536  	//
   537  	// Defaults to `none` if not specified.
   538  	OvfDiskProvisioning string `xml:"ovfDiskProvisioning,omitempty" json:"ovfDiskProvisioning,omitempty" vim:"6.9"`
   539  	// Defines the storage policies configured on Agent VMs.
   540  	//
   541  	// Storage policies
   542  	// are configured on all VM related objects including disks.
   543  	// NOTE: The property needs to be configured on each update, otherwise
   544  	// vSphere ESX Agent Manager will unset this configuration for all future
   545  	// agent VMs.
   546  	VmStoragePolicies []BaseAgentStoragePolicy `xml:"vmStoragePolicies,omitempty,typeattr" json:"vmStoragePolicies,omitempty" vim:"7.0"`
   547  }
   548  
   549  func init() {
   550  	types.Add("eam:AgentConfigInfo", reflect.TypeOf((*AgentConfigInfo)(nil)).Elem())
   551  }
   552  
   553  // Base class for all agent issues.
   554  //
   555  // This structure may be used only with operations rendered under `/eam`.
   556  type AgentIssue struct {
   557  	AgencyIssue
   558  
   559  	// The agent that has this issue.
   560  	//
   561  	// Refers instance of `Agent`.
   562  	Agent types.ManagedObjectReference `xml:"agent" json:"agent"`
   563  	// The name of the agent.
   564  	AgentName string `xml:"agentName" json:"agentName"`
   565  	// The managed object reference to the host on which this agent is located.
   566  	//
   567  	// Refers instance of `HostSystem`.
   568  	Host types.ManagedObjectReference `xml:"host" json:"host"`
   569  	// The name of the host on which this agent is located.
   570  	HostName string `xml:"hostName" json:"hostName"`
   571  }
   572  
   573  func init() {
   574  	types.Add("eam:AgentIssue", reflect.TypeOf((*AgentIssue)(nil)).Elem())
   575  }
   576  
   577  // The <code>OvfEnvironment</code> is used to assign OVF environment
   578  // properties in the `AgentConfigInfo`.
   579  //
   580  // It specifies the values that
   581  // map to properties in the agent virtual machine's OVF descriptor.
   582  //
   583  // This structure may be used only with operations rendered under `/eam`.
   584  type AgentOvfEnvironmentInfo struct {
   585  	types.DynamicData
   586  
   587  	// The OVF properties that are assigned to the agent virtual machine's OVF
   588  	// environment when it is powered on.
   589  	OvfProperty []AgentOvfEnvironmentInfoOvfProperty `xml:"ovfProperty,omitempty" json:"ovfProperty,omitempty"`
   590  }
   591  
   592  func init() {
   593  	types.Add("eam:AgentOvfEnvironmentInfo", reflect.TypeOf((*AgentOvfEnvironmentInfo)(nil)).Elem())
   594  }
   595  
   596  // One OVF property.
   597  //
   598  // This structure may be used only with operations rendered under `/eam`.
   599  type AgentOvfEnvironmentInfoOvfProperty struct {
   600  	types.DynamicData
   601  
   602  	// The name of the property in the OVF descriptor.
   603  	Key string `xml:"key" json:"key"`
   604  	// The value of the property.
   605  	Value string `xml:"value" json:"value"`
   606  }
   607  
   608  func init() {
   609  	types.Add("eam:AgentOvfEnvironmentInfoOvfProperty", reflect.TypeOf((*AgentOvfEnvironmentInfoOvfProperty)(nil)).Elem())
   610  }
   611  
   612  // Specifies an SSL policy that trusts one specific pinned PEM encoded
   613  // SSL certificate.
   614  //
   615  // This structure may be used only with operations rendered under `/eam`.
   616  type AgentPinnedPemCertificate struct {
   617  	AgentSslTrust
   618  
   619  	// PEM encoded pinned SSL certificate of the server that needs to be
   620  	// trusted.
   621  	SslCertificate string `xml:"sslCertificate" json:"sslCertificate"`
   622  }
   623  
   624  func init() {
   625  	types.Add("eam:AgentPinnedPemCertificate", reflect.TypeOf((*AgentPinnedPemCertificate)(nil)).Elem())
   626  	types.AddMinAPIVersionForType("eam:AgentPinnedPemCertificate", "8.2")
   627  }
   628  
   629  type AgentQueryConfig AgentQueryConfigRequestType
   630  
   631  func init() {
   632  	types.Add("eam:AgentQueryConfig", reflect.TypeOf((*AgentQueryConfig)(nil)).Elem())
   633  }
   634  
   635  type AgentQueryConfigRequestType struct {
   636  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
   637  }
   638  
   639  func init() {
   640  	types.Add("eam:AgentQueryConfigRequestType", reflect.TypeOf((*AgentQueryConfigRequestType)(nil)).Elem())
   641  }
   642  
   643  type AgentQueryConfigResponse struct {
   644  	Returnval AgentConfigInfo `xml:"returnval" json:"returnval"`
   645  }
   646  
   647  type AgentQueryRuntime AgentQueryRuntimeRequestType
   648  
   649  func init() {
   650  	types.Add("eam:AgentQueryRuntime", reflect.TypeOf((*AgentQueryRuntime)(nil)).Elem())
   651  }
   652  
   653  type AgentQueryRuntimeRequestType struct {
   654  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
   655  }
   656  
   657  func init() {
   658  	types.Add("eam:AgentQueryRuntimeRequestType", reflect.TypeOf((*AgentQueryRuntimeRequestType)(nil)).Elem())
   659  }
   660  
   661  type AgentQueryRuntimeResponse struct {
   662  	Returnval AgentRuntimeInfo `xml:"returnval" json:"returnval"`
   663  }
   664  
   665  // Extends <code>RuntimeInfo</code> with information regarding the deployment
   666  // of an agent on a specific host.
   667  //
   668  // This structure may be used only with operations rendered under `/eam`.
   669  type AgentRuntimeInfo struct {
   670  	EamObjectRuntimeInfo
   671  
   672  	// Deprecated get that info calling the virtual machine VIM API.
   673  	//
   674  	// The power state of an agent virtual machine.
   675  	VmPowerState types.VirtualMachinePowerState `xml:"vmPowerState" json:"vmPowerState"`
   676  	// Deprecated get that info calling the virtual machine VIM API.
   677  	//
   678  	// True if the vSphere ESX Agent Manager is receiving heartbeats from the
   679  	// agent virtual machine.
   680  	ReceivingHeartBeat bool `xml:"receivingHeartBeat" json:"receivingHeartBeat"`
   681  	// The agent host.
   682  	//
   683  	// Refers instance of `HostSystem`.
   684  	Host *types.ManagedObjectReference `xml:"host,omitempty" json:"host,omitempty"`
   685  	// The agent virtual machine.
   686  	//
   687  	// Refers instance of `VirtualMachine`.
   688  	Vm *types.ManagedObjectReference `xml:"vm,omitempty" json:"vm,omitempty"`
   689  	// Deprecated get that info calling the virtual machine VIM API.
   690  	//
   691  	// The IP address of the agent virtual machine
   692  	VmIp string `xml:"vmIp,omitempty" json:"vmIp,omitempty"`
   693  	// Deprecated get that info calling the virtual machine VIM API.
   694  	//
   695  	// The name of the agent virtual machine.
   696  	VmName string `xml:"vmName" json:"vmName"`
   697  	// Deprecated in order to retrieve agent resource pool use VIM API.
   698  	//
   699  	// The ESX agent resource pool in which the agent virtual machine resides.
   700  	//
   701  	// Refers instance of `ResourcePool`.
   702  	EsxAgentResourcePool *types.ManagedObjectReference `xml:"esxAgentResourcePool,omitempty" json:"esxAgentResourcePool,omitempty"`
   703  	// Deprecated in order to retrieve agent VM folder use VIM API.
   704  	//
   705  	// The ESX agent folder in which the agent virtual machine resides.
   706  	//
   707  	// Refers instance of `Folder`.
   708  	EsxAgentFolder *types.ManagedObjectReference `xml:"esxAgentFolder,omitempty" json:"esxAgentFolder,omitempty"`
   709  	// Deprecated use `AgentRuntimeInfo.installedVibs` instead.
   710  	//
   711  	// An optional array of IDs of installed bulletins for this agent.
   712  	InstalledBulletin []string `xml:"installedBulletin,omitempty" json:"installedBulletin,omitempty"`
   713  	// Information about the installed vibs on the host.
   714  	InstalledVibs []VibVibInfo `xml:"installedVibs,omitempty" json:"installedVibs,omitempty" vim:"6.0"`
   715  	// The agency this agent belongs to.
   716  	//
   717  	// Refers instance of `Agency`.
   718  	Agency *types.ManagedObjectReference `xml:"agency,omitempty" json:"agency,omitempty" vim:"2.0"`
   719  	// Active VM hook.
   720  	//
   721  	// If present agent is actively waiting for `Agent.MarkAsAvailable`.
   722  	// See `AgentVmHook`.
   723  	VmHook *AgentVmHook `xml:"vmHook,omitempty" json:"vmHook,omitempty" vim:"6.7"`
   724  }
   725  
   726  func init() {
   727  	types.Add("eam:AgentRuntimeInfo", reflect.TypeOf((*AgentRuntimeInfo)(nil)).Elem())
   728  }
   729  
   730  // Specifies an SSL trust policy.
   731  //
   732  // This structure may be used only with operations rendered under `/eam`.
   733  type AgentSslTrust struct {
   734  	types.DynamicData
   735  }
   736  
   737  func init() {
   738  	types.Add("eam:AgentSslTrust", reflect.TypeOf((*AgentSslTrust)(nil)).Elem())
   739  	types.AddMinAPIVersionForType("eam:AgentSslTrust", "8.2")
   740  }
   741  
   742  // Specifies the storage policies configured on Agent VMs.
   743  //
   744  // This structure may be used only with operations rendered under `/eam`.
   745  type AgentStoragePolicy struct {
   746  	types.DynamicData
   747  }
   748  
   749  func init() {
   750  	types.Add("eam:AgentStoragePolicy", reflect.TypeOf((*AgentStoragePolicy)(nil)).Elem())
   751  	types.AddMinAPIVersionForType("eam:AgentStoragePolicy", "7.0")
   752  }
   753  
   754  // Deprecated vIB matching rules are no longer supported by EAM. Same
   755  // overlaps with VIB dependency requirements which reside in each
   756  // VIB's metadata.
   757  //
   758  // Specifies regular expressions for Vib name and version.
   759  //
   760  // This structure may be used only with operations rendered under `/eam`.
   761  type AgentVibMatchingRule struct {
   762  	types.DynamicData
   763  
   764  	// Vib name regular expression.
   765  	VibNameRegex string `xml:"vibNameRegex" json:"vibNameRegex"`
   766  	// Vib version regular expression.
   767  	VibVersionRegex string `xml:"vibVersionRegex" json:"vibVersionRegex"`
   768  }
   769  
   770  func init() {
   771  	types.Add("eam:AgentVibMatchingRule", reflect.TypeOf((*AgentVibMatchingRule)(nil)).Elem())
   772  }
   773  
   774  // Represents an active hook of the VM lifecycle which EAM is waiting on to
   775  // be processed by the client.
   776  //
   777  // The supported hooks are defined by
   778  // `AgencyConfigInfo.manuallyMarkAgentVmAvailableAfterProvisioning`
   779  // and
   780  // `AgencyConfigInfo.manuallyMarkAgentVmAvailableAfterProvisioning`.
   781  // See `Agent.MarkAsAvailable`
   782  //
   783  // This structure may be used only with operations rendered under `/eam`.
   784  type AgentVmHook struct {
   785  	types.DynamicData
   786  
   787  	// The VM for which lifecycle is this hook.
   788  	//
   789  	// This VM may differ from `AgentRuntimeInfo.vm` while an upgrade
   790  	// of the agent VM is in progress.
   791  	//
   792  	// Refers instance of `VirtualMachine`.
   793  	Vm types.ManagedObjectReference `xml:"vm" json:"vm"`
   794  	// The current VM lifecycle state.
   795  	VmState string `xml:"vmState" json:"vmState"`
   796  }
   797  
   798  func init() {
   799  	types.Add("eam:AgentVmHook", reflect.TypeOf((*AgentVmHook)(nil)).Elem())
   800  	types.AddMinAPIVersionForType("eam:AgentVmHook", "6.7")
   801  }
   802  
   803  // Specifies vSAN specific storage policy configured on Agent VMs.
   804  //
   805  // This structure may be used only with operations rendered under `/eam`.
   806  type AgentVsanStoragePolicy struct {
   807  	AgentStoragePolicy
   808  
   809  	// ID of a storage policy profile created by the user.
   810  	//
   811  	// The type of the
   812  	// profile must be `VirtualMachineDefinedProfileSpec`. The ID must be valid
   813  	// `VirtualMachineDefinedProfileSpec.profileId`.
   814  	ProfileId string `xml:"profileId" json:"profileId"`
   815  }
   816  
   817  func init() {
   818  	types.Add("eam:AgentVsanStoragePolicy", reflect.TypeOf((*AgentVsanStoragePolicy)(nil)).Elem())
   819  	types.AddMinAPIVersionForType("eam:AgentVsanStoragePolicy", "7.0")
   820  }
   821  
   822  // A boxed array of `AgencyVMFolder`. To be used in `Any` placeholders.
   823  type ArrayOfAgencyVMFolder struct {
   824  	AgencyVMFolder []AgencyVMFolder `xml:"AgencyVMFolder,omitempty" json:"_value"`
   825  }
   826  
   827  func init() {
   828  	types.Add("eam:ArrayOfAgencyVMFolder", reflect.TypeOf((*ArrayOfAgencyVMFolder)(nil)).Elem())
   829  }
   830  
   831  // A boxed array of `AgencyVMResourcePool`. To be used in `Any` placeholders.
   832  type ArrayOfAgencyVMResourcePool struct {
   833  	AgencyVMResourcePool []AgencyVMResourcePool `xml:"AgencyVMResourcePool,omitempty" json:"_value"`
   834  }
   835  
   836  func init() {
   837  	types.Add("eam:ArrayOfAgencyVMResourcePool", reflect.TypeOf((*ArrayOfAgencyVMResourcePool)(nil)).Elem())
   838  }
   839  
   840  // A boxed array of `AgentConfigInfo`. To be used in `Any` placeholders.
   841  type ArrayOfAgentConfigInfo struct {
   842  	AgentConfigInfo []AgentConfigInfo `xml:"AgentConfigInfo,omitempty" json:"_value"`
   843  }
   844  
   845  func init() {
   846  	types.Add("eam:ArrayOfAgentConfigInfo", reflect.TypeOf((*ArrayOfAgentConfigInfo)(nil)).Elem())
   847  }
   848  
   849  // A boxed array of `AgentOvfEnvironmentInfoOvfProperty`. To be used in `Any` placeholders.
   850  type ArrayOfAgentOvfEnvironmentInfoOvfProperty struct {
   851  	AgentOvfEnvironmentInfoOvfProperty []AgentOvfEnvironmentInfoOvfProperty `xml:"AgentOvfEnvironmentInfoOvfProperty,omitempty" json:"_value"`
   852  }
   853  
   854  func init() {
   855  	types.Add("eam:ArrayOfAgentOvfEnvironmentInfoOvfProperty", reflect.TypeOf((*ArrayOfAgentOvfEnvironmentInfoOvfProperty)(nil)).Elem())
   856  }
   857  
   858  // A boxed array of `AgentStoragePolicy`. To be used in `Any` placeholders.
   859  type ArrayOfAgentStoragePolicy struct {
   860  	AgentStoragePolicy []BaseAgentStoragePolicy `xml:"AgentStoragePolicy,omitempty,typeattr" json:"_value"`
   861  }
   862  
   863  func init() {
   864  	types.Add("eam:ArrayOfAgentStoragePolicy", reflect.TypeOf((*ArrayOfAgentStoragePolicy)(nil)).Elem())
   865  }
   866  
   867  // A boxed array of `AgentVibMatchingRule`. To be used in `Any` placeholders.
   868  type ArrayOfAgentVibMatchingRule struct {
   869  	AgentVibMatchingRule []AgentVibMatchingRule `xml:"AgentVibMatchingRule,omitempty" json:"_value"`
   870  }
   871  
   872  func init() {
   873  	types.Add("eam:ArrayOfAgentVibMatchingRule", reflect.TypeOf((*ArrayOfAgentVibMatchingRule)(nil)).Elem())
   874  }
   875  
   876  // A boxed array of `HooksHookInfo`. To be used in `Any` placeholders.
   877  type ArrayOfHooksHookInfo struct {
   878  	HooksHookInfo []HooksHookInfo `xml:"HooksHookInfo,omitempty" json:"_value"`
   879  }
   880  
   881  func init() {
   882  	types.Add("eam:ArrayOfHooksHookInfo", reflect.TypeOf((*ArrayOfHooksHookInfo)(nil)).Elem())
   883  }
   884  
   885  // A boxed array of `Issue`. To be used in `Any` placeholders.
   886  type ArrayOfIssue struct {
   887  	Issue []BaseIssue `xml:"Issue,omitempty,typeattr" json:"_value"`
   888  }
   889  
   890  func init() {
   891  	types.Add("eam:ArrayOfIssue", reflect.TypeOf((*ArrayOfIssue)(nil)).Elem())
   892  }
   893  
   894  // A boxed array of `SolutionsHookConfig`. To be used in `Any` placeholders.
   895  type ArrayOfSolutionsHookConfig struct {
   896  	SolutionsHookConfig []SolutionsHookConfig `xml:"SolutionsHookConfig,omitempty" json:"_value"`
   897  }
   898  
   899  func init() {
   900  	types.Add("eam:ArrayOfSolutionsHookConfig", reflect.TypeOf((*ArrayOfSolutionsHookConfig)(nil)).Elem())
   901  }
   902  
   903  // A boxed array of `SolutionsHostComplianceResult`. To be used in `Any` placeholders.
   904  type ArrayOfSolutionsHostComplianceResult struct {
   905  	SolutionsHostComplianceResult []SolutionsHostComplianceResult `xml:"SolutionsHostComplianceResult,omitempty" json:"_value"`
   906  }
   907  
   908  func init() {
   909  	types.Add("eam:ArrayOfSolutionsHostComplianceResult", reflect.TypeOf((*ArrayOfSolutionsHostComplianceResult)(nil)).Elem())
   910  }
   911  
   912  // A boxed array of `SolutionsOvfProperty`. To be used in `Any` placeholders.
   913  type ArrayOfSolutionsOvfProperty struct {
   914  	SolutionsOvfProperty []SolutionsOvfProperty `xml:"SolutionsOvfProperty,omitempty" json:"_value"`
   915  }
   916  
   917  func init() {
   918  	types.Add("eam:ArrayOfSolutionsOvfProperty", reflect.TypeOf((*ArrayOfSolutionsOvfProperty)(nil)).Elem())
   919  }
   920  
   921  // A boxed array of `SolutionsSolutionComplianceResult`. To be used in `Any` placeholders.
   922  type ArrayOfSolutionsSolutionComplianceResult struct {
   923  	SolutionsSolutionComplianceResult []SolutionsSolutionComplianceResult `xml:"SolutionsSolutionComplianceResult,omitempty" json:"_value"`
   924  }
   925  
   926  func init() {
   927  	types.Add("eam:ArrayOfSolutionsSolutionComplianceResult", reflect.TypeOf((*ArrayOfSolutionsSolutionComplianceResult)(nil)).Elem())
   928  }
   929  
   930  // A boxed array of `SolutionsSolutionConfig`. To be used in `Any` placeholders.
   931  type ArrayOfSolutionsSolutionConfig struct {
   932  	SolutionsSolutionConfig []SolutionsSolutionConfig `xml:"SolutionsSolutionConfig,omitempty" json:"_value"`
   933  }
   934  
   935  func init() {
   936  	types.Add("eam:ArrayOfSolutionsSolutionConfig", reflect.TypeOf((*ArrayOfSolutionsSolutionConfig)(nil)).Elem())
   937  }
   938  
   939  // A boxed array of `SolutionsSolutionValidationResult`. To be used in `Any` placeholders.
   940  type ArrayOfSolutionsSolutionValidationResult struct {
   941  	SolutionsSolutionValidationResult []SolutionsSolutionValidationResult `xml:"SolutionsSolutionValidationResult,omitempty" json:"_value"`
   942  }
   943  
   944  func init() {
   945  	types.Add("eam:ArrayOfSolutionsSolutionValidationResult", reflect.TypeOf((*ArrayOfSolutionsSolutionValidationResult)(nil)).Elem())
   946  }
   947  
   948  // A boxed array of `SolutionsStoragePolicy`. To be used in `Any` placeholders.
   949  type ArrayOfSolutionsStoragePolicy struct {
   950  	SolutionsStoragePolicy []BaseSolutionsStoragePolicy `xml:"SolutionsStoragePolicy,omitempty,typeattr" json:"_value"`
   951  }
   952  
   953  func init() {
   954  	types.Add("eam:ArrayOfSolutionsStoragePolicy", reflect.TypeOf((*ArrayOfSolutionsStoragePolicy)(nil)).Elem())
   955  }
   956  
   957  // A boxed array of `VibVibInfo`. To be used in `Any` placeholders.
   958  type ArrayOfVibVibInfo struct {
   959  	VibVibInfo []VibVibInfo `xml:"VibVibInfo,omitempty" json:"_value"`
   960  }
   961  
   962  func init() {
   963  	types.Add("eam:ArrayOfVibVibInfo", reflect.TypeOf((*ArrayOfVibVibInfo)(nil)).Elem())
   964  }
   965  
   966  // An agent virtual machine is expected to be deployed on a host, but the agent virtual machine
   967  // cannot be deployed because the vSphere ESX Agent Manager is unable to access the OVF
   968  // package for the agent.
   969  //
   970  // This typically happens because the Web server providing the
   971  // OVF package is down. The Web server is often internal to the solution
   972  // that created the Agency.
   973  //
   974  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager redeploys the agent.
   975  //
   976  // This structure may be used only with operations rendered under `/eam`.
   977  type CannotAccessAgentOVF struct {
   978  	VmNotDeployed
   979  
   980  	// The URL from which the OVF could not be downloaded.
   981  	DownloadUrl string `xml:"downloadUrl" json:"downloadUrl"`
   982  }
   983  
   984  func init() {
   985  	types.Add("eam:CannotAccessAgentOVF", reflect.TypeOf((*CannotAccessAgentOVF)(nil)).Elem())
   986  }
   987  
   988  // An agent VIB module is expected to be deployed on a host, but the VIM module
   989  // cannot be deployed because the vSphere ESX Agent Manager is unable to access the VIB
   990  // package for the agent.
   991  //
   992  // This typically happens because the Web server providing the
   993  // VIB package is down. The Web server is often internal to the solution
   994  // that created the Agency.
   995  //
   996  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager reinstalls the VIB module.
   997  //
   998  // This structure may be used only with operations rendered under `/eam`.
   999  type CannotAccessAgentVib struct {
  1000  	VibNotInstalled
  1001  
  1002  	// The URL from which the VIB package could not be downloaded.
  1003  	DownloadUrl string `xml:"downloadUrl" json:"downloadUrl"`
  1004  }
  1005  
  1006  func init() {
  1007  	types.Add("eam:CannotAccessAgentVib", reflect.TypeOf((*CannotAccessAgentVib)(nil)).Elem())
  1008  }
  1009  
  1010  // This exception is thrown if the certificate provided by the
  1011  // provider is not trusted.
  1012  //
  1013  // This structure may be used only with operations rendered under `/sms`.
  1014  type CertificateNotTrusted struct {
  1015  	AgentIssue
  1016  
  1017  	Url string `xml:"url" json:"url"`
  1018  }
  1019  
  1020  func init() {
  1021  	types.Add("eam:CertificateNotTrusted", reflect.TypeOf((*CertificateNotTrusted)(nil)).Elem())
  1022  }
  1023  
  1024  // An CertificateNotTrusted fault is thrown when an Agency's configuration
  1025  // contains OVF package URL or VIB URL for that vSphere ESX Agent Manager is not
  1026  // able to make successful SSL trust verification of the server's certificate.
  1027  //
  1028  // Reasons for this might be that the certificate provided via the API
  1029  // `Agent.ConfigInfo.ovfSslTrust` and `Agent.ConfigInfo.vibSslTrust`
  1030  // or via the script /usr/lib/vmware-eam/bin/eam-utility.py
  1031  //   - is invalid.
  1032  //   - does not match the server's certificate.
  1033  //
  1034  // If there is no provided certificate, the fault is thrown when the server's
  1035  // certificate is not trusted by the system or is invalid - @see
  1036  // `Agent.ConfigInfo.ovfSslTrust` and
  1037  // `Agent.ConfigInfo.vibSslTrust`.
  1038  // To enable Agency creation 1) provide a valid certificate used by the
  1039  // server hosting the `Agent.ConfigInfo.ovfPackageUrl` or
  1040  // `Agent.ConfigInfo#vibUrl` or 2) ensure the server's certificate is
  1041  // signed by a CA trusted by the system. Then retry the operation, vSphere
  1042  // ESX Agent Manager will retry the SSL trust verification and proceed with
  1043  // reaching the desired state.
  1044  //
  1045  // This structure may be used only with operations rendered under `/eam`.
  1046  type CertificateNotTrustedFault struct {
  1047  	EamAppFault
  1048  
  1049  	// The URL that failed the SSL trust verification.
  1050  	Url string `xml:"url,omitempty" json:"url,omitempty"`
  1051  }
  1052  
  1053  func init() {
  1054  	types.Add("eam:CertificateNotTrustedFault", reflect.TypeOf((*CertificateNotTrustedFault)(nil)).Elem())
  1055  	types.AddMinAPIVersionForType("eam:CertificateNotTrustedFault", "8.2")
  1056  }
  1057  
  1058  // Base class for all cluster bound agents.
  1059  //
  1060  // This structure may be used only with operations rendered under `/eam`.
  1061  type ClusterAgentAgentIssue struct {
  1062  	AgencyIssue
  1063  
  1064  	// The agent that has this issue.
  1065  	//
  1066  	// Refers instance of `Agent`.
  1067  	Agent types.ManagedObjectReference `xml:"agent" json:"agent"`
  1068  	// The cluster for which this issue is raised.
  1069  	//
  1070  	// Migth be null if the cluster
  1071  	// is missing in vCenter Server inventory.
  1072  	//
  1073  	// Refers instance of `ComputeResource`.
  1074  	Cluster *types.ManagedObjectReference `xml:"cluster,omitempty" json:"cluster,omitempty"`
  1075  }
  1076  
  1077  func init() {
  1078  	types.Add("eam:ClusterAgentAgentIssue", reflect.TypeOf((*ClusterAgentAgentIssue)(nil)).Elem())
  1079  	types.AddMinAPIVersionForType("eam:ClusterAgentAgentIssue", "6.9")
  1080  }
  1081  
  1082  // The cluster agent Virtual Machine cannot be deployed, because vSphere ESX
  1083  // Agent Manager is not able to make successful SSL trust verification of the
  1084  // server's certificate, when establishing connection to the provided
  1085  // `Agent.ConfigInfo#ovfPackageUrl`.
  1086  //
  1087  // Reasons for this might be that the
  1088  // certificate provided via the API `Agent.ConfigInfo.ovfSslTrust` or via
  1089  // the script /usr/lib/vmware-eam/bin/eam-utility.py
  1090  //   - is invalid.
  1091  //   - does not match the server's certificate.
  1092  //
  1093  // If there is no provided certificate, the issue is raised when the server's
  1094  // certificate is not trusted by the system or invalid - @see
  1095  // `Agent.ConfigInfo.ovfSslTrust`.
  1096  // To remediate the cluster agent Virtual Machine deployment 1) provide a valid
  1097  // certificate used by the server hosting the
  1098  // `Agent.ConfigInfo.ovfPackageUrl` or 2) ensure the server's certificate
  1099  // is signed by a CA trusted by the system. Then resolve this issue, vSphere ESX
  1100  // Agent Manager will retry the SSL trust verification and proceed with reaching
  1101  // the desired state.
  1102  //
  1103  // This structure may be used only with operations rendered under `/eam`.
  1104  type ClusterAgentCertificateNotTrusted struct {
  1105  	ClusterAgentVmNotDeployed
  1106  
  1107  	// The URL that failed the SSL trust verification.
  1108  	Url string `xml:"url" json:"url"`
  1109  }
  1110  
  1111  func init() {
  1112  	types.Add("eam:ClusterAgentCertificateNotTrusted", reflect.TypeOf((*ClusterAgentCertificateNotTrusted)(nil)).Elem())
  1113  	types.AddMinAPIVersionForType("eam:ClusterAgentCertificateNotTrusted", "8.2")
  1114  }
  1115  
  1116  // The cluster agent Virtual Machine could not be powered-on, because the
  1117  // cluster does not have enough CPU or memory resources.
  1118  //
  1119  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1120  // powers on the agent Virtual Machine. However, the problem is likely to
  1121  // persist until enough CPU and memory resources are made available.
  1122  //
  1123  // This structure may be used only with operations rendered under `/eam`.
  1124  type ClusterAgentInsufficientClusterResources struct {
  1125  	ClusterAgentVmPoweredOff
  1126  }
  1127  
  1128  func init() {
  1129  	types.Add("eam:ClusterAgentInsufficientClusterResources", reflect.TypeOf((*ClusterAgentInsufficientClusterResources)(nil)).Elem())
  1130  	types.AddMinAPIVersionForType("eam:ClusterAgentInsufficientClusterResources", "6.9")
  1131  }
  1132  
  1133  // The cluster agent Virtual Machine cannot be deployed, because any of the
  1134  // configured datastores does not have enough disk space.
  1135  //
  1136  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1137  // redeploys the agent Virtual Machine. However, the problem is likely to
  1138  // persist until enough disk space is freed up on the cluster datastore.
  1139  //
  1140  // This structure may be used only with operations rendered under `/eam`.
  1141  type ClusterAgentInsufficientClusterSpace struct {
  1142  	ClusterAgentVmNotDeployed
  1143  }
  1144  
  1145  func init() {
  1146  	types.Add("eam:ClusterAgentInsufficientClusterSpace", reflect.TypeOf((*ClusterAgentInsufficientClusterSpace)(nil)).Elem())
  1147  	types.AddMinAPIVersionForType("eam:ClusterAgentInsufficientClusterSpace", "6.9")
  1148  }
  1149  
  1150  // Invalid configuration is preventing a cluster agent virtual machine
  1151  // operation.
  1152  //
  1153  // Typically the attached error indicates the particular reason why
  1154  // vSphere ESX Agent Manager is unable to power on or reconfigure the agent
  1155  // virtual machine.
  1156  //
  1157  // This is a passive remediable issue. To remediate update the virtual machine
  1158  // configuration.
  1159  //
  1160  // This structure may be used only with operations rendered under `/eam`.
  1161  type ClusterAgentInvalidConfig struct {
  1162  	ClusterAgentVmIssue
  1163  
  1164  	// The error, that caused this issue.
  1165  	//
  1166  	// It must be either MethodFault or
  1167  	// RuntimeFault.
  1168  	Error types.AnyType `xml:"error,typeattr" json:"error"`
  1169  }
  1170  
  1171  func init() {
  1172  	types.Add("eam:ClusterAgentInvalidConfig", reflect.TypeOf((*ClusterAgentInvalidConfig)(nil)).Elem())
  1173  	types.AddMinAPIVersionForType("eam:ClusterAgentInvalidConfig", "6.9")
  1174  }
  1175  
  1176  // The cluster agent Virtual Machine cannot be deployed, because any of the
  1177  // configured datastores does not exist on the cluster.
  1178  //
  1179  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1180  // redeploys the agent Virtual Machine. However, the problem is likely to
  1181  // persist until required Virtual Machine datastores are configured on the
  1182  // cluster.
  1183  //
  1184  // This structure may be used only with operations rendered under `/eam`.
  1185  type ClusterAgentMissingClusterVmDatastore struct {
  1186  	ClusterAgentVmNotDeployed
  1187  
  1188  	// A non-empty array of cluster agent VM datastores that are missing on the
  1189  	// cluster.
  1190  	//
  1191  	// Refers instances of `Datastore`.
  1192  	MissingDatastores []types.ManagedObjectReference `xml:"missingDatastores,omitempty" json:"missingDatastores,omitempty"`
  1193  }
  1194  
  1195  func init() {
  1196  	types.Add("eam:ClusterAgentMissingClusterVmDatastore", reflect.TypeOf((*ClusterAgentMissingClusterVmDatastore)(nil)).Elem())
  1197  	types.AddMinAPIVersionForType("eam:ClusterAgentMissingClusterVmDatastore", "6.9")
  1198  }
  1199  
  1200  // The cluster agent Virtual Machine cannot be deployed, because the configured
  1201  // networks do not exist on the cluster.
  1202  //
  1203  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1204  // redeploys the agent Virtual Machine. However, the problem is likely to
  1205  // persist until required Virtual Machine networks are configured on the
  1206  // cluster.
  1207  //
  1208  // This structure may be used only with operations rendered under `/eam`.
  1209  type ClusterAgentMissingClusterVmNetwork struct {
  1210  	ClusterAgentVmNotDeployed
  1211  
  1212  	// A non-empty array of cluster agent VM networks that are required on the
  1213  	// cluster.
  1214  	//
  1215  	// Refers instances of `Network`.
  1216  	MissingNetworks []types.ManagedObjectReference `xml:"missingNetworks,omitempty" json:"missingNetworks,omitempty"`
  1217  	// The names of the cluster agent VM networks.
  1218  	NetworkNames []string `xml:"networkNames,omitempty" json:"networkNames,omitempty"`
  1219  }
  1220  
  1221  func init() {
  1222  	types.Add("eam:ClusterAgentMissingClusterVmNetwork", reflect.TypeOf((*ClusterAgentMissingClusterVmNetwork)(nil)).Elem())
  1223  	types.AddMinAPIVersionForType("eam:ClusterAgentMissingClusterVmNetwork", "6.9")
  1224  }
  1225  
  1226  // A cluster agent virtual machine needs to be provisioned, but an OVF property
  1227  // is either missing or has an invalid value.
  1228  //
  1229  // This is a passive remediable issue. To remediate, update the OVF environment
  1230  // in the agent configuration used to provision the agent virtual machine.
  1231  //
  1232  // This structure may be used only with operations rendered under `/eam`.
  1233  type ClusterAgentOvfInvalidProperty struct {
  1234  	ClusterAgentAgentIssue
  1235  
  1236  	// An optional list of errors that caused this issue.
  1237  	//
  1238  	// These errors are
  1239  	// generated by the vCenter server.
  1240  	Error []types.LocalizedMethodFault `xml:"error,omitempty" json:"error,omitempty"`
  1241  }
  1242  
  1243  func init() {
  1244  	types.Add("eam:ClusterAgentOvfInvalidProperty", reflect.TypeOf((*ClusterAgentOvfInvalidProperty)(nil)).Elem())
  1245  	types.AddMinAPIVersionForType("eam:ClusterAgentOvfInvalidProperty", "6.9")
  1246  }
  1247  
  1248  // Base class for all cluster bound Virtual Machines.
  1249  //
  1250  // This structure may be used only with operations rendered under `/eam`.
  1251  type ClusterAgentVmIssue struct {
  1252  	ClusterAgentAgentIssue
  1253  
  1254  	// The Virtual Machine to which this issue is related.
  1255  	//
  1256  	// Refers instance of `VirtualMachine`.
  1257  	Vm types.ManagedObjectReference `xml:"vm" json:"vm"`
  1258  }
  1259  
  1260  func init() {
  1261  	types.Add("eam:ClusterAgentVmIssue", reflect.TypeOf((*ClusterAgentVmIssue)(nil)).Elem())
  1262  	types.AddMinAPIVersionForType("eam:ClusterAgentVmIssue", "6.9")
  1263  }
  1264  
  1265  // A cluster agent Virtual Machine is expected to be deployed on a cluster, but
  1266  // the cluster agent Virtual Machine has not been deployed or has been exlicitly
  1267  // deleted from the cluster.
  1268  //
  1269  // Typically more specific issue (a subclass of this
  1270  // issue) indicates the particular reason why vSphere ESX Agent Manager was
  1271  // unable to deploy the cluster agent Virtual Machine.
  1272  //
  1273  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1274  // redeploys the cluster agent Virtual Machine.
  1275  //
  1276  // This structure may be used only with operations rendered under `/eam`.
  1277  type ClusterAgentVmNotDeployed struct {
  1278  	ClusterAgentAgentIssue
  1279  }
  1280  
  1281  func init() {
  1282  	types.Add("eam:ClusterAgentVmNotDeployed", reflect.TypeOf((*ClusterAgentVmNotDeployed)(nil)).Elem())
  1283  	types.AddMinAPIVersionForType("eam:ClusterAgentVmNotDeployed", "6.9")
  1284  }
  1285  
  1286  // The cluster agent Virtual Machine can not be removed from a cluster.
  1287  //
  1288  // Typically the description indicates the particular reason why vSphere ESX
  1289  // Agent Manager was unable to remove the cluster agent Virtual Machine.
  1290  //
  1291  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1292  // removes the cluster agent Virtual Machine.
  1293  //
  1294  // This structure may be used only with operations rendered under `/eam`.
  1295  type ClusterAgentVmNotRemoved struct {
  1296  	ClusterAgentVmIssue
  1297  }
  1298  
  1299  func init() {
  1300  	types.Add("eam:ClusterAgentVmNotRemoved", reflect.TypeOf((*ClusterAgentVmNotRemoved)(nil)).Elem())
  1301  	types.AddMinAPIVersionForType("eam:ClusterAgentVmNotRemoved", "6.9")
  1302  }
  1303  
  1304  // A cluster agent Virtual Machine is expected to be powered on, but the agent
  1305  // Virtual Machine is powered off.
  1306  //
  1307  // Typically more specific issue (a subclass of
  1308  // this issue) indicates the particular reason why vSphere ESX Agent Manager was
  1309  // unable to power on the cluster agent Virtual Machine.
  1310  //
  1311  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1312  // powers on the cluster agent Virtual Machine.
  1313  //
  1314  // This structure may be used only with operations rendered under `/eam`.
  1315  type ClusterAgentVmPoweredOff struct {
  1316  	ClusterAgentVmIssue
  1317  }
  1318  
  1319  func init() {
  1320  	types.Add("eam:ClusterAgentVmPoweredOff", reflect.TypeOf((*ClusterAgentVmPoweredOff)(nil)).Elem())
  1321  	types.AddMinAPIVersionForType("eam:ClusterAgentVmPoweredOff", "6.9")
  1322  }
  1323  
  1324  // A cluster agent virtual machine is expected to be powered off, but the agent
  1325  // virtual machine is powered on.
  1326  //
  1327  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1328  // powers off the agent virtual machine.
  1329  //
  1330  // This structure may be used only with operations rendered under `/eam`.
  1331  type ClusterAgentVmPoweredOn struct {
  1332  	ClusterAgentVmIssue
  1333  }
  1334  
  1335  func init() {
  1336  	types.Add("eam:ClusterAgentVmPoweredOn", reflect.TypeOf((*ClusterAgentVmPoweredOn)(nil)).Elem())
  1337  	types.AddMinAPIVersionForType("eam:ClusterAgentVmPoweredOn", "6.9")
  1338  }
  1339  
  1340  // A cluster agent Virtual Machine is expected to be powered on, but the agent
  1341  // Virtual Machine is suspended.
  1342  //
  1343  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1344  // powers on the cluster agent Virtual Machine.
  1345  //
  1346  // This structure may be used only with operations rendered under `/eam`.
  1347  type ClusterAgentVmSuspended struct {
  1348  	ClusterAgentVmIssue
  1349  }
  1350  
  1351  func init() {
  1352  	types.Add("eam:ClusterAgentVmSuspended", reflect.TypeOf((*ClusterAgentVmSuspended)(nil)).Elem())
  1353  	types.AddMinAPIVersionForType("eam:ClusterAgentVmSuspended", "6.9")
  1354  }
  1355  
  1356  type CreateAgency CreateAgencyRequestType
  1357  
  1358  func init() {
  1359  	types.Add("eam:CreateAgency", reflect.TypeOf((*CreateAgency)(nil)).Elem())
  1360  }
  1361  
  1362  // The parameters of `EsxAgentManager.CreateAgency`.
  1363  type CreateAgencyRequestType struct {
  1364  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1365  	// The configuration that describes how to deploy the agents in the
  1366  	// created agency.
  1367  	AgencyConfigInfo BaseAgencyConfigInfo `xml:"agencyConfigInfo,typeattr" json:"agencyConfigInfo"`
  1368  	// Deprecated. No sence to create agency in other state than
  1369  	// <code>enabled</code>. <code>disabled</code> is deprecated
  1370  	// whereas <code>uninstalled</code> is useless.
  1371  	// The initial goal state of the agency. See
  1372  	// `EamObjectRuntimeInfoGoalState_enum`.
  1373  	InitialGoalState string `xml:"initialGoalState" json:"initialGoalState"`
  1374  }
  1375  
  1376  func init() {
  1377  	types.Add("eam:CreateAgencyRequestType", reflect.TypeOf((*CreateAgencyRequestType)(nil)).Elem())
  1378  }
  1379  
  1380  type CreateAgencyResponse struct {
  1381  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  1382  }
  1383  
  1384  type DestroyAgency DestroyAgencyRequestType
  1385  
  1386  func init() {
  1387  	types.Add("eam:DestroyAgency", reflect.TypeOf((*DestroyAgency)(nil)).Elem())
  1388  }
  1389  
  1390  type DestroyAgencyRequestType struct {
  1391  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1392  }
  1393  
  1394  func init() {
  1395  	types.Add("eam:DestroyAgencyRequestType", reflect.TypeOf((*DestroyAgencyRequestType)(nil)).Elem())
  1396  }
  1397  
  1398  type DestroyAgencyResponse struct {
  1399  }
  1400  
  1401  // Thrown when trying to modify state over disabled clusters.
  1402  //
  1403  // This structure may be used only with operations rendered under `/eam`.
  1404  type DisabledClusterFault struct {
  1405  	EamAppFault
  1406  
  1407  	// The MoRefs of the disabled compute resources.
  1408  	//
  1409  	// Refers instances of `ComputeResource`.
  1410  	DisabledComputeResource []types.ManagedObjectReference `xml:"disabledComputeResource,omitempty" json:"disabledComputeResource,omitempty"`
  1411  }
  1412  
  1413  func init() {
  1414  	types.Add("eam:DisabledClusterFault", reflect.TypeOf((*DisabledClusterFault)(nil)).Elem())
  1415  	types.AddMinAPIVersionForType("eam:DisabledClusterFault", "7.6")
  1416  }
  1417  
  1418  // Application related error
  1419  // As opposed to system errors, application ones are always function of the
  1420  // input and the current state.
  1421  //
  1422  // They occur always upon same conditions. In most
  1423  // of the cases they are recoverable, i.e. the client can determine what is
  1424  // wrong and know how to recover.
  1425  // NOTE: Since there is not yet need to distinguish among specific error
  1426  // sub-types then we define a common type. Tomorrow, if necessary, we can add an
  1427  // additional level of detailed exception types and make this one abstract.
  1428  //
  1429  // This structure may be used only with operations rendered under `/eam`.
  1430  type EamAppFault struct {
  1431  	EamRuntimeFault
  1432  }
  1433  
  1434  func init() {
  1435  	types.Add("eam:EamAppFault", reflect.TypeOf((*EamAppFault)(nil)).Elem())
  1436  	types.AddMinAPIVersionForType("eam:EamAppFault", "6.0")
  1437  }
  1438  
  1439  type EamAppFaultFault BaseEamAppFault
  1440  
  1441  func init() {
  1442  	types.Add("eam:EamAppFaultFault", reflect.TypeOf((*EamAppFaultFault)(nil)).Elem())
  1443  }
  1444  
  1445  // The common base type for all vSphere ESX Agent Manager exceptions.
  1446  //
  1447  // # TODO migrate to EamRuntimeFault
  1448  //
  1449  // This structure may be used only with operations rendered under `/eam`.
  1450  type EamFault struct {
  1451  	types.MethodFault
  1452  }
  1453  
  1454  func init() {
  1455  	types.Add("eam:EamFault", reflect.TypeOf((*EamFault)(nil)).Elem())
  1456  }
  1457  
  1458  type EamFaultFault BaseEamFault
  1459  
  1460  func init() {
  1461  	types.Add("eam:EamFaultFault", reflect.TypeOf((*EamFaultFault)(nil)).Elem())
  1462  }
  1463  
  1464  // IO error
  1465  // NOTE: Since this type is a first of system-type errors we do not introduce a
  1466  // common base type for them.
  1467  //
  1468  // Once add a second system type exception though, it
  1469  // should be introduced.
  1470  //
  1471  // This structure may be used only with operations rendered under `/eam`.
  1472  type EamIOFault struct {
  1473  	EamRuntimeFault
  1474  }
  1475  
  1476  func init() {
  1477  	types.Add("eam:EamIOFault", reflect.TypeOf((*EamIOFault)(nil)).Elem())
  1478  	types.AddMinAPIVersionForType("eam:EamIOFault", "6.0")
  1479  }
  1480  
  1481  type EamIOFaultFault EamIOFault
  1482  
  1483  func init() {
  1484  	types.Add("eam:EamIOFaultFault", reflect.TypeOf((*EamIOFaultFault)(nil)).Elem())
  1485  }
  1486  
  1487  // Thrown when a user cannot be authenticated.
  1488  //
  1489  // This structure may be used only with operations rendered under `/eam`.
  1490  type EamInvalidLogin struct {
  1491  	EamRuntimeFault
  1492  }
  1493  
  1494  func init() {
  1495  	types.Add("eam:EamInvalidLogin", reflect.TypeOf((*EamInvalidLogin)(nil)).Elem())
  1496  }
  1497  
  1498  type EamInvalidLoginFault EamInvalidLogin
  1499  
  1500  func init() {
  1501  	types.Add("eam:EamInvalidLoginFault", reflect.TypeOf((*EamInvalidLoginFault)(nil)).Elem())
  1502  }
  1503  
  1504  // Thrown when a user is not allowed to execute an operation.
  1505  //
  1506  // This structure may be used only with operations rendered under `/eam`.
  1507  type EamInvalidState struct {
  1508  	EamAppFault
  1509  }
  1510  
  1511  func init() {
  1512  	types.Add("eam:EamInvalidState", reflect.TypeOf((*EamInvalidState)(nil)).Elem())
  1513  	types.AddMinAPIVersionForType("eam:EamInvalidState", "7.1")
  1514  }
  1515  
  1516  // Indicates for an invalid or unknown Vib package structure and/or format.
  1517  //
  1518  // This structure may be used only with operations rendered under `/eam`.
  1519  type EamInvalidVibPackage struct {
  1520  	EamRuntimeFault
  1521  }
  1522  
  1523  func init() {
  1524  	types.Add("eam:EamInvalidVibPackage", reflect.TypeOf((*EamInvalidVibPackage)(nil)).Elem())
  1525  }
  1526  
  1527  type EamInvalidVibPackageFault EamInvalidVibPackage
  1528  
  1529  func init() {
  1530  	types.Add("eam:EamInvalidVibPackageFault", reflect.TypeOf((*EamInvalidVibPackageFault)(nil)).Elem())
  1531  }
  1532  
  1533  // The <code>RuntimeInfo</code> represents the runtime information of the vSphere ESX Agent
  1534  // Manager managed
  1535  // objects `Agency` and `Agent`.
  1536  //
  1537  // The runtime information provides
  1538  // two kinds of information, namely, the
  1539  // desired goal state of the entity and the status with regards to conforming
  1540  // to that goal state.
  1541  //
  1542  // This structure may be used only with operations rendered under `/eam`.
  1543  type EamObjectRuntimeInfo struct {
  1544  	types.DynamicData
  1545  
  1546  	// The health of the managed entity.
  1547  	//
  1548  	// This denotes how well the entity conforms to the
  1549  	// goal state.
  1550  	//
  1551  	// See also `EamObjectRuntimeInfoStatus_enum`.
  1552  	Status string `xml:"status" json:"status"`
  1553  	// Current issues that have been detected for this entity.
  1554  	//
  1555  	// Each issue can be remediated
  1556  	// by invoking `EamObject.Resolve` or `EamObject.ResolveAll`.
  1557  	Issue []BaseIssue `xml:"issue,omitempty,typeattr" json:"issue,omitempty"`
  1558  	// The desired state of the entity.
  1559  	//
  1560  	// See also `EamObjectRuntimeInfoGoalState_enum`.
  1561  	GoalState string `xml:"goalState" json:"goalState"`
  1562  	// The `Agent` or `Agency` with which this <code>RuntimeInfo</code> object is associated.
  1563  	//
  1564  	// Refers instance of `EamObject`.
  1565  	Entity types.ManagedObjectReference `xml:"entity" json:"entity"`
  1566  }
  1567  
  1568  func init() {
  1569  	types.Add("eam:EamObjectRuntimeInfo", reflect.TypeOf((*EamObjectRuntimeInfo)(nil)).Elem())
  1570  }
  1571  
  1572  // The common base type for all vSphere ESX Agent Manager runtime exceptions.
  1573  //
  1574  // This structure may be used only with operations rendered under `/eam`.
  1575  type EamRuntimeFault struct {
  1576  	types.RuntimeFault
  1577  }
  1578  
  1579  func init() {
  1580  	types.Add("eam:EamRuntimeFault", reflect.TypeOf((*EamRuntimeFault)(nil)).Elem())
  1581  }
  1582  
  1583  type EamRuntimeFaultFault BaseEamRuntimeFault
  1584  
  1585  func init() {
  1586  	types.Add("eam:EamRuntimeFaultFault", reflect.TypeOf((*EamRuntimeFaultFault)(nil)).Elem())
  1587  }
  1588  
  1589  // Thrown when calling vSphere ESX Agent Manager when it is not fully
  1590  // initialized.
  1591  //
  1592  // This structure may be used only with operations rendered under `/eam`.
  1593  type EamServiceNotInitialized struct {
  1594  	EamRuntimeFault
  1595  }
  1596  
  1597  func init() {
  1598  	types.Add("eam:EamServiceNotInitialized", reflect.TypeOf((*EamServiceNotInitialized)(nil)).Elem())
  1599  	types.AddMinAPIVersionForType("eam:EamServiceNotInitialized", "6.5")
  1600  }
  1601  
  1602  type EamServiceNotInitializedFault EamServiceNotInitialized
  1603  
  1604  func init() {
  1605  	types.Add("eam:EamServiceNotInitializedFault", reflect.TypeOf((*EamServiceNotInitializedFault)(nil)).Elem())
  1606  }
  1607  
  1608  // System fault.
  1609  //
  1610  // This structure may be used only with operations rendered under `/eam`.
  1611  type EamSystemFault struct {
  1612  	EamRuntimeFault
  1613  }
  1614  
  1615  func init() {
  1616  	types.Add("eam:EamSystemFault", reflect.TypeOf((*EamSystemFault)(nil)).Elem())
  1617  	types.AddMinAPIVersionForType("eam:EamSystemFault", "6.5")
  1618  }
  1619  
  1620  type EamSystemFaultFault EamSystemFault
  1621  
  1622  func init() {
  1623  	types.Add("eam:EamSystemFaultFault", reflect.TypeOf((*EamSystemFaultFault)(nil)).Elem())
  1624  }
  1625  
  1626  // Extensible issue class used by solutions to add custom issues to agents.
  1627  //
  1628  // When resolved, the issue is removed from the agent and an event is generated.
  1629  //
  1630  // This structure may be used only with operations rendered under `/eam`.
  1631  type ExtensibleIssue struct {
  1632  	Issue
  1633  
  1634  	// Unique string for this type of issue.
  1635  	//
  1636  	// The type must match an event registered
  1637  	// by the solution as part of its extension.
  1638  	TypeId string `xml:"typeId" json:"typeId"`
  1639  	// Arguments associated with the typeId.
  1640  	Argument []types.KeyAnyValue `xml:"argument,omitempty" json:"argument,omitempty"`
  1641  	// A managed object reference to the object this issue is related to.
  1642  	//
  1643  	// Refers instance of `ManagedEntity`.
  1644  	Target *types.ManagedObjectReference `xml:"target,omitempty" json:"target,omitempty"`
  1645  	// An optional agent this issue pertains
  1646  	//
  1647  	// Refers instance of `Agent`.
  1648  	Agent *types.ManagedObjectReference `xml:"agent,omitempty" json:"agent,omitempty"`
  1649  	// An optional agency this issue pertains
  1650  	//
  1651  	// Refers instance of `Agency`.
  1652  	Agency *types.ManagedObjectReference `xml:"agency,omitempty" json:"agency,omitempty"`
  1653  }
  1654  
  1655  func init() {
  1656  	types.Add("eam:ExtensibleIssue", reflect.TypeOf((*ExtensibleIssue)(nil)).Elem())
  1657  	types.AddMinAPIVersionForType("eam:ExtensibleIssue", "2.0")
  1658  }
  1659  
  1660  type GetMaintenanceModePolicyRequestType struct {
  1661  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1662  }
  1663  
  1664  func init() {
  1665  	types.Add("eam:GetMaintenanceModePolicyRequestType", reflect.TypeOf((*GetMaintenanceModePolicyRequestType)(nil)).Elem())
  1666  }
  1667  
  1668  // Contains information for a raised hook.
  1669  //
  1670  // This structure may be used only with operations rendered under `/eam`.
  1671  type HooksHookInfo struct {
  1672  	types.DynamicData
  1673  
  1674  	// Virtual Machine, the hook was raised for.
  1675  	//
  1676  	// Refers instance of `VirtualMachine`.
  1677  	Vm types.ManagedObjectReference `xml:"vm" json:"vm"`
  1678  	// Solution the Virtual Machine belongs to.
  1679  	Solution string `xml:"solution" json:"solution"`
  1680  	// Type of the hook `HooksHookType_enum`.
  1681  	HookType string `xml:"hookType" json:"hookType"`
  1682  	// Time the hook was raised.
  1683  	RaisedAt time.Time `xml:"raisedAt" json:"raisedAt"`
  1684  }
  1685  
  1686  func init() {
  1687  	types.Add("eam:HooksHookInfo", reflect.TypeOf((*HooksHookInfo)(nil)).Elem())
  1688  }
  1689  
  1690  // Limits the hooks reported to the user.
  1691  //
  1692  // This structure may be used only with operations rendered under `/eam`.
  1693  type HooksHookListSpec struct {
  1694  	types.DynamicData
  1695  
  1696  	// If specified - will report hooks only for agents from the specified
  1697  	// solutions, otherwise - will report hooks for agents from all solutions.
  1698  	Solutions []string `xml:"solutions,omitempty" json:"solutions,omitempty"`
  1699  	// If specified - will report hooks only for agents on the specified
  1700  	// hosts, otherwise - will report hooks for agents on all hosts.
  1701  	//
  1702  	// Refers instances of `HostSystem`.
  1703  	Hosts []types.ManagedObjectReference `xml:"hosts,omitempty" json:"hosts,omitempty"`
  1704  }
  1705  
  1706  func init() {
  1707  	types.Add("eam:HooksHookListSpec", reflect.TypeOf((*HooksHookListSpec)(nil)).Elem())
  1708  }
  1709  
  1710  // Specification for marking a raised hook on an agent Virtual Machine as
  1711  // processed.
  1712  //
  1713  // This structure may be used only with operations rendered under `/eam`.
  1714  type HooksMarkAsProcessedSpec struct {
  1715  	types.DynamicData
  1716  
  1717  	// Virtual Machine to mark a hook as processed.
  1718  	//
  1719  	// Refers instance of `VirtualMachine`.
  1720  	Vm types.ManagedObjectReference `xml:"vm" json:"vm"`
  1721  	// Type of hook to be marked as processed `HooksHookType_enum`.
  1722  	HookType string `xml:"hookType" json:"hookType"`
  1723  	// `True` - if the hook was processed successfully, `False` -
  1724  	// if the hook could not be processed.
  1725  	Success bool `xml:"success" json:"success"`
  1726  }
  1727  
  1728  func init() {
  1729  	types.Add("eam:HooksMarkAsProcessedSpec", reflect.TypeOf((*HooksMarkAsProcessedSpec)(nil)).Elem())
  1730  }
  1731  
  1732  // An agent virtual machine operation is expected to be initiated on host, but
  1733  // the agent virtual machine operation has not been initiated.
  1734  //
  1735  // The reason is
  1736  // that the host is in maintenance mode.
  1737  //
  1738  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1739  // takes the host out of maintenance mode and initiates the agent virtual
  1740  // machine operation.
  1741  //
  1742  // Resolving this issue in vSphere Lifecyle Manager environemnt will be no-op.
  1743  // In those cases user must take the host out of Maintenance Mode manually or
  1744  // wait vSphere Lifecycle Maanger cluster remediation to complete (if any).
  1745  //
  1746  // This structure may be used only with operations rendered under `/eam`.
  1747  type HostInMaintenanceMode struct {
  1748  	VmDeployed
  1749  }
  1750  
  1751  func init() {
  1752  	types.Add("eam:HostInMaintenanceMode", reflect.TypeOf((*HostInMaintenanceMode)(nil)).Elem())
  1753  }
  1754  
  1755  // An agent virtual machine is expected to be removed from a host, but the agent virtual machine has not
  1756  // been removed.
  1757  //
  1758  // The reason is that the host is in standby mode.
  1759  //
  1760  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager puts the host in standby mode
  1761  // and removes the agent virtual machine.
  1762  //
  1763  // This structure may be used only with operations rendered under `/eam`.
  1764  type HostInStandbyMode struct {
  1765  	VmDeployed
  1766  }
  1767  
  1768  func init() {
  1769  	types.Add("eam:HostInStandbyMode", reflect.TypeOf((*HostInStandbyMode)(nil)).Elem())
  1770  }
  1771  
  1772  // Deprecated all host issues were removed.
  1773  //
  1774  // Base class for all host issues.
  1775  //
  1776  // This structure may be used only with operations rendered under `/eam`.
  1777  type HostIssue struct {
  1778  	Issue
  1779  
  1780  	// The host to which the issue is related.
  1781  	//
  1782  	// Refers instance of `HostSystem`.
  1783  	Host types.ManagedObjectReference `xml:"host" json:"host"`
  1784  }
  1785  
  1786  func init() {
  1787  	types.Add("eam:HostIssue", reflect.TypeOf((*HostIssue)(nil)).Elem())
  1788  }
  1789  
  1790  // Deprecated hostPoweredOff will no longer be used, instead
  1791  // `ManagedHostNotReachable` will be raised.
  1792  //
  1793  // An agent virtual machine is expected to be removed from a host, but the agent
  1794  // virtual machine has not been removed.
  1795  //
  1796  // The reason is that the host is powered
  1797  // off.
  1798  //
  1799  // This is not a remediable issue. To remediate, power on the host.
  1800  //
  1801  // This structure may be used only with operations rendered under `/eam`.
  1802  type HostPoweredOff struct {
  1803  	VmDeployed
  1804  }
  1805  
  1806  func init() {
  1807  	types.Add("eam:HostPoweredOff", reflect.TypeOf((*HostPoweredOff)(nil)).Elem())
  1808  }
  1809  
  1810  // Live VIB operation failed.
  1811  //
  1812  // An immediate reboot is required to clear live VIB
  1813  // operation failure.
  1814  //
  1815  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1816  // puts the host into maintenance mode and reboots it.
  1817  //
  1818  // This structure may be used only with operations rendered under `/eam`.
  1819  type ImmediateHostRebootRequired struct {
  1820  	VibIssue
  1821  }
  1822  
  1823  func init() {
  1824  	types.Add("eam:ImmediateHostRebootRequired", reflect.TypeOf((*ImmediateHostRebootRequired)(nil)).Elem())
  1825  	types.AddMinAPIVersionForType("eam:ImmediateHostRebootRequired", "6.8")
  1826  }
  1827  
  1828  // An agent virtual machine is expected to be deployed on a host, but the agent could not be
  1829  // deployed because it was incompatible with the host.
  1830  //
  1831  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager redeployes the agent. However,
  1832  // the problem is likely to persist until either the host or the solution has been
  1833  // upgraded, so that the agent will become compatible with the host.
  1834  //
  1835  // This structure may be used only with operations rendered under `/eam`.
  1836  type IncompatibleHostVersion struct {
  1837  	VmNotDeployed
  1838  }
  1839  
  1840  func init() {
  1841  	types.Add("eam:IncompatibleHostVersion", reflect.TypeOf((*IncompatibleHostVersion)(nil)).Elem())
  1842  }
  1843  
  1844  // Deprecated this issue is no longer raised by EAM. It is replaced by
  1845  // `InvalidConfig`.
  1846  //
  1847  // An agent virtual machine is expected to be powered on, but there are no free IP addresses in the
  1848  // agent's pool of virtual machine IP addresses.
  1849  //
  1850  // To remediate, free some IP addresses or add some more to the IP pool and invoke
  1851  // <code>resolve</code>.
  1852  //
  1853  // This structure may be used only with operations rendered under `/eam`.
  1854  type InsufficientIpAddresses struct {
  1855  	VmPoweredOff
  1856  
  1857  	// The agent virtual machine network.
  1858  	//
  1859  	// Refers instance of `Network`.
  1860  	Network types.ManagedObjectReference `xml:"network" json:"network"`
  1861  }
  1862  
  1863  func init() {
  1864  	types.Add("eam:InsufficientIpAddresses", reflect.TypeOf((*InsufficientIpAddresses)(nil)).Elem())
  1865  }
  1866  
  1867  // An agent virtual machine is expected to be deployed on a host, but the agent virtual machine could not be
  1868  // deployed because the host does not have enough free CPU or memory resources.
  1869  //
  1870  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager redeploys the agent virtual machine. However,
  1871  // the problem is likely to persist until enough CPU and memory resources are made available.
  1872  //
  1873  // This structure may be used only with operations rendered under `/eam`.
  1874  type InsufficientResources struct {
  1875  	VmNotDeployed
  1876  }
  1877  
  1878  func init() {
  1879  	types.Add("eam:InsufficientResources", reflect.TypeOf((*InsufficientResources)(nil)).Elem())
  1880  }
  1881  
  1882  // An agent virtual machine is expected to be deployed on a host, but the agent virtual machine could not be
  1883  // deployed because the host's agent datastore did not have enough free space.
  1884  //
  1885  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager redeploys the agent virtual machine. However,
  1886  // the problem is likely to persist until either space is freed up on the host's agent
  1887  // virtual machine datastore or a new agent virtual machine datastore with enough free space is configured.
  1888  //
  1889  // This structure may be used only with operations rendered under `/eam`.
  1890  type InsufficientSpace struct {
  1891  	VmNotDeployed
  1892  }
  1893  
  1894  func init() {
  1895  	types.Add("eam:InsufficientSpace", reflect.TypeOf((*InsufficientSpace)(nil)).Elem())
  1896  }
  1897  
  1898  // Cannot remove the Baseline associated with an Agency from VUM.
  1899  //
  1900  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1901  // retries the delete operation.
  1902  // Note: In future this issue will denote also the removal of the Agency
  1903  // software (VIBs) from VUM software depot once VUM provides an API for that.
  1904  //
  1905  // This structure may be used only with operations rendered under `/eam`.
  1906  type IntegrityAgencyCannotDeleteSoftware struct {
  1907  	IntegrityAgencyVUMIssue
  1908  }
  1909  
  1910  func init() {
  1911  	types.Add("eam:IntegrityAgencyCannotDeleteSoftware", reflect.TypeOf((*IntegrityAgencyCannotDeleteSoftware)(nil)).Elem())
  1912  	types.AddMinAPIVersionForType("eam:IntegrityAgencyCannotDeleteSoftware", "6.7")
  1913  }
  1914  
  1915  // The software defined by an Agency cannot be staged in VUM.
  1916  //
  1917  // The staging
  1918  // operation consists of the following steps:
  1919  //   - Upload the Agency software (VIBs) to the VUM depot.
  1920  //   - Create or update a VUM Baseline with the Agency software and scope.
  1921  //
  1922  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  1923  // retries the stage operation.
  1924  //
  1925  // This structure may be used only with operations rendered under `/eam`.
  1926  type IntegrityAgencyCannotStageSoftware struct {
  1927  	IntegrityAgencyVUMIssue
  1928  }
  1929  
  1930  func init() {
  1931  	types.Add("eam:IntegrityAgencyCannotStageSoftware", reflect.TypeOf((*IntegrityAgencyCannotStageSoftware)(nil)).Elem())
  1932  	types.AddMinAPIVersionForType("eam:IntegrityAgencyCannotStageSoftware", "6.7")
  1933  }
  1934  
  1935  // Base class for all issues which occurred during EAM communication with
  1936  // vSphere Update Manager (VUM).
  1937  //
  1938  // This structure may be used only with operations rendered under `/eam`.
  1939  type IntegrityAgencyVUMIssue struct {
  1940  	AgencyIssue
  1941  }
  1942  
  1943  func init() {
  1944  	types.Add("eam:IntegrityAgencyVUMIssue", reflect.TypeOf((*IntegrityAgencyVUMIssue)(nil)).Elem())
  1945  	types.AddMinAPIVersionForType("eam:IntegrityAgencyVUMIssue", "6.7")
  1946  }
  1947  
  1948  // VUM service is not available - its registered SOAP endpoint cannot be
  1949  // accessed or it is malfunctioning.
  1950  //
  1951  // This is an active and passive remediable issue. To remediate, vSphere ESX
  1952  // Agent Manager retries to access VUM service.
  1953  //
  1954  // This structure may be used only with operations rendered under `/eam`.
  1955  type IntegrityAgencyVUMUnavailable struct {
  1956  	IntegrityAgencyVUMIssue
  1957  }
  1958  
  1959  func init() {
  1960  	types.Add("eam:IntegrityAgencyVUMUnavailable", reflect.TypeOf((*IntegrityAgencyVUMUnavailable)(nil)).Elem())
  1961  	types.AddMinAPIVersionForType("eam:IntegrityAgencyVUMUnavailable", "6.7")
  1962  }
  1963  
  1964  // An <code>InvalidAgencyScope</code> fault is thrown when the scope in an
  1965  // `AgencyConfigInfo` is invalid.
  1966  //
  1967  // See also `AgencyConfigInfo`.
  1968  //
  1969  // This structure may be used only with operations rendered under `/eam`.
  1970  type InvalidAgencyScope struct {
  1971  	EamFault
  1972  
  1973  	// The MoRefs of the unknown compute resources.
  1974  	//
  1975  	// Refers instances of `ComputeResource`.
  1976  	UnknownComputeResource []types.ManagedObjectReference `xml:"unknownComputeResource,omitempty" json:"unknownComputeResource,omitempty"`
  1977  }
  1978  
  1979  func init() {
  1980  	types.Add("eam:InvalidAgencyScope", reflect.TypeOf((*InvalidAgencyScope)(nil)).Elem())
  1981  }
  1982  
  1983  type InvalidAgencyScopeFault InvalidAgencyScope
  1984  
  1985  func init() {
  1986  	types.Add("eam:InvalidAgencyScopeFault", reflect.TypeOf((*InvalidAgencyScopeFault)(nil)).Elem())
  1987  }
  1988  
  1989  // An <code>InvalidAgentConfiguration</code> fault is thrown when the agent
  1990  // configuration of an agency configuration is empty or invalid.
  1991  //
  1992  // See also `AgencyConfigInfo`.
  1993  //
  1994  // This structure may be used only with operations rendered under `/eam`.
  1995  type InvalidAgentConfiguration struct {
  1996  	EamFault
  1997  
  1998  	// An optional invalid agent configuration.
  1999  	InvalidAgentConfiguration *AgentConfigInfo `xml:"invalidAgentConfiguration,omitempty" json:"invalidAgentConfiguration,omitempty"`
  2000  	// The invalid field.
  2001  	InvalidField string `xml:"invalidField,omitempty" json:"invalidField,omitempty"`
  2002  }
  2003  
  2004  func init() {
  2005  	types.Add("eam:InvalidAgentConfiguration", reflect.TypeOf((*InvalidAgentConfiguration)(nil)).Elem())
  2006  }
  2007  
  2008  type InvalidAgentConfigurationFault InvalidAgentConfiguration
  2009  
  2010  func init() {
  2011  	types.Add("eam:InvalidAgentConfigurationFault", reflect.TypeOf((*InvalidAgentConfigurationFault)(nil)).Elem())
  2012  }
  2013  
  2014  // Invalid configuration is preventing a virtual machine operation.
  2015  //
  2016  // Typically
  2017  // the attached error indicates the particular reason why vSphere ESX Agent
  2018  // Manager is unable to power on or reconfigure the agent virtual machine.
  2019  //
  2020  // This is a passive remediable issue. To remediate update the virtual machine
  2021  // configuration.
  2022  //
  2023  // This structure may be used only with operations rendered under `/eam`.
  2024  type InvalidConfig struct {
  2025  	VmIssue
  2026  
  2027  	// The error, that caused this issue.
  2028  	//
  2029  	// It must be either MethodFault or
  2030  	// RuntimeFault.
  2031  	Error types.AnyType `xml:"error,typeattr" json:"error"`
  2032  }
  2033  
  2034  func init() {
  2035  	types.Add("eam:InvalidConfig", reflect.TypeOf((*InvalidConfig)(nil)).Elem())
  2036  	types.AddMinAPIVersionForType("eam:InvalidConfig", "6.9")
  2037  }
  2038  
  2039  // This exception is thrown if `VasaProviderSpec.url` is malformed.
  2040  //
  2041  // This structure may be used only with operations rendered under `/sms`.
  2042  type InvalidUrl struct {
  2043  	EamFault
  2044  
  2045  	// Provider `VasaProviderSpec.url`
  2046  	Url               string `xml:"url" json:"url"`
  2047  	MalformedUrl      bool   `xml:"malformedUrl" json:"malformedUrl"`
  2048  	UnknownHost       bool   `xml:"unknownHost" json:"unknownHost"`
  2049  	ConnectionRefused bool   `xml:"connectionRefused" json:"connectionRefused"`
  2050  	ResponseCode      int32  `xml:"responseCode,omitempty" json:"responseCode,omitempty"`
  2051  }
  2052  
  2053  func init() {
  2054  	types.Add("eam:InvalidUrl", reflect.TypeOf((*InvalidUrl)(nil)).Elem())
  2055  }
  2056  
  2057  type InvalidUrlFault InvalidUrl
  2058  
  2059  func init() {
  2060  	types.Add("eam:InvalidUrlFault", reflect.TypeOf((*InvalidUrlFault)(nil)).Elem())
  2061  }
  2062  
  2063  // An issue represents a problem encountered while deploying and configurating agents
  2064  // in a vCenter installation.
  2065  //
  2066  // An issue conveys the type of problem and the
  2067  // entitity on which the problem has been encountered. Most issues are related to agents,
  2068  // but they can also relate to an agency or a host.
  2069  //
  2070  // The set of issues provided by the vSphere ESX Agent Manager describes the discrepency between
  2071  // the _desired_ agent deployment state, as defined by the agency configurations,
  2072  // and the _actual_ deployment. The (@link EamObject.RuntimeInfo.Status.status)
  2073  // of an agency or agent is green if it has reached its goal state. It is
  2074  // marked as yellow if the vSphere ESX Agent Manager is actively working to bring the object
  2075  // to its goal state. It is red if there is a discrepency between the current state and
  2076  // the desired state. In the red state, a set of issues are filed on the object that
  2077  // describe the reason for the discrepency between the desired and actual states.
  2078  //
  2079  // Issues are characterized as either active or passive remediable issues. For an active
  2080  // remediable issue, the vSphere ESX Agent Manager can actively try to solve the issue. For
  2081  // example, by deploying a new agent, removing an agent, changing its power state, and so
  2082  // on. For a passive remediable issue, the vSphere ESX Agent Manager is not able to solve the
  2083  // problem directly, and can only report the problem. For example, this could be
  2084  // caused by an incomplete host configuration.
  2085  //
  2086  // When <code>resolve</code> is called for an active remediable issue, the vSphere ESX Agent Manager
  2087  // starts performing the appropiate remediation steps for the particular issue. For a passive
  2088  // remediable issue, the EAM manager simply checks if the condition
  2089  // still exists, and if not it removes the issue.
  2090  //
  2091  // The vSphere ESX Agent Manager actively monitors most conditions relating to both
  2092  // active and passive issues. Thus, it often automatically discovers when an
  2093  // issue has been remediated and removes the issue without needing to explicitly
  2094  // call <code>resolve</code> on an issue.
  2095  //
  2096  // The complete Issue hierarchy is shown below:
  2097  //   - `Issue`
  2098  //   - `AgencyIssue`
  2099  //   - `AgentIssue`
  2100  //   - `ManagedHostNotReachable`
  2101  //   - `VmNotDeployed`
  2102  //   - `CannotAccessAgentOVF`
  2103  //   - `IncompatibleHostVersion`
  2104  //   - `InsufficientResources`
  2105  //   - `InsufficientSpace`
  2106  //   - `OvfInvalidFormat`
  2107  //   - `NoAgentVmDatastore`
  2108  //   - `NoAgentVmNetwork`
  2109  //   - `VmIssue`
  2110  //   - `OvfInvalidProperty`
  2111  //   - `VmDeployed`
  2112  //   - `HostInMaintenanceMode`
  2113  //   - `HostInStandbyMode`
  2114  //   - `VmCorrupted`
  2115  //   - `VmOrphaned`
  2116  //   - `VmPoweredOff`
  2117  //   - `InsufficientIpAddresses`
  2118  //   - `MissingAgentIpPool`
  2119  //   - `VmPoweredOn`
  2120  //   - `VmSuspended`
  2121  //   - `VibIssue`
  2122  //   - `VibCannotPutHostInMaintenanceMode`
  2123  //   - `VibNotInstalled`
  2124  //   - `CannotAccessAgentVib`
  2125  //   - `VibDependenciesNotMetByHost`
  2126  //   - `VibInvalidFormat`
  2127  //   - `VibRequirementsNotMetByHost`
  2128  //   - `VibRequiresHostInMaintenanceMode`
  2129  //   - `VibRequiresHostReboot`
  2130  //   - `VibRequiresManualInstallation`
  2131  //   - `VibRequiresManualUninstallation`
  2132  //   - `ImmediateHostRebootRequired`
  2133  //   - `OrphanedAgency`
  2134  //   - `IntegrityAgencyVUMIssue`
  2135  //   - `IntegrityAgencyVUMUnavailable`
  2136  //   - `IntegrityAgencyCannotStageSoftware`
  2137  //   - `IntegrityAgencyCannotDeleteSoftware`
  2138  //   - `ClusterAgentAgentIssue`
  2139  //   - `ClusterAgentVmIssue`
  2140  //   - `ClusterAgentVmNotRemoved`
  2141  //   - `ClusterAgentVmPoweredOff`
  2142  //   - `ClusterAgentInsufficientClusterResources`
  2143  //   - `ClusterAgentVmNotDeployed`
  2144  //   - `ClusterAgentInsufficientClusterSpace`
  2145  //   - `ClusterAgentMissingClusterVmDatastore`
  2146  //   - `ClusterAgentMissingClusterVmNetwork`
  2147  //
  2148  // See also `EamObject.Resolve`, `EamObject.ResolveAll`.
  2149  //
  2150  // This structure may be used only with operations rendered under `/eam`.
  2151  type Issue struct {
  2152  	types.DynamicData
  2153  
  2154  	// A unique identifier per <code>Issue</code> instance.
  2155  	Key int32 `xml:"key" json:"key"`
  2156  	// A localized message describing the issue.
  2157  	Description string `xml:"description" json:"description"`
  2158  	// The point in time when this issue was generated.
  2159  	//
  2160  	// Note that issues can be
  2161  	// regenerated periodically, so this time does not neccessarily reflect the
  2162  	// first time the issue was detected.
  2163  	Time time.Time `xml:"time" json:"time"`
  2164  }
  2165  
  2166  func init() {
  2167  	types.Add("eam:Issue", reflect.TypeOf((*Issue)(nil)).Elem())
  2168  }
  2169  
  2170  // Managed ESXi Server is unreachable from vCenter Server or vSphere ESX Agent
  2171  // Manager.
  2172  //
  2173  // Currently all operations on the affected host are imposible. Reasons
  2174  // for this might be :
  2175  //   - ESXi Server is not connected from vCenter Server
  2176  //   - ESXi Server powered off
  2177  //
  2178  // This is not a remediable issue. To remediate, connect, power on or reboot the
  2179  // host.
  2180  //
  2181  // This structure may be used only with operations rendered under `/eam`.
  2182  type ManagedHostNotReachable struct {
  2183  	AgentIssue
  2184  }
  2185  
  2186  func init() {
  2187  	types.Add("eam:ManagedHostNotReachable", reflect.TypeOf((*ManagedHostNotReachable)(nil)).Elem())
  2188  	types.AddMinAPIVersionForType("eam:ManagedHostNotReachable", "6.8")
  2189  }
  2190  
  2191  type MarkAsAvailable MarkAsAvailableRequestType
  2192  
  2193  func init() {
  2194  	types.Add("eam:MarkAsAvailable", reflect.TypeOf((*MarkAsAvailable)(nil)).Elem())
  2195  }
  2196  
  2197  type MarkAsAvailableRequestType struct {
  2198  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2199  }
  2200  
  2201  func init() {
  2202  	types.Add("eam:MarkAsAvailableRequestType", reflect.TypeOf((*MarkAsAvailableRequestType)(nil)).Elem())
  2203  }
  2204  
  2205  type MarkAsAvailableResponse struct {
  2206  }
  2207  
  2208  // Deprecated this issue is no longer raised by EAM. It is replaced by
  2209  // `InvalidConfig`.
  2210  //
  2211  // An agent virtual machine is expected to be powered on, but the agent virtual machine is powered off because
  2212  // there there are no IP addresses defined on the agent's virtual machine network.
  2213  //
  2214  // To remediate, create an IP pool on the agent's virtual machine network and invoke <code>resolve</code>.
  2215  //
  2216  // This structure may be used only with operations rendered under `/eam`.
  2217  type MissingAgentIpPool struct {
  2218  	VmPoweredOff
  2219  
  2220  	// The agent virtual machine network.
  2221  	//
  2222  	// Refers instance of `Network`.
  2223  	Network types.ManagedObjectReference `xml:"network" json:"network"`
  2224  }
  2225  
  2226  func init() {
  2227  	types.Add("eam:MissingAgentIpPool", reflect.TypeOf((*MissingAgentIpPool)(nil)).Elem())
  2228  }
  2229  
  2230  // Deprecated dvFilters are no longer supported by EAM.
  2231  //
  2232  // The agent is using the dvFilter API on the ESX host, but no dvFilter switch
  2233  // has been configured on the host.
  2234  //
  2235  // This can happen due to host communication
  2236  // failures or if the dvSwitch was (presumably accidentally) deleted from the
  2237  // host configuration.
  2238  //
  2239  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  2240  // recreates the dvFilter switch.
  2241  //
  2242  // This structure may be used only with operations rendered under `/eam`.
  2243  type MissingDvFilterSwitch struct {
  2244  	AgentIssue
  2245  }
  2246  
  2247  func init() {
  2248  	types.Add("eam:MissingDvFilterSwitch", reflect.TypeOf((*MissingDvFilterSwitch)(nil)).Elem())
  2249  }
  2250  
  2251  // An agent virtual machine is expected to be deployed on a host, but the agent cannot be
  2252  // deployed because the agent datastore has not been configured on the host.
  2253  //
  2254  // This is a passive remediable issue. The administrator must configure
  2255  // the agent virtual machine datastore on the host.
  2256  //
  2257  // This structure may be used only with operations rendered under `/eam`.
  2258  type NoAgentVmDatastore struct {
  2259  	VmNotDeployed
  2260  }
  2261  
  2262  func init() {
  2263  	types.Add("eam:NoAgentVmDatastore", reflect.TypeOf((*NoAgentVmDatastore)(nil)).Elem())
  2264  }
  2265  
  2266  // An agent virtual machine is expected to be deployed on a host, but the agent cannot be
  2267  // deployed because the agent network has not been configured on the host.
  2268  //
  2269  // This is a passive remediable issue. The administrator must configure
  2270  // the agent virtual machine network on the host.
  2271  //
  2272  // This structure may be used only with operations rendered under `/eam`.
  2273  type NoAgentVmNetwork struct {
  2274  	VmNotDeployed
  2275  }
  2276  
  2277  func init() {
  2278  	types.Add("eam:NoAgentVmNetwork", reflect.TypeOf((*NoAgentVmNetwork)(nil)).Elem())
  2279  }
  2280  
  2281  // Thrown when calling vSphere ESX Agent Manager when it is not connected to the vCenter server.
  2282  //
  2283  // This structure may be used only with operations rendered under `/eam`.
  2284  type NoConnectionToVCenter struct {
  2285  	EamRuntimeFault
  2286  }
  2287  
  2288  func init() {
  2289  	types.Add("eam:NoConnectionToVCenter", reflect.TypeOf((*NoConnectionToVCenter)(nil)).Elem())
  2290  }
  2291  
  2292  type NoConnectionToVCenterFault NoConnectionToVCenter
  2293  
  2294  func init() {
  2295  	types.Add("eam:NoConnectionToVCenterFault", reflect.TypeOf((*NoConnectionToVCenterFault)(nil)).Elem())
  2296  }
  2297  
  2298  // An agent virtual machine is expected to be deployed on a host, but the agent cannot be
  2299  // deployed because the agent datastore has not been configured on the host.
  2300  //
  2301  // The host
  2302  // needs to be added to one of the datastores listed in customAgentVmDatastore.
  2303  //
  2304  // This is a passive remediable issue. The administrator must add one of the datastores
  2305  // customAgentVmDatastore to the host.
  2306  //
  2307  // This structure may be used only with operations rendered under `/eam`.
  2308  type NoCustomAgentVmDatastore struct {
  2309  	NoAgentVmDatastore
  2310  
  2311  	// A non-empty array of agent VM datastores that is required on the host.
  2312  	//
  2313  	// Refers instances of `Datastore`.
  2314  	CustomAgentVmDatastore []types.ManagedObjectReference `xml:"customAgentVmDatastore" json:"customAgentVmDatastore"`
  2315  	// The names of the agent VM datastores.
  2316  	CustomAgentVmDatastoreName []string `xml:"customAgentVmDatastoreName" json:"customAgentVmDatastoreName"`
  2317  }
  2318  
  2319  func init() {
  2320  	types.Add("eam:NoCustomAgentVmDatastore", reflect.TypeOf((*NoCustomAgentVmDatastore)(nil)).Elem())
  2321  }
  2322  
  2323  // An agent virtual machine is expected to be deployed on a host, but the agent cannot be
  2324  // deployed because the agent network has not been configured on the host.
  2325  //
  2326  // The host
  2327  // needs to be added to one of the networks listed in customAgentVmNetwork.
  2328  //
  2329  // This is a passive remediable issue. The administrator must add one of the networks
  2330  // customAgentVmNetwork to the host.
  2331  //
  2332  // This structure may be used only with operations rendered under `/eam`.
  2333  type NoCustomAgentVmNetwork struct {
  2334  	NoAgentVmNetwork
  2335  
  2336  	// A non-empty array of agent VM networks that is required on the host.
  2337  	//
  2338  	// Refers instances of `Network`.
  2339  	CustomAgentVmNetwork []types.ManagedObjectReference `xml:"customAgentVmNetwork" json:"customAgentVmNetwork"`
  2340  	// The names of the agent VM networks.
  2341  	CustomAgentVmNetworkName []string `xml:"customAgentVmNetworkName" json:"customAgentVmNetworkName"`
  2342  }
  2343  
  2344  func init() {
  2345  	types.Add("eam:NoCustomAgentVmNetwork", reflect.TypeOf((*NoCustomAgentVmNetwork)(nil)).Elem())
  2346  }
  2347  
  2348  // An agent virtual machine is expected to be deployed on a host, but the
  2349  // agent cannot be deployed because the agent VM datastore could not be
  2350  // discovered, as per defined selection policy, on the host.
  2351  //
  2352  // This issue can be remediated passively if the administrator configures
  2353  // new datastores on the host.
  2354  //
  2355  // This structure may be used only with operations rendered under `/eam`.
  2356  type NoDiscoverableAgentVmDatastore struct {
  2357  	VmNotDeployed
  2358  }
  2359  
  2360  func init() {
  2361  	types.Add("eam:NoDiscoverableAgentVmDatastore", reflect.TypeOf((*NoDiscoverableAgentVmDatastore)(nil)).Elem())
  2362  }
  2363  
  2364  // An agent virtual machine is expected to be deployed on a host, but the
  2365  // agent cannot be deployed because the agent VM network could not be
  2366  // discovered, as per defined selection policy, on the host.
  2367  //
  2368  // This issue can be remediated passively if the administrator configures
  2369  // new networks on the host.
  2370  //
  2371  // This structure may be used only with operations rendered under `/eam`.
  2372  type NoDiscoverableAgentVmNetwork struct {
  2373  	VmNotDeployed
  2374  }
  2375  
  2376  func init() {
  2377  	types.Add("eam:NoDiscoverableAgentVmNetwork", reflect.TypeOf((*NoDiscoverableAgentVmNetwork)(nil)).Elem())
  2378  }
  2379  
  2380  // Thrown when an a user cannot be authorized.
  2381  //
  2382  // This structure may be used only with operations rendered under `/eam`.
  2383  type NotAuthorized struct {
  2384  	EamRuntimeFault
  2385  }
  2386  
  2387  func init() {
  2388  	types.Add("eam:NotAuthorized", reflect.TypeOf((*NotAuthorized)(nil)).Elem())
  2389  }
  2390  
  2391  type NotAuthorizedFault NotAuthorized
  2392  
  2393  func init() {
  2394  	types.Add("eam:NotAuthorizedFault", reflect.TypeOf((*NotAuthorizedFault)(nil)).Elem())
  2395  }
  2396  
  2397  // Deprecated eAM no longer raises this issue. If agecny is getting orphaned
  2398  // EAM simply destroys it.
  2399  //
  2400  // The solution that created the agency is no longer registered with the vCenter
  2401  // server.
  2402  //
  2403  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  2404  // undeploys and removes the agency.
  2405  //
  2406  // This structure may be used only with operations rendered under `/eam`.
  2407  type OrphanedAgency struct {
  2408  	AgencyIssue
  2409  }
  2410  
  2411  func init() {
  2412  	types.Add("eam:OrphanedAgency", reflect.TypeOf((*OrphanedAgency)(nil)).Elem())
  2413  }
  2414  
  2415  // Deprecated dvFilters are no longer supported by EAM.
  2416  //
  2417  // A dvFilter switch exists on a host but no agents on the host depend on
  2418  // dvFilter.
  2419  //
  2420  // This typically happens if a host is disconnected when an agency
  2421  // configuration changed.
  2422  //
  2423  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  2424  // removes the dvFilterSwitch.
  2425  //
  2426  // This structure may be used only with operations rendered under `/eam`.
  2427  type OrphanedDvFilterSwitch struct {
  2428  	HostIssue
  2429  }
  2430  
  2431  func init() {
  2432  	types.Add("eam:OrphanedDvFilterSwitch", reflect.TypeOf((*OrphanedDvFilterSwitch)(nil)).Elem())
  2433  }
  2434  
  2435  // An Agent virtual machine is expected to be provisioned on a host, but it failed to do so
  2436  // because the provisioning of the OVF package failed.
  2437  //
  2438  // The provisioning is unlikely to
  2439  // succeed until the solution that provides the OVF package has been upgraded or
  2440  // patched to provide a valid OVF package for the agent virtual machine.
  2441  //
  2442  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager attempts the OVF provisioning again.
  2443  //
  2444  // This structure may be used only with operations rendered under `/eam`.
  2445  type OvfInvalidFormat struct {
  2446  	VmNotDeployed
  2447  
  2448  	// An optional list of errors that caused this issue.
  2449  	//
  2450  	// These errors are generated by the
  2451  	// vCenter server.
  2452  	Error []types.LocalizedMethodFault `xml:"error,omitempty" json:"error,omitempty"`
  2453  }
  2454  
  2455  func init() {
  2456  	types.Add("eam:OvfInvalidFormat", reflect.TypeOf((*OvfInvalidFormat)(nil)).Elem())
  2457  }
  2458  
  2459  // An agent virtual machine needs to be provisioned or reconfigured, but an OVF
  2460  // property is either missing or has an invalid value.
  2461  //
  2462  // This is a passive remediable issue. To remediate, update the OVF environment
  2463  // in the agent configuration used to provision the agent virtual machine.
  2464  //
  2465  // This structure may be used only with operations rendered under `/eam`.
  2466  type OvfInvalidProperty struct {
  2467  	AgentIssue
  2468  
  2469  	// An optional list of errors that caused this issue.
  2470  	//
  2471  	// These errors are
  2472  	// generated by the vCenter server.
  2473  	Error []types.LocalizedMethodFault `xml:"error,omitempty" json:"error,omitempty"`
  2474  }
  2475  
  2476  func init() {
  2477  	types.Add("eam:OvfInvalidProperty", reflect.TypeOf((*OvfInvalidProperty)(nil)).Elem())
  2478  }
  2479  
  2480  // EAM was unable to set its required compute resource configuration in PM.
  2481  //
  2482  // EAM configuration needs to be updated or PM needs to be repaired manually to
  2483  // allow the configuration.
  2484  //
  2485  // This structure may be used only with operations rendered under `/eam`.
  2486  type PersonalityAgencyCannotConfigureSolutions struct {
  2487  	PersonalityAgencyPMIssue
  2488  
  2489  	// Compute resource that couldn't be configured
  2490  	//
  2491  	// Refers instance of `ComputeResource`.
  2492  	Cr types.ManagedObjectReference `xml:"cr" json:"cr"`
  2493  	// Names of the solutions attempted to be modified
  2494  	SolutionsToModify []string `xml:"solutionsToModify,omitempty" json:"solutionsToModify,omitempty"`
  2495  	// Names of the solutions attempted to be removed
  2496  	SolutionsToRemove []string `xml:"solutionsToRemove,omitempty" json:"solutionsToRemove,omitempty"`
  2497  }
  2498  
  2499  func init() {
  2500  	types.Add("eam:PersonalityAgencyCannotConfigureSolutions", reflect.TypeOf((*PersonalityAgencyCannotConfigureSolutions)(nil)).Elem())
  2501  	types.AddMinAPIVersionForType("eam:PersonalityAgencyCannotConfigureSolutions", "7.1")
  2502  }
  2503  
  2504  // The offline depot could not be uploaded in Personality Manager.
  2505  //
  2506  // This structure may be used only with operations rendered under `/eam`.
  2507  type PersonalityAgencyCannotUploadDepot struct {
  2508  	PersonalityAgencyDepotIssue
  2509  
  2510  	// URL EAM hosted the offline bundle as in vCenter.
  2511  	LocalDepotUrl string `xml:"localDepotUrl" json:"localDepotUrl"`
  2512  }
  2513  
  2514  func init() {
  2515  	types.Add("eam:PersonalityAgencyCannotUploadDepot", reflect.TypeOf((*PersonalityAgencyCannotUploadDepot)(nil)).Elem())
  2516  	types.AddMinAPIVersionForType("eam:PersonalityAgencyCannotUploadDepot", "7.1")
  2517  }
  2518  
  2519  // Base class for all offline depot (VIB) issues while communicating with
  2520  // Personality Manager.
  2521  //
  2522  // This structure may be used only with operations rendered under `/eam`.
  2523  type PersonalityAgencyDepotIssue struct {
  2524  	PersonalityAgencyPMIssue
  2525  
  2526  	// URL the offline bundle is configured in EAM.
  2527  	RemoteDepotUrl string `xml:"remoteDepotUrl" json:"remoteDepotUrl"`
  2528  }
  2529  
  2530  func init() {
  2531  	types.Add("eam:PersonalityAgencyDepotIssue", reflect.TypeOf((*PersonalityAgencyDepotIssue)(nil)).Elem())
  2532  	types.AddMinAPIVersionForType("eam:PersonalityAgencyDepotIssue", "7.1")
  2533  }
  2534  
  2535  // The offline depot was not available for download during communicating with
  2536  // Personality Manager.
  2537  //
  2538  // This structure may be used only with operations rendered under `/eam`.
  2539  type PersonalityAgencyInaccessibleDepot struct {
  2540  	PersonalityAgencyDepotIssue
  2541  }
  2542  
  2543  func init() {
  2544  	types.Add("eam:PersonalityAgencyInaccessibleDepot", reflect.TypeOf((*PersonalityAgencyInaccessibleDepot)(nil)).Elem())
  2545  	types.AddMinAPIVersionForType("eam:PersonalityAgencyInaccessibleDepot", "7.1")
  2546  }
  2547  
  2548  // The offline depot has missing or invalid metadata to be usable by
  2549  // Personality Manager.
  2550  //
  2551  // This structure may be used only with operations rendered under `/eam`.
  2552  type PersonalityAgencyInvalidDepot struct {
  2553  	PersonalityAgencyDepotIssue
  2554  }
  2555  
  2556  func init() {
  2557  	types.Add("eam:PersonalityAgencyInvalidDepot", reflect.TypeOf((*PersonalityAgencyInvalidDepot)(nil)).Elem())
  2558  	types.AddMinAPIVersionForType("eam:PersonalityAgencyInvalidDepot", "7.1")
  2559  }
  2560  
  2561  // Base class for all issues which occurred during EAM communication with
  2562  // Personality Manager.
  2563  //
  2564  // This structure may be used only with operations rendered under `/eam`.
  2565  type PersonalityAgencyPMIssue struct {
  2566  	AgencyIssue
  2567  }
  2568  
  2569  func init() {
  2570  	types.Add("eam:PersonalityAgencyPMIssue", reflect.TypeOf((*PersonalityAgencyPMIssue)(nil)).Elem())
  2571  	types.AddMinAPIVersionForType("eam:PersonalityAgencyPMIssue", "7.1")
  2572  }
  2573  
  2574  // PM service is not available - its endpoint cannot be accessed or it is
  2575  // malfunctioning.
  2576  //
  2577  // This is an active and passive remediable issue. To remediate, vSphere ESX
  2578  // Agent Manager retries to access PM service.
  2579  //
  2580  // This structure may be used only with operations rendered under `/eam`.
  2581  type PersonalityAgencyPMUnavailable struct {
  2582  	PersonalityAgencyPMIssue
  2583  }
  2584  
  2585  func init() {
  2586  	types.Add("eam:PersonalityAgencyPMUnavailable", reflect.TypeOf((*PersonalityAgencyPMUnavailable)(nil)).Elem())
  2587  	types.AddMinAPIVersionForType("eam:PersonalityAgencyPMUnavailable", "7.1")
  2588  }
  2589  
  2590  // The agent workflow is blocked until its' required solutions are re-mediated
  2591  // externally in Personality Manager.
  2592  //
  2593  // This issue is only passively remediable. The desired state has to be applied
  2594  // in PM by an user.
  2595  //
  2596  // This structure may be used only with operations rendered under `/eam`.
  2597  type PersonalityAgentAwaitingPMRemediation struct {
  2598  	PersonalityAgentPMIssue
  2599  }
  2600  
  2601  func init() {
  2602  	types.Add("eam:PersonalityAgentAwaitingPMRemediation", reflect.TypeOf((*PersonalityAgentAwaitingPMRemediation)(nil)).Elem())
  2603  	types.AddMinAPIVersionForType("eam:PersonalityAgentAwaitingPMRemediation", "7.1")
  2604  }
  2605  
  2606  // The agent workflow is blocked by a failed agency operation with
  2607  // Personality Manager.
  2608  //
  2609  // This issue is only passively remediable. The agency's PM related issue has to
  2610  // be resolved.
  2611  //
  2612  // This structure may be used only with operations rendered under `/eam`.
  2613  type PersonalityAgentBlockedByAgencyOperation struct {
  2614  	PersonalityAgentPMIssue
  2615  }
  2616  
  2617  func init() {
  2618  	types.Add("eam:PersonalityAgentBlockedByAgencyOperation", reflect.TypeOf((*PersonalityAgentBlockedByAgencyOperation)(nil)).Elem())
  2619  	types.AddMinAPIVersionForType("eam:PersonalityAgentBlockedByAgencyOperation", "7.1")
  2620  }
  2621  
  2622  // Base class for all issues which occurred during EAM communication with
  2623  // Personality Manager.
  2624  //
  2625  // This structure may be used only with operations rendered under `/eam`.
  2626  type PersonalityAgentPMIssue struct {
  2627  	AgentIssue
  2628  }
  2629  
  2630  func init() {
  2631  	types.Add("eam:PersonalityAgentPMIssue", reflect.TypeOf((*PersonalityAgentPMIssue)(nil)).Elem())
  2632  	types.AddMinAPIVersionForType("eam:PersonalityAgentPMIssue", "7.1")
  2633  }
  2634  
  2635  type QueryAgency QueryAgencyRequestType
  2636  
  2637  func init() {
  2638  	types.Add("eam:QueryAgency", reflect.TypeOf((*QueryAgency)(nil)).Elem())
  2639  }
  2640  
  2641  type QueryAgencyRequestType struct {
  2642  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2643  }
  2644  
  2645  func init() {
  2646  	types.Add("eam:QueryAgencyRequestType", reflect.TypeOf((*QueryAgencyRequestType)(nil)).Elem())
  2647  }
  2648  
  2649  type QueryAgencyResponse struct {
  2650  	Returnval []types.ManagedObjectReference `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2651  }
  2652  
  2653  type QueryAgent QueryAgentRequestType
  2654  
  2655  func init() {
  2656  	types.Add("eam:QueryAgent", reflect.TypeOf((*QueryAgent)(nil)).Elem())
  2657  }
  2658  
  2659  type QueryAgentRequestType struct {
  2660  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2661  }
  2662  
  2663  func init() {
  2664  	types.Add("eam:QueryAgentRequestType", reflect.TypeOf((*QueryAgentRequestType)(nil)).Elem())
  2665  }
  2666  
  2667  type QueryAgentResponse struct {
  2668  	Returnval []types.ManagedObjectReference `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2669  }
  2670  
  2671  type QueryConfig QueryConfigRequestType
  2672  
  2673  func init() {
  2674  	types.Add("eam:QueryConfig", reflect.TypeOf((*QueryConfig)(nil)).Elem())
  2675  }
  2676  
  2677  type QueryConfigRequestType struct {
  2678  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2679  }
  2680  
  2681  func init() {
  2682  	types.Add("eam:QueryConfigRequestType", reflect.TypeOf((*QueryConfigRequestType)(nil)).Elem())
  2683  }
  2684  
  2685  type QueryConfigResponse struct {
  2686  	Returnval BaseAgencyConfigInfo `xml:"returnval,typeattr" json:"returnval"`
  2687  }
  2688  
  2689  type QueryIssue QueryIssueRequestType
  2690  
  2691  func init() {
  2692  	types.Add("eam:QueryIssue", reflect.TypeOf((*QueryIssue)(nil)).Elem())
  2693  }
  2694  
  2695  // The parameters of `EamObject.QueryIssue`.
  2696  type QueryIssueRequestType struct {
  2697  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2698  	// An optional array of issue keys. If not set, all issues for this
  2699  	// entity are returned.
  2700  	IssueKey []int32 `xml:"issueKey,omitempty" json:"issueKey,omitempty"`
  2701  }
  2702  
  2703  func init() {
  2704  	types.Add("eam:QueryIssueRequestType", reflect.TypeOf((*QueryIssueRequestType)(nil)).Elem())
  2705  }
  2706  
  2707  type QueryIssueResponse struct {
  2708  	Returnval []BaseIssue `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"`
  2709  }
  2710  
  2711  type QuerySolutionId QuerySolutionIdRequestType
  2712  
  2713  func init() {
  2714  	types.Add("eam:QuerySolutionId", reflect.TypeOf((*QuerySolutionId)(nil)).Elem())
  2715  }
  2716  
  2717  type QuerySolutionIdRequestType struct {
  2718  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2719  }
  2720  
  2721  func init() {
  2722  	types.Add("eam:QuerySolutionIdRequestType", reflect.TypeOf((*QuerySolutionIdRequestType)(nil)).Elem())
  2723  }
  2724  
  2725  type QuerySolutionIdResponse struct {
  2726  	Returnval string `xml:"returnval" json:"returnval"`
  2727  }
  2728  
  2729  type RegisterAgentVm RegisterAgentVmRequestType
  2730  
  2731  func init() {
  2732  	types.Add("eam:RegisterAgentVm", reflect.TypeOf((*RegisterAgentVm)(nil)).Elem())
  2733  }
  2734  
  2735  // The parameters of `Agency.RegisterAgentVm`.
  2736  type RegisterAgentVmRequestType struct {
  2737  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2738  	// The managed object reference to the agent VM.
  2739  	//
  2740  	// Refers instance of `VirtualMachine`.
  2741  	AgentVm types.ManagedObjectReference `xml:"agentVm" json:"agentVm"`
  2742  }
  2743  
  2744  func init() {
  2745  	types.Add("eam:RegisterAgentVmRequestType", reflect.TypeOf((*RegisterAgentVmRequestType)(nil)).Elem())
  2746  }
  2747  
  2748  type RegisterAgentVmResponse struct {
  2749  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  2750  }
  2751  
  2752  type Resolve ResolveRequestType
  2753  
  2754  func init() {
  2755  	types.Add("eam:Resolve", reflect.TypeOf((*Resolve)(nil)).Elem())
  2756  }
  2757  
  2758  type ResolveAll ResolveAllRequestType
  2759  
  2760  func init() {
  2761  	types.Add("eam:ResolveAll", reflect.TypeOf((*ResolveAll)(nil)).Elem())
  2762  }
  2763  
  2764  type ResolveAllRequestType struct {
  2765  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2766  }
  2767  
  2768  func init() {
  2769  	types.Add("eam:ResolveAllRequestType", reflect.TypeOf((*ResolveAllRequestType)(nil)).Elem())
  2770  }
  2771  
  2772  type ResolveAllResponse struct {
  2773  }
  2774  
  2775  // The parameters of `EamObject.Resolve`.
  2776  type ResolveRequestType struct {
  2777  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2778  	// A non-empty array of issue keys.
  2779  	IssueKey []int32 `xml:"issueKey" json:"issueKey"`
  2780  }
  2781  
  2782  func init() {
  2783  	types.Add("eam:ResolveRequestType", reflect.TypeOf((*ResolveRequestType)(nil)).Elem())
  2784  }
  2785  
  2786  type ResolveResponse struct {
  2787  	Returnval []int32 `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2788  }
  2789  
  2790  type ScanForUnknownAgentVm ScanForUnknownAgentVmRequestType
  2791  
  2792  func init() {
  2793  	types.Add("eam:ScanForUnknownAgentVm", reflect.TypeOf((*ScanForUnknownAgentVm)(nil)).Elem())
  2794  }
  2795  
  2796  type ScanForUnknownAgentVmRequestType struct {
  2797  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2798  }
  2799  
  2800  func init() {
  2801  	types.Add("eam:ScanForUnknownAgentVmRequestType", reflect.TypeOf((*ScanForUnknownAgentVmRequestType)(nil)).Elem())
  2802  }
  2803  
  2804  type ScanForUnknownAgentVmResponse struct {
  2805  }
  2806  
  2807  // The parameters of `EsxAgentManager.SetMaintenanceModePolicy`.
  2808  type SetMaintenanceModePolicyRequestType struct {
  2809  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2810  	// The policy to use.
  2811  	Policy string `xml:"policy" json:"policy"`
  2812  }
  2813  
  2814  func init() {
  2815  	types.Add("eam:SetMaintenanceModePolicyRequestType", reflect.TypeOf((*SetMaintenanceModePolicyRequestType)(nil)).Elem())
  2816  }
  2817  
  2818  // Specification describing a desired state to be applied.
  2819  //
  2820  // This structure may be used only with operations rendered under `/eam`.
  2821  type SolutionsApplySpec struct {
  2822  	types.DynamicData
  2823  
  2824  	// Complete desired state to be applied on the target entity.
  2825  	//
  2826  	// the solutions member limits which parts of this desired state to
  2827  	// be applied
  2828  	// If the solutions member is ommited.
  2829  	// Any solution described in this structure will be applied on the
  2830  	// target entity
  2831  	// Any solution already existing on the target entity, but missing
  2832  	// from this structure, will be deleted from the target entity
  2833  	DesiredState []SolutionsSolutionConfig `xml:"desiredState,omitempty" json:"desiredState,omitempty"`
  2834  	// If provided, limits the parts of the desiredState structure to
  2835  	// be applied on the target entity.
  2836  	//
  2837  	// solutions that are also present in the desiredState
  2838  	// structure will be applied on the target entity.
  2839  	// solutions that are missing from the desiredState structure
  2840  	// will be deleted from the target entity.
  2841  	Solutions []string `xml:"solutions,omitempty" json:"solutions,omitempty"`
  2842  	// Specifies exact hosts to apply the desired state to, instead of every
  2843  	// host in the cluster.
  2844  	//
  2845  	// Refers instances of `HostSystem`.
  2846  	Hosts []types.ManagedObjectReference `xml:"hosts,omitempty" json:"hosts,omitempty"`
  2847  }
  2848  
  2849  func init() {
  2850  	types.Add("eam:SolutionsApplySpec", reflect.TypeOf((*SolutionsApplySpec)(nil)).Elem())
  2851  }
  2852  
  2853  // Result of a compliance check of a desired state on a compute resource.
  2854  //
  2855  // This structure may be used only with operations rendered under `/eam`.
  2856  type SolutionsComplianceResult struct {
  2857  	types.DynamicData
  2858  
  2859  	// `True` if the compute resource is compliant with the described
  2860  	// desired state, `False` - otherwise.
  2861  	Compliant bool `xml:"compliant" json:"compliant"`
  2862  	// Detailed per-host compliance result of the compute resource.
  2863  	Hosts []SolutionsHostComplianceResult `xml:"hosts,omitempty" json:"hosts,omitempty"`
  2864  }
  2865  
  2866  func init() {
  2867  	types.Add("eam:SolutionsComplianceResult", reflect.TypeOf((*SolutionsComplianceResult)(nil)).Elem())
  2868  }
  2869  
  2870  // Specification describing how to calculate compliance of a compute resource
  2871  // against a desired state.
  2872  //
  2873  // This structure may be used only with operations rendered under `/eam`.
  2874  type SolutionsComplianceSpec struct {
  2875  	types.DynamicData
  2876  
  2877  	// Desired state to be checked for compliance.
  2878  	//
  2879  	// May be incomplete if exact
  2880  	// solutions to be checked are provided. Empty desired state means all
  2881  	// present solutions must be removed.
  2882  	DesiredState []SolutionsSolutionConfig `xml:"desiredState,omitempty" json:"desiredState,omitempty"`
  2883  	// Specifies exact solutions to be checked for compliance instead of the
  2884  	// complete desired state.
  2885  	Solutions []string `xml:"solutions,omitempty" json:"solutions,omitempty"`
  2886  	// Specifies exact hosts to be checked for compliance, instead of every
  2887  	// host in the cluster.
  2888  	//
  2889  	// Refers instances of `HostSystem`.
  2890  	Hosts []types.ManagedObjectReference `xml:"hosts,omitempty" json:"hosts,omitempty"`
  2891  }
  2892  
  2893  func init() {
  2894  	types.Add("eam:SolutionsComplianceSpec", reflect.TypeOf((*SolutionsComplianceSpec)(nil)).Elem())
  2895  }
  2896  
  2897  // Specifies the acknowledgement type of a configured System Virtual
  2898  // Machine's lifecycle hook.
  2899  //
  2900  // This structure may be used only with operations rendered under `/eam`.
  2901  type SolutionsHookAcknowledgeConfig struct {
  2902  	types.DynamicData
  2903  }
  2904  
  2905  func init() {
  2906  	types.Add("eam:SolutionsHookAcknowledgeConfig", reflect.TypeOf((*SolutionsHookAcknowledgeConfig)(nil)).Elem())
  2907  }
  2908  
  2909  // Configuration for System Virtual Machine's lifecycle hooks.
  2910  //
  2911  // This structure may be used only with operations rendered under `/eam`.
  2912  type SolutionsHookConfig struct {
  2913  	types.DynamicData
  2914  
  2915  	// Type of the configured hook, possible values - `HooksHookType_enum`.
  2916  	Type string `xml:"type" json:"type"`
  2917  	// Type of acknoledgement of the configured hook.
  2918  	Acknowledgement BaseSolutionsHookAcknowledgeConfig `xml:"acknowledgement,typeattr" json:"acknowledgement"`
  2919  }
  2920  
  2921  func init() {
  2922  	types.Add("eam:SolutionsHookConfig", reflect.TypeOf((*SolutionsHookConfig)(nil)).Elem())
  2923  }
  2924  
  2925  // Specifies host-bound solution configuration.
  2926  //
  2927  // This structure may be used only with operations rendered under `/eam`.
  2928  type SolutionsHostBoundSolutionConfig struct {
  2929  	SolutionsTypeSpecificSolutionConfig
  2930  
  2931  	// If set to true - default network and datastore configured on host will
  2932  	// take precedence over
  2933  	// `SolutionsHostBoundSolutionConfig.datastores` and
  2934  	// `SolutionsHostBoundSolutionConfig.networks`.
  2935  	PreferHostConfiguration *bool `xml:"preferHostConfiguration" json:"preferHostConfiguration,omitempty"`
  2936  	// networks to satisfy system Virtual Machine network adapter
  2937  	// requirements.
  2938  	//
  2939  	// If omitted - default configured network on the host will
  2940  	// be used.
  2941  	//
  2942  	// Refers instances of `Network`.
  2943  	Networks []types.ManagedObjectReference `xml:"networks,omitempty" json:"networks,omitempty"`
  2944  	// datastores to place system Virutal Machine on.
  2945  	//
  2946  	// If omitted - default
  2947  	// configured network on the host will be used.
  2948  	//
  2949  	// Refers instances of `Datastore`.
  2950  	Datastores []types.ManagedObjectReference `xml:"datastores,omitempty" json:"datastores,omitempty"`
  2951  	// VMCI to be allowed access from the system Virtual Machine.
  2952  	Vmci []string `xml:"vmci,omitempty" json:"vmci,omitempty"`
  2953  }
  2954  
  2955  func init() {
  2956  	types.Add("eam:SolutionsHostBoundSolutionConfig", reflect.TypeOf((*SolutionsHostBoundSolutionConfig)(nil)).Elem())
  2957  }
  2958  
  2959  // Result of a compliance check of a desired state on a host.
  2960  //
  2961  // This structure may be used only with operations rendered under `/eam`.
  2962  type SolutionsHostComplianceResult struct {
  2963  	types.DynamicData
  2964  
  2965  	// The host being checked for compliance.
  2966  	//
  2967  	// Refers instance of `HostSystem`.
  2968  	Host types.ManagedObjectReference `xml:"host" json:"host"`
  2969  	// `True` if the compute host is compliant with the described
  2970  	// desired state, `False` - otherwise.
  2971  	Compliant bool `xml:"compliant" json:"compliant"`
  2972  	// Detailed per-solution compliance result of the host.
  2973  	Solutions []SolutionsSolutionComplianceResult `xml:"solutions,omitempty" json:"solutions,omitempty"`
  2974  }
  2975  
  2976  func init() {
  2977  	types.Add("eam:SolutionsHostComplianceResult", reflect.TypeOf((*SolutionsHostComplianceResult)(nil)).Elem())
  2978  }
  2979  
  2980  // The user will have to (manually) invoke an API (`Hooks#process`) to
  2981  // acknowledge, the user operations for this lifecycle hook have been
  2982  // completed.
  2983  //
  2984  // This structure may be used only with operations rendered under `/eam`.
  2985  type SolutionsInteractiveHookAcknowledgeConfig struct {
  2986  	SolutionsHookAcknowledgeConfig
  2987  }
  2988  
  2989  func init() {
  2990  	types.Add("eam:SolutionsInteractiveHookAcknowledgeConfig", reflect.TypeOf((*SolutionsInteractiveHookAcknowledgeConfig)(nil)).Elem())
  2991  }
  2992  
  2993  // One OVF Property.
  2994  //
  2995  // This structure may be used only with operations rendered under `/eam`.
  2996  type SolutionsOvfProperty struct {
  2997  	types.DynamicData
  2998  
  2999  	// The name of the property in the OVF descriptor.
  3000  	Key string `xml:"key" json:"key"`
  3001  	// The value of the property.
  3002  	Value string `xml:"value" json:"value"`
  3003  }
  3004  
  3005  func init() {
  3006  	types.Add("eam:SolutionsOvfProperty", reflect.TypeOf((*SolutionsOvfProperty)(nil)).Elem())
  3007  }
  3008  
  3009  // Specifies a user defined profile ID to be applied during Virtual Machine
  3010  // creation.
  3011  //
  3012  // This structure may be used only with operations rendered under `/eam`.
  3013  type SolutionsProfileIdStoragePolicy struct {
  3014  	SolutionsStoragePolicy
  3015  
  3016  	// ID of a storage policy profile created by the user.
  3017  	//
  3018  	// The type of the
  3019  	// profile must be `VirtualMachineDefinedProfileSpec`. The ID must be valid
  3020  	// `VirtualMachineDefinedProfileSpec.profileId`.
  3021  	ProfileId string `xml:"profileId" json:"profileId"`
  3022  }
  3023  
  3024  func init() {
  3025  	types.Add("eam:SolutionsProfileIdStoragePolicy", reflect.TypeOf((*SolutionsProfileIdStoragePolicy)(nil)).Elem())
  3026  }
  3027  
  3028  // Result of a compliance check of a desired state dor a solution(on a host).
  3029  //
  3030  // This structure may be used only with operations rendered under `/eam`.
  3031  type SolutionsSolutionComplianceResult struct {
  3032  	types.DynamicData
  3033  
  3034  	// Solution checked for compliance.
  3035  	Solution string `xml:"solution" json:"solution"`
  3036  	// `True` if the compute solution is compliant with the described
  3037  	// desired state, `False` - otherwise.
  3038  	Compliant bool `xml:"compliant" json:"compliant"`
  3039  	// Reason the solution is non-compliant
  3040  	// `SolutionsNonComplianceReason_enum`.
  3041  	NonComplianceReason string `xml:"nonComplianceReason,omitempty" json:"nonComplianceReason,omitempty"`
  3042  	// system Virtual Machine created for the solution.
  3043  	//
  3044  	// Refers instance of `VirtualMachine`.
  3045  	Vm *types.ManagedObjectReference `xml:"vm,omitempty" json:"vm,omitempty"`
  3046  	// system Virtual Machine created for upgrading the obsoleted system
  3047  	// Virtual Machine.
  3048  	//
  3049  	// Refers instance of `VirtualMachine`.
  3050  	UpgradingVm *types.ManagedObjectReference `xml:"upgradingVm,omitempty" json:"upgradingVm,omitempty"`
  3051  	// Hook, ESX Agent Manager is awaiting to be processed for this solution.
  3052  	Hook *HooksHookInfo `xml:"hook,omitempty" json:"hook,omitempty"`
  3053  	// Issues, ESX Agent Manager has encountered while attempting to acheive
  3054  	// the solution's requested desired state.
  3055  	Issues []BaseIssue `xml:"issues,omitempty,typeattr" json:"issues,omitempty"`
  3056  	// Last desired state for the solution, requested from ESX Agent Manager,
  3057  	// for application.
  3058  	SolutionConfig *SolutionsSolutionConfig `xml:"solutionConfig,omitempty" json:"solutionConfig,omitempty"`
  3059  }
  3060  
  3061  func init() {
  3062  	types.Add("eam:SolutionsSolutionComplianceResult", reflect.TypeOf((*SolutionsSolutionComplianceResult)(nil)).Elem())
  3063  }
  3064  
  3065  // Configuration for a solution's required system Virtual Machine.
  3066  //
  3067  // This structure may be used only with operations rendered under `/eam`.
  3068  type SolutionsSolutionConfig struct {
  3069  	types.DynamicData
  3070  
  3071  	// Solution, this configuration belongs to.
  3072  	Solution string `xml:"solution" json:"solution"`
  3073  	// Name of the solution.
  3074  	//
  3075  	// Will be utilized as a prefix for the system
  3076  	// Virtual Machines' names created for the solution.
  3077  	Name string `xml:"name" json:"name"`
  3078  	// Version of the solution.
  3079  	Version string `xml:"version" json:"version"`
  3080  	// Source of the system Virtual Machine files.
  3081  	VmSource BaseSolutionsVMSource `xml:"vmSource,typeattr" json:"vmSource"`
  3082  	// If set to `True` - will insert an UUID in the system Virtual
  3083  	// Machines' names created for the solution, otherwise - no additional
  3084  	// UUID will be inserted in the system Virtual Machines' names.
  3085  	UuidVmName bool `xml:"uuidVmName" json:"uuidVmName"`
  3086  	// Resource pool to place the system Virtual Machine in.
  3087  	//
  3088  	// If omitted a
  3089  	// default resource pool will be used.
  3090  	//
  3091  	// Refers instance of `ResourcePool`.
  3092  	ResourcePool *types.ManagedObjectReference `xml:"resourcePool,omitempty" json:"resourcePool,omitempty"`
  3093  	// Folder to place the system Virtual Machine in.
  3094  	//
  3095  	// If omitted a default
  3096  	// folder will be used.
  3097  	//
  3098  	// Refers instance of `Folder`.
  3099  	Folder *types.ManagedObjectReference `xml:"folder,omitempty" json:"folder,omitempty"`
  3100  	// User configurable OVF properties to be assigned during system Virtual
  3101  	// Machine creation.
  3102  	OvfProperties []SolutionsOvfProperty `xml:"ovfProperties,omitempty" json:"ovfProperties,omitempty"`
  3103  	// Storage policies to be applied during system Virtual Machine creation.
  3104  	StoragePolicies []BaseSolutionsStoragePolicy `xml:"storagePolicies,omitempty,typeattr" json:"storagePolicies,omitempty"`
  3105  	// Provisioning type for the system Virtual Machines
  3106  	// `SolutionsVMDiskProvisioning_enum`.
  3107  	//
  3108  	// Default provisioning will be used
  3109  	// if not specified.
  3110  	VmDiskProvisioning string `xml:"vmDiskProvisioning,omitempty" json:"vmDiskProvisioning,omitempty"`
  3111  	// Optimization strategy for deploying Virtual Machines
  3112  	// `SolutionsVMDeploymentOptimization_enum`.
  3113  	//
  3114  	// Default optimization will
  3115  	// be selected if not specified.
  3116  	VmDeploymentOptimization string `xml:"vmDeploymentOptimization,omitempty" json:"vmDeploymentOptimization,omitempty"`
  3117  	// Solution type-specific configuration.
  3118  	TypeSpecificConfig BaseSolutionsTypeSpecificSolutionConfig `xml:"typeSpecificConfig,typeattr" json:"typeSpecificConfig"`
  3119  	// Lifecycle hooks for the solution's virtual machines.
  3120  	Hooks []SolutionsHookConfig `xml:"hooks,omitempty" json:"hooks,omitempty"`
  3121  }
  3122  
  3123  func init() {
  3124  	types.Add("eam:SolutionsSolutionConfig", reflect.TypeOf((*SolutionsSolutionConfig)(nil)).Elem())
  3125  }
  3126  
  3127  // Result of validation, of a solution, for application.
  3128  //
  3129  // This structure may be used only with operations rendered under `/eam`.
  3130  type SolutionsSolutionValidationResult struct {
  3131  	types.DynamicData
  3132  
  3133  	// Validated solution.
  3134  	Solution string `xml:"solution" json:"solution"`
  3135  	// `True` - if the solution is valid for application, `False`
  3136  	// \- otherwise.
  3137  	Valid bool `xml:"valid" json:"valid"`
  3138  	// Populated with the reason the solution is not valid for application
  3139  	// `SolutionsInvalidReason_enum`.
  3140  	InvalidReason string `xml:"invalidReason,omitempty" json:"invalidReason,omitempty"`
  3141  }
  3142  
  3143  func init() {
  3144  	types.Add("eam:SolutionsSolutionValidationResult", reflect.TypeOf((*SolutionsSolutionValidationResult)(nil)).Elem())
  3145  }
  3146  
  3147  // Storage policy to be applied during system Virtual Machine creation.
  3148  //
  3149  // This structure may be used only with operations rendered under `/eam`.
  3150  type SolutionsStoragePolicy struct {
  3151  	types.DynamicData
  3152  }
  3153  
  3154  func init() {
  3155  	types.Add("eam:SolutionsStoragePolicy", reflect.TypeOf((*SolutionsStoragePolicy)(nil)).Elem())
  3156  }
  3157  
  3158  // Specification necessary to transition a solution from an existing legacy
  3159  // agency.
  3160  //
  3161  // This structure may be used only with operations rendered under `/eam`.
  3162  type SolutionsTransitionSpec struct {
  3163  	types.DynamicData
  3164  
  3165  	// Solution to transition from an old legacy agency.
  3166  	Solution string `xml:"solution" json:"solution"`
  3167  	// Old legacy agency ID to transition from.
  3168  	AgencyId string `xml:"agencyId" json:"agencyId"`
  3169  }
  3170  
  3171  func init() {
  3172  	types.Add("eam:SolutionsTransitionSpec", reflect.TypeOf((*SolutionsTransitionSpec)(nil)).Elem())
  3173  }
  3174  
  3175  // Specifies the specific solution configuration based on its type.
  3176  //
  3177  // This structure may be used only with operations rendered under `/eam`.
  3178  type SolutionsTypeSpecificSolutionConfig struct {
  3179  	types.DynamicData
  3180  }
  3181  
  3182  func init() {
  3183  	types.Add("eam:SolutionsTypeSpecificSolutionConfig", reflect.TypeOf((*SolutionsTypeSpecificSolutionConfig)(nil)).Elem())
  3184  }
  3185  
  3186  // Specified the system Virtual Machine sources are to be obtained from an
  3187  // URL.
  3188  //
  3189  // This structure may be used only with operations rendered under `/eam`.
  3190  type SolutionsUrlVMSource struct {
  3191  	SolutionsVMSource
  3192  
  3193  	// URL to the solution's system Virtual Machine OVF.
  3194  	OvfUrl string `xml:"ovfUrl" json:"ovfUrl"`
  3195  	// PEM encoded certificate to use to trust the URL.
  3196  	//
  3197  	// If omitted - will
  3198  	// implicitly trust the URL.
  3199  	CertificatePEM string `xml:"certificatePEM,omitempty" json:"certificatePEM,omitempty"`
  3200  }
  3201  
  3202  func init() {
  3203  	types.Add("eam:SolutionsUrlVMSource", reflect.TypeOf((*SolutionsUrlVMSource)(nil)).Elem())
  3204  }
  3205  
  3206  // Specifies how to find the files of the system Virtual Machine to be
  3207  // created.
  3208  //
  3209  // This structure may be used only with operations rendered under `/eam`.
  3210  type SolutionsVMSource struct {
  3211  	types.DynamicData
  3212  }
  3213  
  3214  func init() {
  3215  	types.Add("eam:SolutionsVMSource", reflect.TypeOf((*SolutionsVMSource)(nil)).Elem())
  3216  }
  3217  
  3218  // Specification describing a desired state to be validated for application.
  3219  //
  3220  // This structure may be used only with operations rendered under `/eam`.
  3221  type SolutionsValidateSpec struct {
  3222  	types.DynamicData
  3223  
  3224  	// Desired state to be validated.
  3225  	DesiredState []SolutionsSolutionConfig `xml:"desiredState" json:"desiredState"`
  3226  }
  3227  
  3228  func init() {
  3229  	types.Add("eam:SolutionsValidateSpec", reflect.TypeOf((*SolutionsValidateSpec)(nil)).Elem())
  3230  }
  3231  
  3232  // Result of validation, of a desired state, for application.
  3233  //
  3234  // This structure may be used only with operations rendered under `/eam`.
  3235  type SolutionsValidationResult struct {
  3236  	types.DynamicData
  3237  
  3238  	// `True` - if the desired state is valid for application,
  3239  	// `False` - otherwise.
  3240  	Valid bool `xml:"valid" json:"valid"`
  3241  	// Detailed per-solution result of the validation.
  3242  	SolutionResult []SolutionsSolutionValidationResult `xml:"solutionResult,omitempty" json:"solutionResult,omitempty"`
  3243  }
  3244  
  3245  func init() {
  3246  	types.Add("eam:SolutionsValidationResult", reflect.TypeOf((*SolutionsValidationResult)(nil)).Elem())
  3247  }
  3248  
  3249  type Uninstall UninstallRequestType
  3250  
  3251  func init() {
  3252  	types.Add("eam:Uninstall", reflect.TypeOf((*Uninstall)(nil)).Elem())
  3253  }
  3254  
  3255  type UninstallRequestType struct {
  3256  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3257  }
  3258  
  3259  func init() {
  3260  	types.Add("eam:UninstallRequestType", reflect.TypeOf((*UninstallRequestType)(nil)).Elem())
  3261  }
  3262  
  3263  type UninstallResponse struct {
  3264  }
  3265  
  3266  // Deprecated presence of unknown VMs is no more acceptable.
  3267  //
  3268  // An agent virtual machine has been found in the vCenter inventory that does
  3269  // not belong to any agency in this vSphere ESX Agent Manager server instance.
  3270  //
  3271  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3272  // powers off (if powered on) and deletes the agent virtual machine.
  3273  //
  3274  // This structure may be used only with operations rendered under `/eam`.
  3275  type UnknownAgentVm struct {
  3276  	HostIssue
  3277  
  3278  	// The unknown agent virtual machine.
  3279  	//
  3280  	// Refers instance of `VirtualMachine`.
  3281  	Vm types.ManagedObjectReference `xml:"vm" json:"vm"`
  3282  }
  3283  
  3284  func init() {
  3285  	types.Add("eam:UnknownAgentVm", reflect.TypeOf((*UnknownAgentVm)(nil)).Elem())
  3286  }
  3287  
  3288  type UnregisterAgentVm UnregisterAgentVmRequestType
  3289  
  3290  func init() {
  3291  	types.Add("eam:UnregisterAgentVm", reflect.TypeOf((*UnregisterAgentVm)(nil)).Elem())
  3292  }
  3293  
  3294  // The parameters of `Agency.UnregisterAgentVm`.
  3295  type UnregisterAgentVmRequestType struct {
  3296  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3297  	// The managed object reference to the agent VM.
  3298  	//
  3299  	// Refers instance of `VirtualMachine`.
  3300  	AgentVm types.ManagedObjectReference `xml:"agentVm" json:"agentVm"`
  3301  }
  3302  
  3303  func init() {
  3304  	types.Add("eam:UnregisterAgentVmRequestType", reflect.TypeOf((*UnregisterAgentVmRequestType)(nil)).Elem())
  3305  }
  3306  
  3307  type UnregisterAgentVmResponse struct {
  3308  }
  3309  
  3310  type Update UpdateRequestType
  3311  
  3312  func init() {
  3313  	types.Add("eam:Update", reflect.TypeOf((*Update)(nil)).Elem())
  3314  }
  3315  
  3316  // The parameters of `Agency.Update`.
  3317  type UpdateRequestType struct {
  3318  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3319  	// The new configuration for this <code>Agency</code>
  3320  	Config BaseAgencyConfigInfo `xml:"config,typeattr" json:"config"`
  3321  }
  3322  
  3323  func init() {
  3324  	types.Add("eam:UpdateRequestType", reflect.TypeOf((*UpdateRequestType)(nil)).Elem())
  3325  }
  3326  
  3327  type UpdateResponse struct {
  3328  }
  3329  
  3330  // A VIB module requires the host to be in maintenance mode, but the vSphere ESX Agent Manager
  3331  // is unable toput the host in maintenance mode.
  3332  //
  3333  // This can happen if there are virtual machines running on the host that cannot
  3334  // be moved and must be stopped before the host can enter maintenance mode.
  3335  //
  3336  // This is an active remediable issue. To remediate, the vSphere ESX Agent Manager will try again
  3337  // to put the host into maintenance mode. However, the vSphere ESX Agent Manager will not power
  3338  // off or move any virtual machines to put the host into maintenance mode. This must be
  3339  // done by the client.
  3340  //
  3341  // This structure may be used only with operations rendered under `/eam`.
  3342  type VibCannotPutHostInMaintenanceMode struct {
  3343  	VibIssue
  3344  }
  3345  
  3346  func init() {
  3347  	types.Add("eam:VibCannotPutHostInMaintenanceMode", reflect.TypeOf((*VibCannotPutHostInMaintenanceMode)(nil)).Elem())
  3348  }
  3349  
  3350  // ESXi host is in Maintenance Mode.
  3351  //
  3352  // This prevents powering on and
  3353  // re-configuring Agent Virtual Machines. Also if the host's entering in
  3354  // Maintenance Mode was initiated by vSphere Esx Agent Manager, the same is
  3355  // responsible to initiate exit Maintenance Mode.
  3356  //
  3357  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3358  // puts the host out of Maintenance Mode.
  3359  //
  3360  // This structure may be used only with operations rendered under `/eam`.
  3361  type VibCannotPutHostOutOfMaintenanceMode struct {
  3362  	VibIssue
  3363  }
  3364  
  3365  func init() {
  3366  	types.Add("eam:VibCannotPutHostOutOfMaintenanceMode", reflect.TypeOf((*VibCannotPutHostOutOfMaintenanceMode)(nil)).Elem())
  3367  	types.AddMinAPIVersionForType("eam:VibCannotPutHostOutOfMaintenanceMode", "6.5")
  3368  }
  3369  
  3370  // A VIB module is expected to be installed on a host, but the dependencies,
  3371  // describred within the module, were not satisfied by the host.
  3372  //
  3373  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3374  // attempts the VIB installation again.
  3375  //
  3376  // This structure may be used only with operations rendered under `/eam`.
  3377  type VibDependenciesNotMetByHost struct {
  3378  	VibNotInstalled
  3379  }
  3380  
  3381  func init() {
  3382  	types.Add("eam:VibDependenciesNotMetByHost", reflect.TypeOf((*VibDependenciesNotMetByHost)(nil)).Elem())
  3383  	types.AddMinAPIVersionForType("eam:VibDependenciesNotMetByHost", "6.8")
  3384  }
  3385  
  3386  // A VIB module is expected to be installed on a host, but it failed to install
  3387  // since the VIB package is in an invalid format.
  3388  //
  3389  // The installation is unlikely to
  3390  // succeed until the solution provding the bundle has been upgraded or patched to
  3391  // provide a valid VIB package.
  3392  //
  3393  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager attempts the VIB installation again.
  3394  //
  3395  // This structure may be used only with operations rendered under `/eam`.
  3396  type VibInvalidFormat struct {
  3397  	VibNotInstalled
  3398  }
  3399  
  3400  func init() {
  3401  	types.Add("eam:VibInvalidFormat", reflect.TypeOf((*VibInvalidFormat)(nil)).Elem())
  3402  }
  3403  
  3404  // Base class for all issues related to the VIB modules that belong to an agent.
  3405  //
  3406  // This structure may be used only with operations rendered under `/eam`.
  3407  type VibIssue struct {
  3408  	AgentIssue
  3409  }
  3410  
  3411  func init() {
  3412  	types.Add("eam:VibIssue", reflect.TypeOf((*VibIssue)(nil)).Elem())
  3413  }
  3414  
  3415  // A VIB module is expected to be installed/removed on a host, but it has not
  3416  // been installed/removed.
  3417  //
  3418  // Typically, a more specific issue (a subclass of this
  3419  // issue) indicates the particular reason why the VIB module operation failed.
  3420  //
  3421  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3422  // attempts the VIB operation again.
  3423  // In case of unreachable host vSphere ESX Agent Manager will remediate the
  3424  // issue automatically when the host becomes reachable.
  3425  //
  3426  // This structure may be used only with operations rendered under `/eam`.
  3427  type VibNotInstalled struct {
  3428  	VibIssue
  3429  }
  3430  
  3431  func init() {
  3432  	types.Add("eam:VibNotInstalled", reflect.TypeOf((*VibNotInstalled)(nil)).Elem())
  3433  }
  3434  
  3435  // A VIB module is expected to be installed on a host, but the system
  3436  // requirements, describred within the module, were not satisfied by the host.
  3437  //
  3438  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3439  // attempts the VIB installation again.
  3440  //
  3441  // This structure may be used only with operations rendered under `/eam`.
  3442  type VibRequirementsNotMetByHost struct {
  3443  	VibNotInstalled
  3444  }
  3445  
  3446  func init() {
  3447  	types.Add("eam:VibRequirementsNotMetByHost", reflect.TypeOf((*VibRequirementsNotMetByHost)(nil)).Elem())
  3448  	types.AddMinAPIVersionForType("eam:VibRequirementsNotMetByHost", "6.8")
  3449  }
  3450  
  3451  // A VIB module has been uploaded to the host, but will not be fully installed
  3452  // until the host has been put in maintenance mode.
  3453  //
  3454  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager puts the host into maintenance
  3455  // mode.
  3456  //
  3457  // This structure may be used only with operations rendered under `/eam`.
  3458  type VibRequiresHostInMaintenanceMode struct {
  3459  	VibIssue
  3460  }
  3461  
  3462  func init() {
  3463  	types.Add("eam:VibRequiresHostInMaintenanceMode", reflect.TypeOf((*VibRequiresHostInMaintenanceMode)(nil)).Elem())
  3464  }
  3465  
  3466  // A VIB module has been uploaded to the host, but will not be activated
  3467  // until the host is rebooted.
  3468  //
  3469  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager puts the host into maintenance
  3470  // mode and reboots it.
  3471  //
  3472  // This structure may be used only with operations rendered under `/eam`.
  3473  type VibRequiresHostReboot struct {
  3474  	VibIssue
  3475  }
  3476  
  3477  func init() {
  3478  	types.Add("eam:VibRequiresHostReboot", reflect.TypeOf((*VibRequiresHostReboot)(nil)).Elem())
  3479  }
  3480  
  3481  // A VIB module failed to install, but failed to do so because automatic installation
  3482  // by vSphere ESX Agent Manager is not allowed on the host.
  3483  //
  3484  // This is a passive remediable issue. To remediate, go to VMware Update Manager
  3485  // and install the required bulletins on the host or add the bulletins to the
  3486  // host's image profile.
  3487  //
  3488  // This structure may be used only with operations rendered under `/eam`.
  3489  type VibRequiresManualInstallation struct {
  3490  	VibIssue
  3491  
  3492  	// A non-empty array of bulletins required to be installed on the host.
  3493  	Bulletin []string `xml:"bulletin" json:"bulletin"`
  3494  }
  3495  
  3496  func init() {
  3497  	types.Add("eam:VibRequiresManualInstallation", reflect.TypeOf((*VibRequiresManualInstallation)(nil)).Elem())
  3498  }
  3499  
  3500  // A VIB module failed to uninstall, but failed to do so because automatic uninstallation
  3501  // by vSphere ESX Agent Manager is not allowed on the host.
  3502  //
  3503  // This is a passive remediable issue. To remediate, go to VMware Update Manager
  3504  // and uninstall the required bulletins on the host or remove the bulletins from the
  3505  // host's image profile.
  3506  //
  3507  // This structure may be used only with operations rendered under `/eam`.
  3508  type VibRequiresManualUninstallation struct {
  3509  	VibIssue
  3510  
  3511  	// A non-empty array of bulletins required to be uninstalled on the host.
  3512  	Bulletin []string `xml:"bulletin" json:"bulletin"`
  3513  }
  3514  
  3515  func init() {
  3516  	types.Add("eam:VibRequiresManualUninstallation", reflect.TypeOf((*VibRequiresManualUninstallation)(nil)).Elem())
  3517  }
  3518  
  3519  // A data entity providing information about a VIB.
  3520  //
  3521  // This abstraction contains only those of the VIB attributes which convey
  3522  // important information for the client to identify, preview and select VIBs.
  3523  //
  3524  // This structure may be used only with operations rendered under `/eam`.
  3525  type VibVibInfo struct {
  3526  	types.DynamicData
  3527  
  3528  	Id           string                  `xml:"id" json:"id"`
  3529  	Name         string                  `xml:"name" json:"name"`
  3530  	Version      string                  `xml:"version" json:"version"`
  3531  	Vendor       string                  `xml:"vendor" json:"vendor"`
  3532  	Summary      string                  `xml:"summary" json:"summary"`
  3533  	SoftwareTags *VibVibInfoSoftwareTags `xml:"softwareTags,omitempty" json:"softwareTags,omitempty"`
  3534  	ReleaseDate  time.Time               `xml:"releaseDate" json:"releaseDate"`
  3535  }
  3536  
  3537  func init() {
  3538  	types.Add("eam:VibVibInfo", reflect.TypeOf((*VibVibInfo)(nil)).Elem())
  3539  	types.AddMinAPIVersionForType("eam:VibVibInfo", "6.0")
  3540  }
  3541  
  3542  // A data entity providing information about software tags of a VIB
  3543  //
  3544  // This structure may be used only with operations rendered under `/eam`.
  3545  type VibVibInfoSoftwareTags struct {
  3546  	types.DynamicData
  3547  
  3548  	Tags []string `xml:"tags,omitempty" json:"tags,omitempty"`
  3549  }
  3550  
  3551  func init() {
  3552  	types.Add("eam:VibVibInfoSoftwareTags", reflect.TypeOf((*VibVibInfoSoftwareTags)(nil)).Elem())
  3553  	types.AddMinAPIVersionForType("eam:VibVibInfoSoftwareTags", "6.5")
  3554  }
  3555  
  3556  // Specifies an SSL policy that trusts any SSL certificate.
  3557  //
  3558  // This structure may be used only with operations rendered under `/eam`.
  3559  type VibVibServicesAnyCertificate struct {
  3560  	VibVibServicesSslTrust
  3561  }
  3562  
  3563  func init() {
  3564  	types.Add("eam:VibVibServicesAnyCertificate", reflect.TypeOf((*VibVibServicesAnyCertificate)(nil)).Elem())
  3565  	types.AddMinAPIVersionForType("eam:VibVibServicesAnyCertificate", "8.2")
  3566  }
  3567  
  3568  // Specifies an SSL policy that trusts one specific pinned PEM encoded SSL
  3569  // certificate.
  3570  //
  3571  // This structure may be used only with operations rendered under `/eam`.
  3572  type VibVibServicesPinnedPemCertificate struct {
  3573  	VibVibServicesSslTrust
  3574  
  3575  	// PEM encoded pinned SSL certificate of the server that needs to be
  3576  	// trusted.
  3577  	SslCertificate string `xml:"sslCertificate" json:"sslCertificate"`
  3578  }
  3579  
  3580  func init() {
  3581  	types.Add("eam:VibVibServicesPinnedPemCertificate", reflect.TypeOf((*VibVibServicesPinnedPemCertificate)(nil)).Elem())
  3582  	types.AddMinAPIVersionForType("eam:VibVibServicesPinnedPemCertificate", "8.2")
  3583  }
  3584  
  3585  type VibVibServicesSslTrust struct {
  3586  	types.DynamicData
  3587  }
  3588  
  3589  func init() {
  3590  	types.Add("eam:VibVibServicesSslTrust", reflect.TypeOf((*VibVibServicesSslTrust)(nil)).Elem())
  3591  }
  3592  
  3593  // An agent virtual machine is corrupted.
  3594  //
  3595  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager deletes and
  3596  // reprovisions the agent virtual machine. To remediate manually, fix the missing file issue and power on the
  3597  // agent virtual machine.
  3598  //
  3599  // This structure may be used only with operations rendered under `/eam`.
  3600  type VmCorrupted struct {
  3601  	VmIssue
  3602  
  3603  	// An optional path for a missing file.
  3604  	MissingFile string `xml:"missingFile,omitempty" json:"missingFile,omitempty"`
  3605  }
  3606  
  3607  func init() {
  3608  	types.Add("eam:VmCorrupted", reflect.TypeOf((*VmCorrupted)(nil)).Elem())
  3609  }
  3610  
  3611  // An agent virtual machine is expected to be removed from a host, but the agent virtual machine has not
  3612  // been removed.
  3613  //
  3614  // Typically, a more specific issue (a subclass of this issue)
  3615  // indicates the particular reason why vSphere ESX Agent Manager was unable to remove the
  3616  // agent virtual machine, such as the host is in maintenance mode, powered off or in standby
  3617  // mode.
  3618  //
  3619  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager redeploys the agent.
  3620  //
  3621  // This structure may be used only with operations rendered under `/eam`.
  3622  type VmDeployed struct {
  3623  	VmIssue
  3624  }
  3625  
  3626  func init() {
  3627  	types.Add("eam:VmDeployed", reflect.TypeOf((*VmDeployed)(nil)).Elem())
  3628  }
  3629  
  3630  // Base class for all issues related to the deployed virtual machine for a
  3631  // particular agent.
  3632  //
  3633  // This structure may be used only with operations rendered under `/eam`.
  3634  type VmIssue struct {
  3635  	AgentIssue
  3636  
  3637  	// The virtual machine to which this issue is related.
  3638  	//
  3639  	// Refers instance of `VirtualMachine`.
  3640  	Vm types.ManagedObjectReference `xml:"vm" json:"vm"`
  3641  }
  3642  
  3643  func init() {
  3644  	types.Add("eam:VmIssue", reflect.TypeOf((*VmIssue)(nil)).Elem())
  3645  }
  3646  
  3647  // Deprecated template agent VMs are not used anymore by VM deployment and
  3648  // monitoring.
  3649  //
  3650  // An agent virtual machine is a virtual machine template.
  3651  //
  3652  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3653  // converts the agent virtual machine template to a virtual machine.
  3654  //
  3655  // This structure may be used only with operations rendered under `/eam`.
  3656  type VmMarkedAsTemplate struct {
  3657  	VmIssue
  3658  }
  3659  
  3660  func init() {
  3661  	types.Add("eam:VmMarkedAsTemplate", reflect.TypeOf((*VmMarkedAsTemplate)(nil)).Elem())
  3662  }
  3663  
  3664  // An agent virtual machine is expected to be deployed on a host, but the agent virtual machine has not
  3665  // been deployed.
  3666  //
  3667  // Typically, a more specific issue (a subclass of this issue)
  3668  // indicates the particular reason why vSphere ESX Agent Manager was unable to deploy the
  3669  // agent, such as being unable to access the OVF package for the agent or a missing host
  3670  // configuration. This issue can also happen if the agent virtual machine is explicitly deleted
  3671  // from the host.
  3672  //
  3673  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager redeploys the agent virtual machine.
  3674  //
  3675  // This structure may be used only with operations rendered under `/eam`.
  3676  type VmNotDeployed struct {
  3677  	AgentIssue
  3678  }
  3679  
  3680  func init() {
  3681  	types.Add("eam:VmNotDeployed", reflect.TypeOf((*VmNotDeployed)(nil)).Elem())
  3682  }
  3683  
  3684  // An agent virtual machine exists on a host, but the host is no longer part of scope for the
  3685  // agency.
  3686  //
  3687  // This typically happens if a host is disconnected when the agency
  3688  // configuration is changed.
  3689  //
  3690  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager deletes the agent virtual machine.
  3691  //
  3692  // This structure may be used only with operations rendered under `/eam`.
  3693  type VmOrphaned struct {
  3694  	VmIssue
  3695  }
  3696  
  3697  func init() {
  3698  	types.Add("eam:VmOrphaned", reflect.TypeOf((*VmOrphaned)(nil)).Elem())
  3699  }
  3700  
  3701  // An agent virtual machine is expected to be powered on, but the agent virtual machine is powered off.
  3702  //
  3703  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3704  // powers on the agent virtual machine.
  3705  //
  3706  // This structure may be used only with operations rendered under `/eam`.
  3707  type VmPoweredOff struct {
  3708  	VmIssue
  3709  }
  3710  
  3711  func init() {
  3712  	types.Add("eam:VmPoweredOff", reflect.TypeOf((*VmPoweredOff)(nil)).Elem())
  3713  }
  3714  
  3715  // An agent virtual machine is expected to be powered off, but the agent virtual machine is powered on.
  3716  //
  3717  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3718  // powers off the agent virtual machine.
  3719  //
  3720  // This structure may be used only with operations rendered under `/eam`.
  3721  type VmPoweredOn struct {
  3722  	VmIssue
  3723  }
  3724  
  3725  func init() {
  3726  	types.Add("eam:VmPoweredOn", reflect.TypeOf((*VmPoweredOn)(nil)).Elem())
  3727  }
  3728  
  3729  // An agent virtual machine is expected to be deployed on a host, but the agent
  3730  // virtual machine cannot be deployed because the host is in Maintenance Mode.
  3731  //
  3732  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3733  // takes the host out of Maintenance Mode and deploys the agent virtual machine.
  3734  //
  3735  // Resolving this issue in vSphere Lifecyle Manager environemnt will be no-op.
  3736  // In those cases user must take the host out of Maintenance Mode manually or
  3737  // wait vSphere Lifecycle Maanger cluster remediation to complete (if any).
  3738  //
  3739  // This structure may be used only with operations rendered under `/eam`.
  3740  type VmRequiresHostOutOfMaintenanceMode struct {
  3741  	VmNotDeployed
  3742  }
  3743  
  3744  func init() {
  3745  	types.Add("eam:VmRequiresHostOutOfMaintenanceMode", reflect.TypeOf((*VmRequiresHostOutOfMaintenanceMode)(nil)).Elem())
  3746  	types.AddMinAPIVersionForType("eam:VmRequiresHostOutOfMaintenanceMode", "7.2")
  3747  }
  3748  
  3749  // An agent virtual machine is expected to be powered on, but the agent virtual machine is suspended.
  3750  //
  3751  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager powers on the agent virtual machine.
  3752  //
  3753  // This structure may be used only with operations rendered under `/eam`.
  3754  type VmSuspended struct {
  3755  	VmIssue
  3756  }
  3757  
  3758  func init() {
  3759  	types.Add("eam:VmSuspended", reflect.TypeOf((*VmSuspended)(nil)).Elem())
  3760  }
  3761  
  3762  // Deprecated eAM does not try to override any action powerfull user has taken.
  3763  //
  3764  // An agent virtual machine is expected to be located in a designated agent
  3765  // virtual machine folder, but is found in a different folder.
  3766  //
  3767  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3768  // moves the agent virtual machine back into the designated agent folder.
  3769  //
  3770  // This structure may be used only with operations rendered under `/eam`.
  3771  type VmWrongFolder struct {
  3772  	VmIssue
  3773  
  3774  	// The folder in which the virtual machine currently resides.
  3775  	//
  3776  	// Refers instance of `Folder`.
  3777  	CurrentFolder types.ManagedObjectReference `xml:"currentFolder" json:"currentFolder"`
  3778  	// The ESX agent folder in which the virtual machine should reside.
  3779  	//
  3780  	// Refers instance of `Folder`.
  3781  	RequiredFolder types.ManagedObjectReference `xml:"requiredFolder" json:"requiredFolder"`
  3782  }
  3783  
  3784  func init() {
  3785  	types.Add("eam:VmWrongFolder", reflect.TypeOf((*VmWrongFolder)(nil)).Elem())
  3786  }
  3787  
  3788  // Deprecated eAM does not try to override any action powerfull user has taken.
  3789  //
  3790  // An agent virtual machine is expected to be located in a designated agent
  3791  // virtual machine resource pool, but is found in a different resource pool.
  3792  //
  3793  // This is an active remediable issue. To remediate, vSphere ESX Agent Manager
  3794  // moves the agent virtual machine back into the designated agent resource pool.
  3795  //
  3796  // This structure may be used only with operations rendered under `/eam`.
  3797  type VmWrongResourcePool struct {
  3798  	VmIssue
  3799  
  3800  	// The resource pool in which the VM currently resides.
  3801  	//
  3802  	// Refers instance of `ResourcePool`.
  3803  	CurrentResourcePool types.ManagedObjectReference `xml:"currentResourcePool" json:"currentResourcePool"`
  3804  	// The ESX agent resource pool in which the VM should reside.
  3805  	//
  3806  	// Refers instance of `ResourcePool`.
  3807  	RequiredResourcePool types.ManagedObjectReference `xml:"requiredResourcePool" json:"requiredResourcePool"`
  3808  }
  3809  
  3810  func init() {
  3811  	types.Add("eam:VmWrongResourcePool", reflect.TypeOf((*VmWrongResourcePool)(nil)).Elem())
  3812  }
  3813  
  3814  type VersionURI string
  3815  
  3816  func init() {
  3817  	types.Add("eam:versionURI", reflect.TypeOf((*VersionURI)(nil)).Elem())
  3818  }