github.com/vmware/govmomi@v0.37.2/cns/types/types.go (about)

     1  /*
     2  Copyright (c) 2019 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  	vsanfstypes "github.com/vmware/govmomi/vsan/vsanfs/types"
    25  )
    26  
    27  type CnsCreateVolumeRequestType struct {
    28  	This        types.ManagedObjectReference `xml:"_this"`
    29  	CreateSpecs []CnsVolumeCreateSpec        `xml:"createSpecs,omitempty"`
    30  }
    31  
    32  func init() {
    33  	types.Add("CnsCreateVolumeRequestType", reflect.TypeOf((*CnsCreateVolumeRequestType)(nil)).Elem())
    34  }
    35  
    36  type CnsCreateVolume CnsCreateVolumeRequestType
    37  
    38  func init() {
    39  	types.Add("CnsCreateVolume", reflect.TypeOf((*CnsCreateVolume)(nil)).Elem())
    40  }
    41  
    42  type CnsCreateVolumeResponse struct {
    43  	Returnval types.ManagedObjectReference `xml:"returnval"`
    44  }
    45  
    46  type CnsEntityMetadata struct {
    47  	types.DynamicData
    48  
    49  	EntityName string           `xml:"entityName"`
    50  	Labels     []types.KeyValue `xml:"labels,omitempty"`
    51  	Delete     bool             `xml:"delete,omitempty"`
    52  	ClusterID  string           `xml:"clusterId,omitempty"`
    53  }
    54  
    55  func init() {
    56  	types.Add("CnsEntityMetadata", reflect.TypeOf((*CnsEntityMetadata)(nil)).Elem())
    57  }
    58  
    59  type CnsKubernetesEntityReference struct {
    60  	EntityType string `xml:"entityType"`
    61  	EntityName string `xml:"entityName"`
    62  	Namespace  string `xml:"namespace,omitempty"`
    63  	ClusterID  string `xml:"clusterId,omitempty"`
    64  }
    65  
    66  type CnsKubernetesEntityMetadata struct {
    67  	CnsEntityMetadata
    68  
    69  	EntityType     string                         `xml:"entityType"`
    70  	Namespace      string                         `xml:"namespace,omitempty"`
    71  	ReferredEntity []CnsKubernetesEntityReference `xml:"referredEntity,omitempty"`
    72  }
    73  
    74  func init() {
    75  	types.Add("CnsKubernetesEntityMetadata", reflect.TypeOf((*CnsKubernetesEntityMetadata)(nil)).Elem())
    76  }
    77  
    78  type CnsVolumeMetadata struct {
    79  	types.DynamicData
    80  
    81  	ContainerCluster      CnsContainerCluster     `xml:"containerCluster"`
    82  	EntityMetadata        []BaseCnsEntityMetadata `xml:"entityMetadata,typeattr,omitempty"`
    83  	ContainerClusterArray []CnsContainerCluster   `xml:"containerClusterArray,omitempty"`
    84  }
    85  
    86  func init() {
    87  	types.Add("CnsVolumeMetadata", reflect.TypeOf((*CnsVolumeMetadata)(nil)).Elem())
    88  }
    89  
    90  type CnsVolumeCreateSpec struct {
    91  	types.DynamicData
    92  	Name                 string                                `xml:"name"`
    93  	VolumeType           string                                `xml:"volumeType"`
    94  	Datastores           []types.ManagedObjectReference        `xml:"datastores,omitempty"`
    95  	Metadata             CnsVolumeMetadata                     `xml:"metadata,omitempty"`
    96  	BackingObjectDetails BaseCnsBackingObjectDetails           `xml:"backingObjectDetails,typeattr"`
    97  	Profile              []types.BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"`
    98  	CreateSpec           BaseCnsBaseCreateSpec                 `xml:"createSpec,omitempty,typeattr"`
    99  	VolumeSource         BaseCnsVolumeSource                   `xml:"volumeSource,omitempty,typeattr"`
   100  }
   101  
   102  func init() {
   103  	types.Add("CnsVolumeCreateSpec", reflect.TypeOf((*CnsVolumeCreateSpec)(nil)).Elem())
   104  }
   105  
   106  type CnsUpdateVolumeMetadataRequestType struct {
   107  	This        types.ManagedObjectReference  `xml:"_this"`
   108  	UpdateSpecs []CnsVolumeMetadataUpdateSpec `xml:"updateSpecs,omitempty"`
   109  }
   110  
   111  func init() {
   112  	types.Add("CnsUpdateVolumeMetadataRequestType", reflect.TypeOf((*CnsUpdateVolumeMetadataRequestType)(nil)).Elem())
   113  }
   114  
   115  type CnsUpdateVolumeMetadata CnsUpdateVolumeMetadataRequestType
   116  
   117  func init() {
   118  	types.Add("CnsUpdateVolumeMetadata", reflect.TypeOf((*CnsUpdateVolumeMetadata)(nil)).Elem())
   119  }
   120  
   121  type CnsUpdateVolumeMetadataResponse struct {
   122  	Returnval types.ManagedObjectReference `xml:"returnval"`
   123  }
   124  
   125  type CnsVolumeMetadataUpdateSpec struct {
   126  	types.DynamicData
   127  
   128  	VolumeId CnsVolumeId       `xml:"volumeId"`
   129  	Metadata CnsVolumeMetadata `xml:"metadata,omitempty"`
   130  }
   131  
   132  func init() {
   133  	types.Add("CnsVolumeMetadataUpdateSpec", reflect.TypeOf((*CnsVolumeMetadataUpdateSpec)(nil)).Elem())
   134  }
   135  
   136  type CnsDeleteVolumeRequestType struct {
   137  	This       types.ManagedObjectReference `xml:"_this"`
   138  	VolumeIds  []CnsVolumeId                `xml:"volumeIds"`
   139  	DeleteDisk bool                         `xml:"deleteDisk"`
   140  }
   141  
   142  func init() {
   143  	types.Add("CnsDeleteVolumeRequestType", reflect.TypeOf((*CnsDeleteVolumeRequestType)(nil)).Elem())
   144  }
   145  
   146  type CnsDeleteVolume CnsDeleteVolumeRequestType
   147  
   148  func init() {
   149  	types.Add("CnsDeleteVolume", reflect.TypeOf((*CnsDeleteVolume)(nil)).Elem())
   150  }
   151  
   152  type CnsDeleteVolumeResponse struct {
   153  	Returnval types.ManagedObjectReference `xml:"returnval"`
   154  }
   155  
   156  type CnsExtendVolumeRequestType struct {
   157  	This        types.ManagedObjectReference `xml:"_this"`
   158  	ExtendSpecs []CnsVolumeExtendSpec        `xml:"extendSpecs,omitempty"`
   159  }
   160  
   161  func init() {
   162  	types.Add("CnsExtendVolumeRequestType", reflect.TypeOf((*CnsExtendVolumeRequestType)(nil)).Elem())
   163  }
   164  
   165  type CnsExtendVolume CnsExtendVolumeRequestType
   166  
   167  func init() {
   168  	types.Add("CnsExtendVolume", reflect.TypeOf((*CnsExtendVolume)(nil)).Elem())
   169  }
   170  
   171  type CnsExtendVolumeResponse struct {
   172  	Returnval types.ManagedObjectReference `xml:"returnval"`
   173  }
   174  
   175  type CnsVolumeExtendSpec struct {
   176  	types.DynamicData
   177  
   178  	VolumeId     CnsVolumeId `xml:"volumeId"`
   179  	CapacityInMb int64       `xml:"capacityInMb"`
   180  }
   181  
   182  func init() {
   183  	types.Add("CnsVolumeExtendSpec", reflect.TypeOf((*CnsVolumeExtendSpec)(nil)).Elem())
   184  }
   185  
   186  type CnsAttachVolumeRequestType struct {
   187  	This        types.ManagedObjectReference `xml:"_this"`
   188  	AttachSpecs []CnsVolumeAttachDetachSpec  `xml:"attachSpecs,omitempty"`
   189  }
   190  
   191  func init() {
   192  	types.Add("CnsAttachVolumeRequestType", reflect.TypeOf((*CnsAttachVolumeRequestType)(nil)).Elem())
   193  }
   194  
   195  type CnsAttachVolume CnsAttachVolumeRequestType
   196  
   197  func init() {
   198  	types.Add("CnsAttachVolume", reflect.TypeOf((*CnsAttachVolume)(nil)).Elem())
   199  }
   200  
   201  type CnsAttachVolumeResponse struct {
   202  	Returnval types.ManagedObjectReference `xml:"returnval"`
   203  }
   204  
   205  type CnsDetachVolumeRequestType struct {
   206  	This        types.ManagedObjectReference `xml:"_this"`
   207  	DetachSpecs []CnsVolumeAttachDetachSpec  `xml:"detachSpecs,omitempty"`
   208  }
   209  
   210  func init() {
   211  	types.Add("CnsDetachVolumeRequestType", reflect.TypeOf((*CnsDetachVolumeRequestType)(nil)).Elem())
   212  }
   213  
   214  type CnsDetachVolume CnsDetachVolumeRequestType
   215  
   216  func init() {
   217  	types.Add("CnsDetachVolume", reflect.TypeOf((*CnsDetachVolume)(nil)).Elem())
   218  }
   219  
   220  type CnsDetachVolumeResponse struct {
   221  	Returnval types.ManagedObjectReference `xml:"returnval"`
   222  }
   223  
   224  type CnsVolumeAttachDetachSpec struct {
   225  	types.DynamicData
   226  
   227  	VolumeId CnsVolumeId                  `xml:"volumeId"`
   228  	Vm       types.ManagedObjectReference `xml:"vm"`
   229  }
   230  
   231  func init() {
   232  	types.Add("CnsVolumeAttachDetachSpec", reflect.TypeOf((*CnsVolumeAttachDetachSpec)(nil)).Elem())
   233  }
   234  
   235  type CnsQueryVolume CnsQueryVolumeRequestType
   236  
   237  func init() {
   238  	types.Add("CnsQueryVolume", reflect.TypeOf((*CnsQueryVolume)(nil)).Elem())
   239  }
   240  
   241  type CnsQueryVolumeRequestType struct {
   242  	This   types.ManagedObjectReference `xml:"_this"`
   243  	Filter CnsQueryFilter               `xml:"filter"`
   244  }
   245  
   246  func init() {
   247  	types.Add("CnsQueryVolumeRequestType", reflect.TypeOf((*CnsQueryVolumeRequestType)(nil)).Elem())
   248  }
   249  
   250  type CnsQueryVolumeResponse struct {
   251  	Returnval CnsQueryResult `xml:"returnval"`
   252  }
   253  
   254  type CnsQueryVolumeInfo CnsQueryVolumeInfoRequestType
   255  
   256  func init() {
   257  	types.Add("CnsQueryVolumeInfo", reflect.TypeOf((*CnsQueryVolumeInfo)(nil)).Elem())
   258  }
   259  
   260  type CnsQueryVolumeInfoRequestType struct {
   261  	This      types.ManagedObjectReference `xml:"_this"`
   262  	VolumeIds []CnsVolumeId                `xml:"volumes"`
   263  }
   264  
   265  type CnsQueryVolumeInfoResponse struct {
   266  	Returnval types.ManagedObjectReference `xml:"returnval"`
   267  }
   268  
   269  type CnsQueryAllVolume CnsQueryAllVolumeRequestType
   270  
   271  func init() {
   272  	types.Add("CnsQueryAllVolume", reflect.TypeOf((*CnsQueryAllVolume)(nil)).Elem())
   273  }
   274  
   275  type CnsQueryAllVolumeRequestType struct {
   276  	This      types.ManagedObjectReference `xml:"_this"`
   277  	Filter    CnsQueryFilter               `xml:"filter"`
   278  	Selection CnsQuerySelection            `xml:"selection"`
   279  }
   280  
   281  func init() {
   282  	types.Add("CnsQueryAllVolumeRequestType", reflect.TypeOf((*CnsQueryVolumeRequestType)(nil)).Elem())
   283  }
   284  
   285  type CnsQueryAllVolumeResponse struct {
   286  	Returnval CnsQueryResult `xml:"returnval"`
   287  }
   288  
   289  type CnsContainerCluster struct {
   290  	types.DynamicData
   291  
   292  	ClusterType         string `xml:"clusterType"`
   293  	ClusterId           string `xml:"clusterId"`
   294  	VSphereUser         string `xml:"vSphereUser"`
   295  	ClusterFlavor       string `xml:"clusterFlavor,omitempty"`
   296  	ClusterDistribution string `xml:"clusterDistribution,omitempty"`
   297  }
   298  
   299  func init() {
   300  	types.Add("CnsContainerCluster", reflect.TypeOf((*CnsContainerCluster)(nil)).Elem())
   301  }
   302  
   303  type CnsVolume struct {
   304  	types.DynamicData
   305  
   306  	VolumeId                     CnsVolumeId                 `xml:"volumeId"`
   307  	DatastoreUrl                 string                      `xml:"datastoreUrl,omitempty"`
   308  	Name                         string                      `xml:"name,omitempty"`
   309  	VolumeType                   string                      `xml:"volumeType,omitempty"`
   310  	StoragePolicyId              string                      `xml:"storagePolicyId,omitempty"`
   311  	Metadata                     CnsVolumeMetadata           `xml:"metadata,omitempty"`
   312  	BackingObjectDetails         BaseCnsBackingObjectDetails `xml:"backingObjectDetails,omitempty"`
   313  	ComplianceStatus             string                      `xml:"complianceStatus,omitempty"`
   314  	DatastoreAccessibilityStatus string                      `xml:"datastoreAccessibilityStatus,omitempty"`
   315  	HealthStatus                 string                      `xml:"healthStatus,omitempty"`
   316  }
   317  
   318  func init() {
   319  	types.Add("CnsVolume", reflect.TypeOf((*CnsVolume)(nil)).Elem())
   320  }
   321  
   322  type CnsVolumeOperationResult struct {
   323  	types.DynamicData
   324  
   325  	VolumeId CnsVolumeId                 `xml:"volumeId,omitempty"`
   326  	Fault    *types.LocalizedMethodFault `xml:"fault,omitempty"`
   327  }
   328  
   329  func init() {
   330  	types.Add("CnsVolumeOperationResult", reflect.TypeOf((*CnsVolumeOperationResult)(nil)).Elem())
   331  }
   332  
   333  type CnsVolumeOperationBatchResult struct {
   334  	types.DynamicData
   335  
   336  	VolumeResults []BaseCnsVolumeOperationResult `xml:"volumeResults,omitempty,typeattr"`
   337  }
   338  
   339  func init() {
   340  	types.Add("CnsVolumeOperationBatchResult", reflect.TypeOf((*CnsVolumeOperationBatchResult)(nil)).Elem())
   341  }
   342  
   343  type CnsPlacementResult struct {
   344  	Datastore       types.ManagedObjectReference  `xml:"datastore,omitempty"`
   345  	PlacementFaults []*types.LocalizedMethodFault `xml:"placementFaults,omitempty"`
   346  }
   347  
   348  func init() {
   349  	types.Add("CnsPlacementResult", reflect.TypeOf((*CnsPlacementResult)(nil)).Elem())
   350  }
   351  
   352  type CnsVolumeCreateResult struct {
   353  	CnsVolumeOperationResult
   354  	Name             string               `xml:"name,omitempty"`
   355  	PlacementResults []CnsPlacementResult `xml:"placementResults,omitempty"`
   356  }
   357  
   358  func init() {
   359  	types.Add("CnsVolumeCreateResult", reflect.TypeOf((*CnsVolumeCreateResult)(nil)).Elem())
   360  }
   361  
   362  type CnsVolumeAttachResult struct {
   363  	CnsVolumeOperationResult
   364  
   365  	DiskUUID string `xml:"diskUUID,omitempty"`
   366  }
   367  
   368  func init() {
   369  	types.Add("CnsVolumeAttachResult", reflect.TypeOf((*CnsVolumeAttachResult)(nil)).Elem())
   370  }
   371  
   372  type CnsVolumeId struct {
   373  	types.DynamicData
   374  
   375  	Id string `xml:"id"`
   376  }
   377  
   378  func init() {
   379  	types.Add("CnsVolumeId", reflect.TypeOf((*CnsVolumeId)(nil)).Elem())
   380  }
   381  
   382  type CnsBackingObjectDetails struct {
   383  	types.DynamicData
   384  
   385  	CapacityInMb int64 `xml:"capacityInMb,omitempty"`
   386  }
   387  
   388  func init() {
   389  	types.Add("CnsBackingObjectDetails", reflect.TypeOf((*CnsBackingObjectDetails)(nil)).Elem())
   390  }
   391  
   392  type CnsBlockBackingDetails struct {
   393  	CnsBackingObjectDetails
   394  
   395  	BackingDiskId                  string `xml:"backingDiskId,omitempty"`
   396  	BackingDiskUrlPath             string `xml:"backingDiskUrlPath,omitempty"`
   397  	BackingDiskObjectId            string `xml:"backingDiskObjectId,omitempty"`
   398  	AggregatedSnapshotCapacityInMb int64  `xml:"aggregatedSnapshotCapacityInMb,omitempty"`
   399  }
   400  
   401  func init() {
   402  	types.Add("CnsBlockBackingDetails", reflect.TypeOf((*CnsBlockBackingDetails)(nil)).Elem())
   403  }
   404  
   405  type CnsFileBackingDetails struct {
   406  	CnsBackingObjectDetails
   407  
   408  	BackingFileId string `xml:"backingFileId,omitempty"`
   409  }
   410  
   411  func init() {
   412  	types.Add("CnsFileBackingDetails", reflect.TypeOf((*CnsFileBackingDetails)(nil)).Elem())
   413  }
   414  
   415  type CnsVsanFileShareBackingDetails struct {
   416  	CnsFileBackingDetails
   417  
   418  	Name         string           `xml:"name,omitempty"`
   419  	AccessPoints []types.KeyValue `xml:"accessPoints,omitempty"`
   420  }
   421  
   422  func init() {
   423  	types.Add("CnsVsanFileShareBackingDetails", reflect.TypeOf((*CnsVsanFileShareBackingDetails)(nil)).Elem())
   424  }
   425  
   426  type CnsBaseCreateSpec struct {
   427  	types.DynamicData
   428  }
   429  
   430  func init() {
   431  	types.Add("CnsBaseCreateSpec", reflect.TypeOf((*CnsBaseCreateSpec)(nil)).Elem())
   432  }
   433  
   434  type CnsFileCreateSpec struct {
   435  	CnsBaseCreateSpec
   436  }
   437  
   438  func init() {
   439  	types.Add("CnsFileCreateSpec", reflect.TypeOf((*CnsFileCreateSpec)(nil)).Elem())
   440  }
   441  
   442  type CnsVSANFileCreateSpec struct {
   443  	CnsFileCreateSpec
   444  	SoftQuotaInMb int64                                    `xml:"softQuotaInMb,omitempty"`
   445  	Permission    []vsanfstypes.VsanFileShareNetPermission `xml:"permission,omitempty,typeattr"`
   446  }
   447  
   448  func init() {
   449  	types.Add("CnsVSANFileCreateSpec", reflect.TypeOf((*CnsVSANFileCreateSpec)(nil)).Elem())
   450  }
   451  
   452  type CnsQueryFilter struct {
   453  	types.DynamicData
   454  
   455  	VolumeIds                    []CnsVolumeId                  `xml:"volumeIds,omitempty"`
   456  	Names                        []string                       `xml:"names,omitempty"`
   457  	ContainerClusterIds          []string                       `xml:"containerClusterIds,omitempty"`
   458  	StoragePolicyId              string                         `xml:"storagePolicyId,omitempty"`
   459  	Datastores                   []types.ManagedObjectReference `xml:"datastores,omitempty"`
   460  	Labels                       []types.KeyValue               `xml:"labels,omitempty"`
   461  	ComplianceStatus             string                         `xml:"complianceStatus,omitempty"`
   462  	DatastoreAccessibilityStatus string                         `xml:"datastoreAccessibilityStatus,omitempty"`
   463  	Cursor                       *CnsCursor                     `xml:"cursor,omitempty"`
   464  	HealthStatus                 string                         `xml:"healthStatus,omitempty"`
   465  }
   466  
   467  func init() {
   468  	types.Add("CnsQueryFilter", reflect.TypeOf((*CnsQueryFilter)(nil)).Elem())
   469  }
   470  
   471  type CnsQuerySelection struct {
   472  	types.DynamicData
   473  
   474  	Names []string `xml:"names,omitempty"`
   475  }
   476  
   477  type CnsQueryResult struct {
   478  	types.DynamicData
   479  
   480  	Volumes []CnsVolume `xml:"volumes,omitempty"`
   481  	Cursor  CnsCursor   `xml:"cursor"`
   482  }
   483  
   484  func init() {
   485  	types.Add("CnsQueryResult", reflect.TypeOf((*CnsQueryResult)(nil)).Elem())
   486  }
   487  
   488  type CnsVolumeInfo struct {
   489  	types.DynamicData
   490  }
   491  
   492  func init() {
   493  	types.Add("CnsVolumeInfo", reflect.TypeOf((*CnsVolumeInfo)(nil)).Elem())
   494  }
   495  
   496  type CnsBlockVolumeInfo struct {
   497  	CnsVolumeInfo
   498  
   499  	VStorageObject types.VStorageObject `xml:"vStorageObject"`
   500  }
   501  
   502  func init() {
   503  	types.Add("CnsBlockVolumeInfo", reflect.TypeOf((*CnsBlockVolumeInfo)(nil)).Elem())
   504  }
   505  
   506  type CnsQueryVolumeInfoResult struct {
   507  	CnsVolumeOperationResult
   508  
   509  	VolumeInfo BaseCnsVolumeInfo `xml:"volumeInfo,typeattr,omitempty"`
   510  }
   511  
   512  func init() {
   513  	types.Add("CnsQueryVolumeInfoResult", reflect.TypeOf((*CnsQueryVolumeInfoResult)(nil)).Elem())
   514  }
   515  
   516  type CnsRelocateVolumeRequestType struct {
   517  	This          types.ManagedObjectReference `xml:"_this"`
   518  	RelocateSpecs []BaseCnsVolumeRelocateSpec  `xml:"relocateSpecs,typeattr"`
   519  }
   520  
   521  func init() {
   522  	types.Add("CnsRelocateVolumeRequestType", reflect.TypeOf((*CnsRelocateVolumeRequestType)(nil)).Elem())
   523  }
   524  
   525  type CnsRelocateVolume CnsRelocateVolumeRequestType
   526  
   527  func init() {
   528  	types.Add("CnsRelocateVolume", reflect.TypeOf((*CnsRelocateVolume)(nil)).Elem())
   529  }
   530  
   531  type CnsRelocateVolumeResponse struct {
   532  	Returnval types.ManagedObjectReference `xml:"returnval"`
   533  }
   534  
   535  type CnsVolumeRelocateSpec struct {
   536  	types.DynamicData
   537  
   538  	VolumeId       CnsVolumeId                           `xml:"volumeId"`
   539  	Datastore      types.ManagedObjectReference          `xml:"datastore"`
   540  	Profile        []types.BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"`
   541  	ServiceLocator *types.ServiceLocator                 `xml:"serviceLocator,omitempty"`
   542  }
   543  
   544  func init() {
   545  	types.Add("CnsVolumeRelocateSpec", reflect.TypeOf((*CnsVolumeRelocateSpec)(nil)).Elem())
   546  }
   547  
   548  type CnsBlockVolumeRelocateSpec struct {
   549  	CnsVolumeRelocateSpec
   550  }
   551  
   552  func NewCnsBlockVolumeRelocateSpec(volumeId string, datastore types.ManagedObjectReference, profile ...types.BaseVirtualMachineProfileSpec) CnsBlockVolumeRelocateSpec {
   553  	cnsVolumeID := CnsVolumeId{
   554  		Id: volumeId,
   555  	}
   556  	volumeSpec := CnsVolumeRelocateSpec{
   557  		VolumeId:  cnsVolumeID,
   558  		Datastore: datastore,
   559  		Profile:   profile,
   560  	}
   561  	blockVolSpec := CnsBlockVolumeRelocateSpec{
   562  		CnsVolumeRelocateSpec: volumeSpec,
   563  	}
   564  	return blockVolSpec
   565  }
   566  
   567  func init() {
   568  	types.Add("CnsBlockVolumeRelocateSpec", reflect.TypeOf((*CnsBlockVolumeRelocateSpec)(nil)).Elem())
   569  }
   570  
   571  type CnsCursor struct {
   572  	types.DynamicData
   573  
   574  	Offset       int64 `xml:"offset"`
   575  	Limit        int64 `xml:"limit"`
   576  	TotalRecords int64 `xml:"totalRecords,omitempty"`
   577  }
   578  
   579  func init() {
   580  	types.Add("CnsCursor", reflect.TypeOf((*CnsCursor)(nil)).Elem())
   581  }
   582  
   583  type CnsFault struct {
   584  	types.BaseMethodFault `xml:"fault,typeattr"`
   585  
   586  	Reason string `xml:"reason,omitempty"`
   587  }
   588  
   589  func init() {
   590  	types.Add("CnsFault", reflect.TypeOf((*CnsFault)(nil)).Elem())
   591  }
   592  
   593  type CnsVolumeNotFoundFault struct {
   594  	CnsFault
   595  
   596  	VolumeId CnsVolumeId `xml:"volumeId"`
   597  }
   598  
   599  func init() {
   600  	types.Add("CnsVolumeNotFoundFault", reflect.TypeOf((*CnsVolumeNotFoundFault)(nil)).Elem())
   601  }
   602  
   603  type CnsAlreadyRegisteredFault struct {
   604  	CnsFault `xml:"fault,typeattr"`
   605  
   606  	VolumeId CnsVolumeId `xml:"volumeId,omitempty"`
   607  }
   608  
   609  func init() {
   610  	types.Add("CnsAlreadyRegisteredFault", reflect.TypeOf((*CnsAlreadyRegisteredFault)(nil)).Elem())
   611  }
   612  
   613  type CnsSnapshotNotFoundFault struct {
   614  	CnsFault
   615  
   616  	VolumeId   CnsVolumeId   `xml:"volumeId,omitempty"`
   617  	SnapshotId CnsSnapshotId `xml:"SnapshotId"`
   618  }
   619  
   620  func init() {
   621  	types.Add("CnsSnapshotNotFoundFault", reflect.TypeOf((*CnsSnapshotNotFoundFault)(nil)).Elem())
   622  }
   623  
   624  type CnsSnapshotCreatedFault struct {
   625  	CnsFault
   626  
   627  	VolumeId   CnsVolumeId                  `xml:"volumeId"`
   628  	SnapshotId CnsSnapshotId                `xml:"SnapshotId"`
   629  	Datastore  types.ManagedObjectReference `xml:"datastore"`
   630  }
   631  
   632  func init() {
   633  	types.Add("CnsSnapshotCreatedFault", reflect.TypeOf((*CnsSnapshotCreatedFault)(nil)).Elem())
   634  }
   635  
   636  type CnsConfigureVolumeACLs CnsConfigureVolumeACLsRequestType
   637  
   638  func init() {
   639  	types.Add("vsan:CnsConfigureVolumeACLs", reflect.TypeOf((*CnsConfigureVolumeACLs)(nil)).Elem())
   640  }
   641  
   642  type CnsConfigureVolumeACLsRequestType struct {
   643  	This           types.ManagedObjectReference `xml:"_this"`
   644  	ACLConfigSpecs []CnsVolumeACLConfigureSpec  `xml:"ACLConfigSpecs"`
   645  }
   646  
   647  func init() {
   648  	types.Add("vsan:CnsConfigureVolumeACLsRequestType", reflect.TypeOf((*CnsConfigureVolumeACLsRequestType)(nil)).Elem())
   649  }
   650  
   651  type CnsConfigureVolumeACLsResponse struct {
   652  	Returnval types.ManagedObjectReference `xml:"returnval"`
   653  }
   654  
   655  type CnsVolumeACLConfigureSpec struct {
   656  	types.DynamicData
   657  
   658  	VolumeId              CnsVolumeId               `xml:"volumeId"`
   659  	AccessControlSpecList []CnsNFSAccessControlSpec `xml:"accessControlSpecList,typeattr"`
   660  }
   661  
   662  type CnsNFSAccessControlSpec struct {
   663  	types.DynamicData
   664  	Permission []vsanfstypes.VsanFileShareNetPermission `xml:"netPermission,omitempty,typeattr"`
   665  	Delete     bool                                     `xml:"delete,omitempty"`
   666  }
   667  
   668  func init() {
   669  	types.Add("CnsNFSAccessControlSpec", reflect.TypeOf((*CnsNFSAccessControlSpec)(nil)).Elem())
   670  }
   671  
   672  type CnsQueryAsync CnsQueryAsyncRequestType
   673  
   674  func init() {
   675  	types.Add("CnsQueryAsync", reflect.TypeOf((*CnsQueryAsync)(nil)).Elem())
   676  }
   677  
   678  type CnsQueryAsyncRequestType struct {
   679  	This      types.ManagedObjectReference `xml:"_this"`
   680  	Filter    CnsQueryFilter               `xml:"filter"`
   681  	Selection *CnsQuerySelection           `xml:"selection,omitempty"`
   682  }
   683  
   684  func init() {
   685  	types.Add("CnsQueryAsyncRequestType", reflect.TypeOf((*CnsQueryAsyncRequestType)(nil)).Elem())
   686  }
   687  
   688  type CnsQueryAsyncResponse struct {
   689  	Returnval types.ManagedObjectReference `xml:"returnval"`
   690  }
   691  
   692  type CnsAsyncQueryResult struct {
   693  	CnsVolumeOperationResult
   694  
   695  	QueryResult CnsQueryResult `xml:"queryResult,omitempty"`
   696  }
   697  
   698  func init() {
   699  	types.Add("CnsAsyncQueryResult", reflect.TypeOf((*CnsAsyncQueryResult)(nil)).Elem())
   700  }
   701  
   702  // Cns Snapshot Types
   703  
   704  type CnsCreateSnapshotsRequestType struct {
   705  	This          types.ManagedObjectReference `xml:"_this"`
   706  	SnapshotSpecs []CnsSnapshotCreateSpec      `xml:"snapshotSpecs,omitempty"`
   707  }
   708  
   709  func init() {
   710  	types.Add("CnsCreateSnapshotsRequestType", reflect.TypeOf((*CnsCreateSnapshotsRequestType)(nil)).Elem())
   711  }
   712  
   713  type CnsCreateSnapshots CnsCreateSnapshotsRequestType
   714  
   715  func init() {
   716  	types.Add("CnsCreateSnapshots", reflect.TypeOf((*CnsCreateSnapshots)(nil)).Elem())
   717  }
   718  
   719  type CnsCreateSnapshotsResponse struct {
   720  	Returnval types.ManagedObjectReference `xml:"returnval"`
   721  }
   722  
   723  type CnsSnapshotCreateSpec struct {
   724  	types.DynamicData
   725  
   726  	VolumeId    CnsVolumeId `xml:"volumeId"`
   727  	Description string      `xml:"description"`
   728  }
   729  
   730  func init() {
   731  	types.Add("CnsSnapshotCreateSpec", reflect.TypeOf((*CnsSnapshotCreateSpec)(nil)).Elem())
   732  }
   733  
   734  type CnsDeleteSnapshotsRequestType struct {
   735  	This                types.ManagedObjectReference `xml:"_this"`
   736  	SnapshotDeleteSpecs []CnsSnapshotDeleteSpec      `xml:"snapshotDeleteSpecs,omitempty"`
   737  }
   738  
   739  func init() {
   740  	types.Add("CnsDeleteSnapshotsRequestType", reflect.TypeOf((*CnsDeleteSnapshotsRequestType)(nil)).Elem())
   741  }
   742  
   743  type CnsDeleteSnapshots CnsDeleteSnapshotsRequestType
   744  
   745  func init() {
   746  	types.Add("CnsDeleteSnapshots", reflect.TypeOf((*CnsDeleteSnapshots)(nil)).Elem())
   747  }
   748  
   749  type CnsDeleteSnapshotsResponse struct {
   750  	Returnval types.ManagedObjectReference `xml:"returnval"`
   751  }
   752  
   753  type CnsSnapshotId struct {
   754  	types.DynamicData
   755  
   756  	Id string `xml:"id"`
   757  }
   758  
   759  func init() {
   760  	types.Add("CnsSnapshotId", reflect.TypeOf((*CnsSnapshotId)(nil)).Elem())
   761  }
   762  
   763  type CnsSnapshotDeleteSpec struct {
   764  	types.DynamicData
   765  
   766  	VolumeId   CnsVolumeId   `xml:"volumeId"`
   767  	SnapshotId CnsSnapshotId `xml:"snapshotId"`
   768  }
   769  
   770  func init() {
   771  	types.Add("CnsSnapshotDeleteSpec", reflect.TypeOf((*CnsSnapshotDeleteSpec)(nil)).Elem())
   772  }
   773  
   774  type CnsSnapshot struct {
   775  	types.DynamicData
   776  
   777  	SnapshotId  CnsSnapshotId `xml:"snapshotId"`
   778  	VolumeId    CnsVolumeId   `xml:"volumeId"`
   779  	Description string        `xml:"description,omitempty"`
   780  	CreateTime  time.Time     `xml:"createTime"`
   781  }
   782  
   783  func init() {
   784  	types.Add("CnsSnapshot", reflect.TypeOf((*CnsSnapshot)(nil)).Elem())
   785  }
   786  
   787  type CnsSnapshotOperationResult struct {
   788  	CnsVolumeOperationResult
   789  }
   790  
   791  func init() {
   792  	types.Add("CnsSnapshotOperationResult", reflect.TypeOf((*CnsSnapshotOperationResult)(nil)).Elem())
   793  }
   794  
   795  type CnsSnapshotCreateResult struct {
   796  	CnsSnapshotOperationResult
   797  	Snapshot                       CnsSnapshot `xml:"snapshot,omitempty"`
   798  	AggregatedSnapshotCapacityInMb int64       `xml:"aggregatedSnapshotCapacityInMb,omitempty"`
   799  }
   800  
   801  func init() {
   802  	types.Add("CnsSnapshotCreateResult", reflect.TypeOf((*CnsSnapshotCreateResult)(nil)).Elem())
   803  }
   804  
   805  type CnsSnapshotDeleteResult struct {
   806  	CnsSnapshotOperationResult
   807  	SnapshotId                     CnsSnapshotId `xml:"snapshotId,omitempty"`
   808  	AggregatedSnapshotCapacityInMb int64         `xml:"aggregatedSnapshotCapacityInMb,omitempty"`
   809  }
   810  
   811  func init() {
   812  	types.Add("CnsSnapshotDeleteResult", reflect.TypeOf((*CnsSnapshotDeleteResult)(nil)).Elem())
   813  }
   814  
   815  type CnsVolumeSource struct {
   816  	types.DynamicData
   817  }
   818  
   819  func init() {
   820  	types.Add("CnsVolumeSource", reflect.TypeOf((*CnsVolumeSource)(nil)).Elem())
   821  }
   822  
   823  type CnsSnapshotVolumeSource struct {
   824  	CnsVolumeSource
   825  
   826  	VolumeId   CnsVolumeId   `xml:"volumeId,omitempty"`
   827  	SnapshotId CnsSnapshotId `xml:"snapshotId,omitempty"`
   828  }
   829  
   830  func init() {
   831  	types.Add("CnsSnapshotVolumeSource", reflect.TypeOf((*CnsSnapshotVolumeSource)(nil)).Elem())
   832  }
   833  
   834  // CNS QuerySnapshots related types
   835  
   836  type CnsQuerySnapshotsRequestType struct {
   837  	This                types.ManagedObjectReference `xml:"_this"`
   838  	SnapshotQueryFilter CnsSnapshotQueryFilter       `xml:"snapshotQueryFilter"`
   839  }
   840  
   841  func init() {
   842  	types.Add("CnsQuerySnapshotsRequestType", reflect.TypeOf((*CnsQuerySnapshotsRequestType)(nil)).Elem())
   843  }
   844  
   845  type CnsQuerySnapshots CnsQuerySnapshotsRequestType
   846  
   847  func init() {
   848  	types.Add("CnsQuerySnapshots", reflect.TypeOf((*CnsQuerySnapshots)(nil)).Elem())
   849  }
   850  
   851  type CnsQuerySnapshotsResponse struct {
   852  	Returnval types.ManagedObjectReference `xml:"returnval"`
   853  }
   854  
   855  type CnsSnapshotQueryResult struct {
   856  	types.DynamicData
   857  
   858  	Entries []CnsSnapshotQueryResultEntry `xml:"entries,omitempty"`
   859  	Cursor  CnsCursor                     `xml:"cursor"`
   860  }
   861  
   862  func init() {
   863  	types.Add("CnsSnapshotQueryResult", reflect.TypeOf((*CnsSnapshotQueryResult)(nil)).Elem())
   864  }
   865  
   866  type CnsSnapshotQueryResultEntry struct {
   867  	types.DynamicData
   868  
   869  	Snapshot CnsSnapshot                 `xml:"snapshot,omitempty"`
   870  	Error    *types.LocalizedMethodFault `xml:"error,omitempty"`
   871  }
   872  
   873  func init() {
   874  	types.Add("CnsSnapshotQueryResultEntry", reflect.TypeOf((*CnsSnapshotQueryResultEntry)(nil)).Elem())
   875  }
   876  
   877  type CnsSnapshotQueryFilter struct {
   878  	types.DynamicData
   879  
   880  	SnapshotQuerySpecs []CnsSnapshotQuerySpec `xml:"snapshotQuerySpecs,omitempty"`
   881  	Cursor             *CnsCursor             `xml:"cursor,omitempty"`
   882  }
   883  
   884  func init() {
   885  	types.Add("CnsSnapshotQueryFilter", reflect.TypeOf((*CnsSnapshotQueryFilter)(nil)).Elem())
   886  }
   887  
   888  type CnsSnapshotQuerySpec struct {
   889  	types.DynamicData
   890  
   891  	VolumeId   CnsVolumeId    `xml:"volumeId"`
   892  	SnapshotId *CnsSnapshotId `xml:"snapshotId,omitempty"`
   893  }
   894  
   895  func init() {
   896  	types.Add("CnsSnapshotQuerySpec", reflect.TypeOf((*CnsSnapshotQuerySpec)(nil)).Elem())
   897  }
   898  
   899  type CnsReconfigVolumePolicy CnsReconfigVolumePolicyRequestType
   900  
   901  func init() {
   902  	types.Add("vsan:CnsReconfigVolumePolicy", reflect.TypeOf((*CnsReconfigVolumePolicy)(nil)).Elem())
   903  }
   904  
   905  type CnsReconfigVolumePolicyRequestType struct {
   906  	This                      types.ManagedObjectReference  `xml:"_this"`
   907  	VolumePolicyReconfigSpecs []CnsVolumePolicyReconfigSpec `xml:"volumePolicyReconfigSpecs,omitempty"`
   908  }
   909  
   910  func init() {
   911  	types.Add("vsan:CnsReconfigVolumePolicyRequestType", reflect.TypeOf((*CnsReconfigVolumePolicyRequestType)(nil)).Elem())
   912  }
   913  
   914  type CnsReconfigVolumePolicyResponse struct {
   915  	Returnval types.ManagedObjectReference `xml:"returnval"`
   916  }
   917  
   918  type CnsVolumePolicyReconfigSpec struct {
   919  	types.DynamicData
   920  
   921  	VolumeId CnsVolumeId                           `xml:"volumeId"`
   922  	Profile  []types.BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"`
   923  }
   924  
   925  func init() {
   926  	types.Add("vsan:CnsVolumePolicyReconfigSpec", reflect.TypeOf((*CnsVolumePolicyReconfigSpec)(nil)).Elem())
   927  }
   928  
   929  type CnsSyncDatastore CnsSyncDatastoreRequestType
   930  
   931  func init() {
   932  	types.Add("vsan:CnsSyncDatastore", reflect.TypeOf((*CnsSyncDatastore)(nil)).Elem())
   933  }
   934  
   935  type CnsSyncDatastoreRequestType struct {
   936  	This         types.ManagedObjectReference `xml:"_this"`
   937  	DatastoreUrl string                       `xml:"datastoreUrl,omitempty"`
   938  	FullSync     *bool                        `xml:"fullSync"`
   939  }
   940  
   941  func init() {
   942  	types.Add("vsan:CnsSyncDatastoreRequestType", reflect.TypeOf((*CnsSyncDatastoreRequestType)(nil)).Elem())
   943  }
   944  
   945  type CnsSyncDatastoreResponse struct {
   946  	Returnval types.ManagedObjectReference `xml:"returnval"`
   947  }