# Managed Object - VsanObjectSystem(vim.cluster.VsanObjectSystem)

See also
  ComputeResource, VirtualMachineProfileSpec, VsanObjectIdentityAndHealth, VsanObjectInformation, VsanObjectQuerySpec
Since
  vSphere API 5.5

## Managed Object Description

This managed object type provides the service interface for setting the storage policy to one vSAN object, querying the vSAN object status information, i.e., its storage profile, its health status.
The ManagedEntity can be accessed with MOID of 'vsan-cluster-object-system', through vSAN service at vCenter server side. And it can be accessed with MOID of 'vsan-object-system', through vSAN service at ESXi host side.

Properties

Name | Type | Description
--- | --- | ---
None

Methods

Methods defined in this Managed Object
VosQueryVsanObjectInformation, VosSetVsanObjectPolicy, VsanQueryObjectIdentities

# VosQueryVsanObjectInformation(queryVsanObjectInformation)

Get information about the vSAN object/directory.
If it's called in VC, the spbmProfileGenerationId can be safely ignored in vim.cluster.VsanObjectQuerySpec, it will be automatically set to the correct value by using SPBM service. If it's called in host, both fields in VsanObjectQuerySpec should be provided, if spbmProfileGenerationId is not provided, the one from vSAN CMMDS will be used here, as a result, the mismatch field for storage compliance result is not reliable in some cases, e.g. profile is updated or deleted in vCenter after the vSAN object creation.
If the vSAN object can not be found, FileNotFound exception will be raised. If the vSAN object failed to read the policy, e.g. because it is not accessible, FileNotReadable exception will be raised.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
System.Read | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanObjectSystem used to make the method call.
cluster* | ManagedObjectReference to a ComputeResource | vSAN cluster. Ignored if called against host. Since vSphere API 5.5
vsanObjectQuerySpecs | VsanObjectQuerySpec[] | vSAN object query spec list.

*Need not be set

Return Value

Type | Description
--- | ---
VsanObjectInformation[] | Object information list.

Faults

Type | Description
--- | ---
FileNotFound |
FileNotWritable |
InvalidArgument |
NotSupported |
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VosQueryVsanObjectInformation" type="vsan:VosQueryVsanObjectInformationRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VosQueryVsanObjectInformationResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VsanObjectInformation" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# VosSetVsanObjectPolicy(setVsanObjectPolicy)

Set the policy of the vSAN object. The cluster parameters is ignored if called on ESX.
Profile can be 3 formats:
1. `VirtualMachineEmptyProfileSpec` means to use the empty vSAN policy. This is not the default policy, but a policy where all fields have default values.
2. `VirtualMachineDefinedProfileSpec` where profileId is set, in which case this profileId will be looked up in SPBM for the detailed policy information.
3. `VirtualMachineDefinedProfileSpec` where profileId is an empty string and instead the profileData is set for extensionKey 'com.vmware.vim.sps'. In this case the objectData field can be either the vSAN expression format, or a SPBM XML string. If no profile is supplied, and the call is executed against vCenter, then SPBM will be consulted for the vSAN datastore's default profile.
When this method returns successfully, the profile has been applied, but vSAN may still be remediating in order to implement the new policy. The health state of the object and resync information should be monitored to check on the progress.
Only the third option for profile is available when called on ESXi, other formats will raise InvalidArgument exception. If SPBM needs to be contacted, but SPBM is not available, RuntimeFault exception will be raised. If the profileId can not be resolved with SPBM, InvalidArgument exception will be raised. If objectData was provided but is neither of the two supported formats, InvalidArgument exception will be raised. If the vSAN object can not be found, FileNotFound exception will be raised. If the vSAN object failed to set the policy, e.g. because it is not accessible, FileNotWritable exception will be raised. If called against vCenter, but no ESXi host could be contacted to perform the operation, the exception is logged and the False is returned by this method. NOTE: This API requires additional Global.Settings privilege if called against vSphere 65P02 release.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
Global.Settings | RootFolder

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanObjectSystem used to make the method call.
cluster* | ManagedObjectReference to a ComputeResource | vSAN cluster. Ignored if called against host. Since vSphere API 5.5
vsanObjectUuid | xsd:string | vSAN object UUID.
profile* | VirtualMachineProfileSpec | See above description for all possible options. Since vSphere API 5.5

*Need not be set

Return Value

Type | Description
--- | ---
xsd:boolean | True when the operation successfully, False when it is failed and there is no exception raised.

Faults

Type | Description
--- | ---
FileNotFound |
FileNotWritable |
InvalidArgument |
NotSupported |
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VosSetVsanObjectPolicy" type="vsan:VosSetVsanObjectPolicyRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VosSetVsanObjectPolicyResponse"> <complexType> <sequence> <element name="returnval" type="xsd:boolean"/> </sequence> </complexType> </element>

# VsanQueryObjectIdentities(queryObjectIdentities)

Map from vSAN object UUIDs to their identities. The results contain the identities of all objects that could be resolved. The identity includes things like the object type, references to the VM the object belongs to and such. If called against a host, the cluster argument is ignored and only those objects are resolved which can be resolved by that host. For VM related objects a host can only resolve the objects if the VM they belong to is registered on that host. If called against vCenter, all connected hosts will be contacted for this information and the results will be aggregated. Any VMs registered with hosts which are disconnected will hence not be resolved.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
System.Read | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanObjectSystem used to make the method call.
cluster* | ManagedObjectReference to a ComputeResource | vSAN cluster. Ignored if called against host. Since vSphere API 5.5
objUuids* | xsd:string[] | The vSAN object UUIDs for querying. Unset to query all of vSAN objects Since vSphere API 5.5
objTypes* | xsd:string[] | Querying the vSAN objects with given types, only the object whose type in this list will be returned. Unset to query all of vSAN objects with any type Since vSphere API 6.5
includeHealth* | xsd:boolean | If the result includes the object health status. Default is False Since vSphere API 5.5
includeObjIdentity* | xsd:boolean | If the result includes all of the object identity. Default is false if it's unset Since vSphere API 5.5
includeSpaceSummary* | xsd:boolean | If the result includes the vSAN space consumption summarizing by object type. Currently, it's not supported to include both of space summary and object identity in the result. Default is false. Since vSphere API 5.5

*Need not be set

Return Value

Type | Description
--- | ---
VsanObjectIdentityAndHealth | Object information structure

Faults

Type | Description
--- | ---
NotSupported |
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFault |

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanQueryObjectIdentities" type="vsan:VsanQueryObjectIdentitiesRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanQueryObjectIdentitiesResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VsanObjectIdentityAndHealth" minOccurs="0"/> </sequence> </complexType> </element>