github.com/vmware/govmomi@v0.51.0/sms/types/types.go (about)

     1  // © Broadcom. All Rights Reserved.
     2  // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
     3  // SPDX-License-Identifier: Apache-2.0
     4  
     5  package types
     6  
     7  import (
     8  	"reflect"
     9  	"time"
    10  
    11  	"github.com/vmware/govmomi/vim25/types"
    12  )
    13  
    14  // This spec contains information needed for queryActiveAlarm API to filter the result.
    15  //
    16  // This structure may be used only with operations rendered under `/sms`.
    17  type AlarmFilter struct {
    18  	types.DynamicData
    19  
    20  	// The status of the alarm to search for.
    21  	//
    22  	// Should be one of
    23  	// `SmsAlarmStatus_enum`. If not specified, all status values
    24  	// should be considered.
    25  	AlarmStatus string `xml:"alarmStatus,omitempty" json:"alarmStatus,omitempty"`
    26  	// The status of the alarm to search for.
    27  	//
    28  	// Should be one of
    29  	// `AlarmType_enum`. If not specified, all alarm types
    30  	// should be considered.
    31  	AlarmType string `xml:"alarmType,omitempty" json:"alarmType,omitempty"`
    32  	// The entityType of interest, VASA provider should
    33  	// return all active alarms of this type when `AlarmFilter.entityId`
    34  	// is not set.
    35  	//
    36  	// See `SmsEntityType_enum`.
    37  	EntityType string `xml:"entityType,omitempty" json:"entityType,omitempty"`
    38  	// The identifiers of the entities of interest.
    39  	//
    40  	// If set, all entities must be
    41  	// of the same `SmsEntityType_enum` and it should be set in
    42  	// `AlarmFilter.entityType`. VASA provider can skip listing the missing entities.
    43  	EntityId []types.AnyType `xml:"entityId,omitempty,typeattr" json:"entityId,omitempty"`
    44  	// The page marker used for query pagination.
    45  	//
    46  	// This is an opaque string that
    47  	// will be set based on the value returned by the VASA provider - see
    48  	// `AlarmResult.pageMarker`. For initial request this should be set to
    49  	// null, indicating request for the first page.
    50  	PageMarker string `xml:"pageMarker,omitempty" json:"pageMarker,omitempty"`
    51  }
    52  
    53  func init() {
    54  	types.Add("sms:AlarmFilter", reflect.TypeOf((*AlarmFilter)(nil)).Elem())
    55  }
    56  
    57  // Contains result for queryActiveAlarm API.
    58  //
    59  // This structure may be used only with operations rendered under `/sms`.
    60  type AlarmResult struct {
    61  	types.DynamicData
    62  
    63  	// Resulting storage alarms.
    64  	StorageAlarm []StorageAlarm `xml:"storageAlarm,omitempty" json:"storageAlarm,omitempty"`
    65  	// The page marker used for query pagination.
    66  	//
    67  	// This is an opaque string that
    68  	// will be set by the VASA provider. The client will set the same value in
    69  	// `AlarmFilter.pageMarker` to query the next page. VP should unset
    70  	// this value to indicate the end of page.
    71  	PageMarker string `xml:"pageMarker,omitempty" json:"pageMarker,omitempty"`
    72  }
    73  
    74  func init() {
    75  	types.Add("sms:AlarmResult", reflect.TypeOf((*AlarmResult)(nil)).Elem())
    76  }
    77  
    78  // Thrown if the object is already at the desired state.
    79  //
    80  // This is always a warning.
    81  //
    82  // This structure may be used only with operations rendered under `/sms`.
    83  type AlreadyDone struct {
    84  	SmsReplicationFault
    85  }
    86  
    87  func init() {
    88  	types.Add("sms:AlreadyDone", reflect.TypeOf((*AlreadyDone)(nil)).Elem())
    89  }
    90  
    91  type AlreadyDoneFault AlreadyDone
    92  
    93  func init() {
    94  	types.Add("sms:AlreadyDoneFault", reflect.TypeOf((*AlreadyDoneFault)(nil)).Elem())
    95  }
    96  
    97  // A boxed array of `BackingStoragePool`. To be used in `Any` placeholders.
    98  //
    99  // This structure may be used only with operations rendered under `/sms`.
   100  type ArrayOfBackingStoragePool struct {
   101  	BackingStoragePool []BackingStoragePool `xml:"BackingStoragePool,omitempty" json:"_value"`
   102  }
   103  
   104  func init() {
   105  	types.Add("sms:ArrayOfBackingStoragePool", reflect.TypeOf((*ArrayOfBackingStoragePool)(nil)).Elem())
   106  }
   107  
   108  // A boxed array of `DatastoreBackingPoolMapping`. To be used in `Any` placeholders.
   109  //
   110  // This structure may be used only with operations rendered under `/sms`.
   111  type ArrayOfDatastoreBackingPoolMapping struct {
   112  	DatastoreBackingPoolMapping []DatastoreBackingPoolMapping `xml:"DatastoreBackingPoolMapping,omitempty" json:"_value"`
   113  }
   114  
   115  func init() {
   116  	types.Add("sms:ArrayOfDatastoreBackingPoolMapping", reflect.TypeOf((*ArrayOfDatastoreBackingPoolMapping)(nil)).Elem())
   117  }
   118  
   119  // A boxed array of `DatastorePair`. To be used in `Any` placeholders.
   120  //
   121  // This structure may be used only with operations rendered under `/sms`.
   122  type ArrayOfDatastorePair struct {
   123  	DatastorePair []DatastorePair `xml:"DatastorePair,omitempty" json:"_value"`
   124  }
   125  
   126  func init() {
   127  	types.Add("sms:ArrayOfDatastorePair", reflect.TypeOf((*ArrayOfDatastorePair)(nil)).Elem())
   128  }
   129  
   130  // A boxed array of `DeviceId`. To be used in `Any` placeholders.
   131  //
   132  // This structure may be used only with operations rendered under `/sms`.
   133  type ArrayOfDeviceId struct {
   134  	DeviceId []BaseDeviceId `xml:"DeviceId,omitempty,typeattr" json:"_value"`
   135  }
   136  
   137  func init() {
   138  	types.Add("sms:ArrayOfDeviceId", reflect.TypeOf((*ArrayOfDeviceId)(nil)).Elem())
   139  }
   140  
   141  // A boxed array of `FaultDomainProviderMapping`. To be used in `Any` placeholders.
   142  //
   143  // This structure may be used only with operations rendered under `/sms`.
   144  type ArrayOfFaultDomainProviderMapping struct {
   145  	FaultDomainProviderMapping []FaultDomainProviderMapping `xml:"FaultDomainProviderMapping,omitempty" json:"_value"`
   146  }
   147  
   148  func init() {
   149  	types.Add("sms:ArrayOfFaultDomainProviderMapping", reflect.TypeOf((*ArrayOfFaultDomainProviderMapping)(nil)).Elem())
   150  }
   151  
   152  // A boxed array of `GroupOperationResult`. To be used in `Any` placeholders.
   153  //
   154  // This structure may be used only with operations rendered under `/sms`.
   155  type ArrayOfGroupOperationResult struct {
   156  	GroupOperationResult []BaseGroupOperationResult `xml:"GroupOperationResult,omitempty,typeattr" json:"_value"`
   157  }
   158  
   159  func init() {
   160  	types.Add("sms:ArrayOfGroupOperationResult", reflect.TypeOf((*ArrayOfGroupOperationResult)(nil)).Elem())
   161  }
   162  
   163  // A boxed array of `NameValuePair`. To be used in `Any` placeholders.
   164  //
   165  // This structure may be used only with operations rendered under `/sms`.
   166  type ArrayOfNameValuePair struct {
   167  	NameValuePair []NameValuePair `xml:"NameValuePair,omitempty" json:"_value"`
   168  }
   169  
   170  func init() {
   171  	types.Add("sms:ArrayOfNameValuePair", reflect.TypeOf((*ArrayOfNameValuePair)(nil)).Elem())
   172  }
   173  
   174  // A boxed array of `PointInTimeReplicaInfo`. To be used in `Any` placeholders.
   175  //
   176  // This structure may be used only with operations rendered under `/sms`.
   177  type ArrayOfPointInTimeReplicaInfo struct {
   178  	PointInTimeReplicaInfo []PointInTimeReplicaInfo `xml:"PointInTimeReplicaInfo,omitempty" json:"_value"`
   179  }
   180  
   181  func init() {
   182  	types.Add("sms:ArrayOfPointInTimeReplicaInfo", reflect.TypeOf((*ArrayOfPointInTimeReplicaInfo)(nil)).Elem())
   183  }
   184  
   185  // A boxed array of `PolicyAssociation`. To be used in `Any` placeholders.
   186  //
   187  // This structure may be used only with operations rendered under `/sms`.
   188  type ArrayOfPolicyAssociation struct {
   189  	PolicyAssociation []PolicyAssociation `xml:"PolicyAssociation,omitempty" json:"_value"`
   190  }
   191  
   192  func init() {
   193  	types.Add("sms:ArrayOfPolicyAssociation", reflect.TypeOf((*ArrayOfPolicyAssociation)(nil)).Elem())
   194  }
   195  
   196  // A boxed array of `QueryReplicationPeerResult`. To be used in `Any` placeholders.
   197  //
   198  // This structure may be used only with operations rendered under `/sms`.
   199  type ArrayOfQueryReplicationPeerResult struct {
   200  	QueryReplicationPeerResult []QueryReplicationPeerResult `xml:"QueryReplicationPeerResult,omitempty" json:"_value"`
   201  }
   202  
   203  func init() {
   204  	types.Add("sms:ArrayOfQueryReplicationPeerResult", reflect.TypeOf((*ArrayOfQueryReplicationPeerResult)(nil)).Elem())
   205  }
   206  
   207  // A boxed array of `RecoveredDevice`. To be used in `Any` placeholders.
   208  //
   209  // This structure may be used only with operations rendered under `/sms`.
   210  type ArrayOfRecoveredDevice struct {
   211  	RecoveredDevice []RecoveredDevice `xml:"RecoveredDevice,omitempty" json:"_value"`
   212  }
   213  
   214  func init() {
   215  	types.Add("sms:ArrayOfRecoveredDevice", reflect.TypeOf((*ArrayOfRecoveredDevice)(nil)).Elem())
   216  }
   217  
   218  // A boxed array of `RecoveredDiskInfo`. To be used in `Any` placeholders.
   219  //
   220  // This structure may be used only with operations rendered under `/sms`.
   221  type ArrayOfRecoveredDiskInfo struct {
   222  	RecoveredDiskInfo []RecoveredDiskInfo `xml:"RecoveredDiskInfo,omitempty" json:"_value"`
   223  }
   224  
   225  func init() {
   226  	types.Add("sms:ArrayOfRecoveredDiskInfo", reflect.TypeOf((*ArrayOfRecoveredDiskInfo)(nil)).Elem())
   227  }
   228  
   229  // A boxed array of `RelatedStorageArray`. To be used in `Any` placeholders.
   230  //
   231  // This structure may be used only with operations rendered under `/sms`.
   232  type ArrayOfRelatedStorageArray struct {
   233  	RelatedStorageArray []RelatedStorageArray `xml:"RelatedStorageArray,omitempty" json:"_value"`
   234  }
   235  
   236  func init() {
   237  	types.Add("sms:ArrayOfRelatedStorageArray", reflect.TypeOf((*ArrayOfRelatedStorageArray)(nil)).Elem())
   238  }
   239  
   240  // A boxed array of `ReplicaIntervalQueryResult`. To be used in `Any` placeholders.
   241  //
   242  // This structure may be used only with operations rendered under `/sms`.
   243  type ArrayOfReplicaIntervalQueryResult struct {
   244  	ReplicaIntervalQueryResult []ReplicaIntervalQueryResult `xml:"ReplicaIntervalQueryResult,omitempty" json:"_value"`
   245  }
   246  
   247  func init() {
   248  	types.Add("sms:ArrayOfReplicaIntervalQueryResult", reflect.TypeOf((*ArrayOfReplicaIntervalQueryResult)(nil)).Elem())
   249  }
   250  
   251  // A boxed array of `ReplicationGroupData`. To be used in `Any` placeholders.
   252  //
   253  // This structure may be used only with operations rendered under `/sms`.
   254  type ArrayOfReplicationGroupData struct {
   255  	ReplicationGroupData []ReplicationGroupData `xml:"ReplicationGroupData,omitempty" json:"_value"`
   256  }
   257  
   258  func init() {
   259  	types.Add("sms:ArrayOfReplicationGroupData", reflect.TypeOf((*ArrayOfReplicationGroupData)(nil)).Elem())
   260  }
   261  
   262  // A boxed array of `ReplicationTargetInfo`. To be used in `Any` placeholders.
   263  //
   264  // This structure may be used only with operations rendered under `/sms`.
   265  type ArrayOfReplicationTargetInfo struct {
   266  	ReplicationTargetInfo []ReplicationTargetInfo `xml:"ReplicationTargetInfo,omitempty" json:"_value"`
   267  }
   268  
   269  func init() {
   270  	types.Add("sms:ArrayOfReplicationTargetInfo", reflect.TypeOf((*ArrayOfReplicationTargetInfo)(nil)).Elem())
   271  }
   272  
   273  // A boxed array of `SmsProviderInfo`. To be used in `Any` placeholders.
   274  //
   275  // This structure may be used only with operations rendered under `/sms`.
   276  type ArrayOfSmsProviderInfo struct {
   277  	SmsProviderInfo []BaseSmsProviderInfo `xml:"SmsProviderInfo,omitempty,typeattr" json:"_value"`
   278  }
   279  
   280  func init() {
   281  	types.Add("sms:ArrayOfSmsProviderInfo", reflect.TypeOf((*ArrayOfSmsProviderInfo)(nil)).Elem())
   282  }
   283  
   284  // A boxed array of `SourceGroupMemberInfo`. To be used in `Any` placeholders.
   285  //
   286  // This structure may be used only with operations rendered under `/sms`.
   287  type ArrayOfSourceGroupMemberInfo struct {
   288  	SourceGroupMemberInfo []SourceGroupMemberInfo `xml:"SourceGroupMemberInfo,omitempty" json:"_value"`
   289  }
   290  
   291  func init() {
   292  	types.Add("sms:ArrayOfSourceGroupMemberInfo", reflect.TypeOf((*ArrayOfSourceGroupMemberInfo)(nil)).Elem())
   293  }
   294  
   295  // A boxed array of `StorageAlarm`. To be used in `Any` placeholders.
   296  //
   297  // This structure may be used only with operations rendered under `/sms`.
   298  type ArrayOfStorageAlarm struct {
   299  	StorageAlarm []StorageAlarm `xml:"StorageAlarm,omitempty" json:"_value"`
   300  }
   301  
   302  func init() {
   303  	types.Add("sms:ArrayOfStorageAlarm", reflect.TypeOf((*ArrayOfStorageAlarm)(nil)).Elem())
   304  }
   305  
   306  // A boxed array of `StorageArray`. To be used in `Any` placeholders.
   307  //
   308  // This structure may be used only with operations rendered under `/sms`.
   309  type ArrayOfStorageArray struct {
   310  	StorageArray []StorageArray `xml:"StorageArray,omitempty" json:"_value"`
   311  }
   312  
   313  func init() {
   314  	types.Add("sms:ArrayOfStorageArray", reflect.TypeOf((*ArrayOfStorageArray)(nil)).Elem())
   315  }
   316  
   317  // A boxed array of `StorageContainer`. To be used in `Any` placeholders.
   318  //
   319  // This structure may be used only with operations rendered under `/sms`.
   320  type ArrayOfStorageContainer struct {
   321  	StorageContainer []StorageContainer `xml:"StorageContainer,omitempty" json:"_value"`
   322  }
   323  
   324  func init() {
   325  	types.Add("sms:ArrayOfStorageContainer", reflect.TypeOf((*ArrayOfStorageContainer)(nil)).Elem())
   326  }
   327  
   328  // A boxed array of `StorageFileSystem`. To be used in `Any` placeholders.
   329  //
   330  // This structure may be used only with operations rendered under `/sms`.
   331  type ArrayOfStorageFileSystem struct {
   332  	StorageFileSystem []StorageFileSystem `xml:"StorageFileSystem,omitempty" json:"_value"`
   333  }
   334  
   335  func init() {
   336  	types.Add("sms:ArrayOfStorageFileSystem", reflect.TypeOf((*ArrayOfStorageFileSystem)(nil)).Elem())
   337  }
   338  
   339  // A boxed array of `StorageFileSystemInfo`. To be used in `Any` placeholders.
   340  //
   341  // This structure may be used only with operations rendered under `/sms`.
   342  type ArrayOfStorageFileSystemInfo struct {
   343  	StorageFileSystemInfo []StorageFileSystemInfo `xml:"StorageFileSystemInfo,omitempty" json:"_value"`
   344  }
   345  
   346  func init() {
   347  	types.Add("sms:ArrayOfStorageFileSystemInfo", reflect.TypeOf((*ArrayOfStorageFileSystemInfo)(nil)).Elem())
   348  }
   349  
   350  // A boxed array of `StorageLun`. To be used in `Any` placeholders.
   351  //
   352  // This structure may be used only with operations rendered under `/sms`.
   353  type ArrayOfStorageLun struct {
   354  	StorageLun []StorageLun `xml:"StorageLun,omitempty" json:"_value"`
   355  }
   356  
   357  func init() {
   358  	types.Add("sms:ArrayOfStorageLun", reflect.TypeOf((*ArrayOfStorageLun)(nil)).Elem())
   359  }
   360  
   361  // A boxed array of `StoragePort`. To be used in `Any` placeholders.
   362  //
   363  // This structure may be used only with operations rendered under `/sms`.
   364  type ArrayOfStoragePort struct {
   365  	StoragePort []BaseStoragePort `xml:"StoragePort,omitempty,typeattr" json:"_value"`
   366  }
   367  
   368  func init() {
   369  	types.Add("sms:ArrayOfStoragePort", reflect.TypeOf((*ArrayOfStoragePort)(nil)).Elem())
   370  }
   371  
   372  // A boxed array of `StorageProcessor`. To be used in `Any` placeholders.
   373  //
   374  // This structure may be used only with operations rendered under `/sms`.
   375  type ArrayOfStorageProcessor struct {
   376  	StorageProcessor []StorageProcessor `xml:"StorageProcessor,omitempty" json:"_value"`
   377  }
   378  
   379  func init() {
   380  	types.Add("sms:ArrayOfStorageProcessor", reflect.TypeOf((*ArrayOfStorageProcessor)(nil)).Elem())
   381  }
   382  
   383  // A boxed array of `SupportedVendorModelMapping`. To be used in `Any` placeholders.
   384  //
   385  // This structure may be used only with operations rendered under `/sms`.
   386  type ArrayOfSupportedVendorModelMapping struct {
   387  	SupportedVendorModelMapping []SupportedVendorModelMapping `xml:"SupportedVendorModelMapping,omitempty" json:"_value"`
   388  }
   389  
   390  func init() {
   391  	types.Add("sms:ArrayOfSupportedVendorModelMapping", reflect.TypeOf((*ArrayOfSupportedVendorModelMapping)(nil)).Elem())
   392  }
   393  
   394  // A boxed array of `TargetDeviceId`. To be used in `Any` placeholders.
   395  //
   396  // This structure may be used only with operations rendered under `/sms`.
   397  type ArrayOfTargetDeviceId struct {
   398  	TargetDeviceId []TargetDeviceId `xml:"TargetDeviceId,omitempty" json:"_value"`
   399  }
   400  
   401  func init() {
   402  	types.Add("sms:ArrayOfTargetDeviceId", reflect.TypeOf((*ArrayOfTargetDeviceId)(nil)).Elem())
   403  }
   404  
   405  // A boxed array of `TargetGroupMemberInfo`. To be used in `Any` placeholders.
   406  //
   407  // This structure may be used only with operations rendered under `/sms`.
   408  type ArrayOfTargetGroupMemberInfo struct {
   409  	TargetGroupMemberInfo []BaseTargetGroupMemberInfo `xml:"TargetGroupMemberInfo,omitempty,typeattr" json:"_value"`
   410  }
   411  
   412  func init() {
   413  	types.Add("sms:ArrayOfTargetGroupMemberInfo", reflect.TypeOf((*ArrayOfTargetGroupMemberInfo)(nil)).Elem())
   414  }
   415  
   416  // This exception is thrown when an error occurs while
   417  // connecting to the vpxd service to validate the user
   418  // credentials
   419  //
   420  // This structure may be used only with operations rendered under `/sms`.
   421  type AuthConnectionFailed struct {
   422  	types.NoPermission
   423  }
   424  
   425  func init() {
   426  	types.Add("sms:AuthConnectionFailed", reflect.TypeOf((*AuthConnectionFailed)(nil)).Elem())
   427  }
   428  
   429  type AuthConnectionFailedFault AuthConnectionFailed
   430  
   431  func init() {
   432  	types.Add("sms:AuthConnectionFailedFault", reflect.TypeOf((*AuthConnectionFailedFault)(nil)).Elem())
   433  }
   434  
   435  // This data object represents SDRS related data associated with block device or file system.
   436  //
   437  // This structure may be used only with operations rendered under `/sms`.
   438  type BackingConfig struct {
   439  	types.DynamicData
   440  
   441  	// Identifier for the backing pool for thin provisioning
   442  	ThinProvisionBackingIdentifier string `xml:"thinProvisionBackingIdentifier,omitempty" json:"thinProvisionBackingIdentifier,omitempty"`
   443  	// Identifier for the backing pool for deduplication
   444  	DeduplicationBackingIdentifier string `xml:"deduplicationBackingIdentifier,omitempty" json:"deduplicationBackingIdentifier,omitempty"`
   445  	// Flag to indicate whether auto-tiering optimizations are active
   446  	AutoTieringEnabled *bool `xml:"autoTieringEnabled" json:"autoTieringEnabled,omitempty"`
   447  	// Aggregate indication of space savings efficiency in the shared
   448  	// deduplication pool.
   449  	//
   450  	// The value is between 0 and 100, higher values
   451  	// indicating better efficiency.
   452  	DeduplicationEfficiency int64 `xml:"deduplicationEfficiency,omitempty" json:"deduplicationEfficiency,omitempty"`
   453  	// Frequency in seconds at which interval auto-tiering optimizations
   454  	// are applied.
   455  	//
   456  	// A value of 0 indicates continuous optimization.
   457  	PerformanceOptimizationInterval int64 `xml:"performanceOptimizationInterval,omitempty" json:"performanceOptimizationInterval,omitempty"`
   458  }
   459  
   460  func init() {
   461  	types.Add("sms:BackingConfig", reflect.TypeOf((*BackingConfig)(nil)).Elem())
   462  }
   463  
   464  // This data object represents the backing storage pool information of block device or file system.
   465  //
   466  // This structure may be used only with operations rendered under `/sms`.
   467  type BackingStoragePool struct {
   468  	types.DynamicData
   469  
   470  	// Unique identifier
   471  	Uuid string `xml:"uuid" json:"uuid"`
   472  	Type string `xml:"type" json:"type"`
   473  	// Upper bound of the available capacity in the backing storage pool.
   474  	CapacityInMB int64 `xml:"capacityInMB" json:"capacityInMB"`
   475  	// Aggregate used space in the backing storage pool.
   476  	UsedSpaceInMB int64 `xml:"usedSpaceInMB" json:"usedSpaceInMB"`
   477  }
   478  
   479  func init() {
   480  	types.Add("sms:BackingStoragePool", reflect.TypeOf((*BackingStoragePool)(nil)).Elem())
   481  }
   482  
   483  // This exception is thrown if there is a problem with calls to the
   484  // CertificateAuthority.
   485  //
   486  // This structure may be used only with operations rendered under `/sms`.
   487  type CertificateAuthorityFault struct {
   488  	ProviderRegistrationFault
   489  
   490  	// Fault code returned by certificate authority.
   491  	FaultCode int32 `xml:"faultCode" json:"faultCode"`
   492  }
   493  
   494  func init() {
   495  	types.Add("sms:CertificateAuthorityFault", reflect.TypeOf((*CertificateAuthorityFault)(nil)).Elem())
   496  }
   497  
   498  type CertificateAuthorityFaultFault CertificateAuthorityFault
   499  
   500  func init() {
   501  	types.Add("sms:CertificateAuthorityFaultFault", reflect.TypeOf((*CertificateAuthorityFaultFault)(nil)).Elem())
   502  }
   503  
   504  // This exception is thrown if `VasaProviderInfo.retainVasaProviderCertificate`
   505  // is true and the provider uses a certificate issued by a Certificate Authority,
   506  // but the root certificate of the Certificate Authority is not imported to VECS truststore
   507  // before attempting the provider registration.
   508  //
   509  // This structure may be used only with operations rendered under `/sms`.
   510  type CertificateNotImported struct {
   511  	ProviderRegistrationFault
   512  }
   513  
   514  func init() {
   515  	types.Add("sms:CertificateNotImported", reflect.TypeOf((*CertificateNotImported)(nil)).Elem())
   516  }
   517  
   518  type CertificateNotImportedFault CertificateNotImported
   519  
   520  func init() {
   521  	types.Add("sms:CertificateNotImportedFault", reflect.TypeOf((*CertificateNotImportedFault)(nil)).Elem())
   522  }
   523  
   524  // This exception is thrown if the certificate provided by the
   525  // provider is not trusted.
   526  //
   527  // This structure may be used only with operations rendered under `/sms`.
   528  type CertificateNotTrusted struct {
   529  	ProviderRegistrationFault
   530  
   531  	// Certificate
   532  	Certificate string `xml:"certificate" json:"certificate"`
   533  }
   534  
   535  func init() {
   536  	types.Add("sms:CertificateNotTrusted", reflect.TypeOf((*CertificateNotTrusted)(nil)).Elem())
   537  }
   538  
   539  // An CertificateNotTrusted fault is thrown when an Agency's configuration
   540  // contains OVF package URL or VIB URL for that vSphere ESX Agent Manager is not
   541  // able to make successful SSL trust verification of the server's certificate.
   542  //
   543  // Reasons for this might be that the certificate provided via the API
   544  // `AgentConfigInfo.ovfSslTrust` and `AgentConfigInfo.vibSslTrust`
   545  // or via the script /usr/lib/vmware-eam/bin/eam-utility.py
   546  //   - is invalid.
   547  //   - does not match the server's certificate.
   548  //
   549  // If there is no provided certificate, the fault is thrown when the server's
   550  // certificate is not trusted by the system or is invalid - @see
   551  // `AgentConfigInfo.ovfSslTrust` and
   552  // `AgentConfigInfo.vibSslTrust`.
   553  // To enable Agency creation 1) provide a valid certificate used by the
   554  // server hosting the `AgentConfigInfo.ovfPackageUrl` or
   555  // `AgentConfigInfo.vibUrl` or 2) ensure the server's certificate is
   556  // signed by a CA trusted by the system. Then retry the operation, vSphere
   557  // ESX Agent Manager will retry the SSL trust verification and proceed with
   558  // reaching the desired state.
   559  //
   560  // This structure may be used only with operations rendered under `/eam`.
   561  //
   562  // `**Since:**` vEAM API 8.2
   563  type CertificateNotTrustedFault CertificateNotTrusted
   564  
   565  func init() {
   566  	types.Add("sms:CertificateNotTrustedFault", reflect.TypeOf((*CertificateNotTrustedFault)(nil)).Elem())
   567  }
   568  
   569  // This exception is thrown if SMS failed to
   570  // refresh a CA signed certificate for the provider (or)
   571  // push the latest CA root certificates and CRLs to the provider.
   572  //
   573  // This structure may be used only with operations rendered under `/sms`.
   574  type CertificateRefreshFailed struct {
   575  	types.MethodFault
   576  
   577  	ProviderId []string `xml:"providerId,omitempty" json:"providerId,omitempty"`
   578  }
   579  
   580  func init() {
   581  	types.Add("sms:CertificateRefreshFailed", reflect.TypeOf((*CertificateRefreshFailed)(nil)).Elem())
   582  }
   583  
   584  type CertificateRefreshFailedFault CertificateRefreshFailed
   585  
   586  func init() {
   587  	types.Add("sms:CertificateRefreshFailedFault", reflect.TypeOf((*CertificateRefreshFailedFault)(nil)).Elem())
   588  }
   589  
   590  // This exception is thrown if SMS failed to revoke CA signed certificate of the provider.
   591  //
   592  // This structure may be used only with operations rendered under `/sms`.
   593  type CertificateRevocationFailed struct {
   594  	types.MethodFault
   595  }
   596  
   597  func init() {
   598  	types.Add("sms:CertificateRevocationFailed", reflect.TypeOf((*CertificateRevocationFailed)(nil)).Elem())
   599  }
   600  
   601  type CertificateRevocationFailedFault CertificateRevocationFailed
   602  
   603  func init() {
   604  	types.Add("sms:CertificateRevocationFailedFault", reflect.TypeOf((*CertificateRevocationFailedFault)(nil)).Elem())
   605  }
   606  
   607  // This data object represents the result of queryDatastoreBackingPoolMapping API.
   608  //
   609  // More than one datastore can map to the same set of BackingStoragePool.
   610  //
   611  // This structure may be used only with operations rendered under `/sms`.
   612  type DatastoreBackingPoolMapping struct {
   613  	types.DynamicData
   614  
   615  	// Refers instances of `Datastore`.
   616  	Datastore          []types.ManagedObjectReference `xml:"datastore" json:"datastore"`
   617  	BackingStoragePool []BackingStoragePool           `xml:"backingStoragePool,omitempty" json:"backingStoragePool,omitempty"`
   618  }
   619  
   620  func init() {
   621  	types.Add("sms:DatastoreBackingPoolMapping", reflect.TypeOf((*DatastoreBackingPoolMapping)(nil)).Elem())
   622  }
   623  
   624  // Deprecated as of SMS API 5.0.
   625  //
   626  // Datastore pair that is returned as a result of queryDrsMigrationCapabilityForPerformanceEx API.
   627  //
   628  // This structure may be used only with operations rendered under `/sms`.
   629  type DatastorePair struct {
   630  	types.DynamicData
   631  
   632  	// Refers instance of `Datastore`.
   633  	Datastore1 types.ManagedObjectReference `xml:"datastore1" json:"datastore1"`
   634  	// Refers instance of `Datastore`.
   635  	Datastore2 types.ManagedObjectReference `xml:"datastore2" json:"datastore2"`
   636  }
   637  
   638  func init() {
   639  	types.Add("sms:DatastorePair", reflect.TypeOf((*DatastorePair)(nil)).Elem())
   640  }
   641  
   642  // Base class that represents a replicated device.
   643  //
   644  // This structure may be used only with operations rendered under `/sms`.
   645  type DeviceId struct {
   646  	types.DynamicData
   647  }
   648  
   649  func init() {
   650  	types.Add("sms:DeviceId", reflect.TypeOf((*DeviceId)(nil)).Elem())
   651  }
   652  
   653  // Deprecated as of SMS API 5.0.
   654  //
   655  // This data object represents the result of queryDrsMigrationCapabilityForPerformanceEx API.
   656  //
   657  // This structure may be used only with operations rendered under `/sms`.
   658  type DrsMigrationCapabilityResult struct {
   659  	types.DynamicData
   660  
   661  	RecommendedDatastorePair    []DatastorePair `xml:"recommendedDatastorePair,omitempty" json:"recommendedDatastorePair,omitempty"`
   662  	NonRecommendedDatastorePair []DatastorePair `xml:"nonRecommendedDatastorePair,omitempty" json:"nonRecommendedDatastorePair,omitempty"`
   663  }
   664  
   665  func init() {
   666  	types.Add("sms:DrsMigrationCapabilityResult", reflect.TypeOf((*DrsMigrationCapabilityResult)(nil)).Elem())
   667  }
   668  
   669  // This exception indicates there are duplicate entries in the input argument.
   670  //
   671  // This structure may be used only with operations rendered under `/sms`.
   672  type DuplicateEntry struct {
   673  	types.MethodFault
   674  }
   675  
   676  func init() {
   677  	types.Add("sms:DuplicateEntry", reflect.TypeOf((*DuplicateEntry)(nil)).Elem())
   678  }
   679  
   680  type DuplicateEntryFault DuplicateEntry
   681  
   682  func init() {
   683  	types.Add("sms:DuplicateEntryFault", reflect.TypeOf((*DuplicateEntryFault)(nil)).Elem())
   684  }
   685  
   686  // Deprecated as of SMS API 4.0.
   687  //
   688  // Unique identifier of a given entity with the storage
   689  // management service.
   690  //
   691  // It is similar to the VirtualCenter
   692  // ManagedObjectReference but also identifies certain
   693  // non-managed objects.
   694  //
   695  // This structure may be used only with operations rendered under `/sms`.
   696  type EntityReference struct {
   697  	types.DynamicData
   698  
   699  	// Unique identifier for the entity of a given type in the
   700  	// system.
   701  	//
   702  	// A VirtualCenter managed object ID can be supplied
   703  	// here, in which case the type may be unset. Otherwise, the
   704  	// type must be set.
   705  	Id string `xml:"id" json:"id"`
   706  	// Type of the entity.
   707  	Type EntityReferenceEntityType `xml:"type,omitempty" json:"type,omitempty"`
   708  }
   709  
   710  func init() {
   711  	types.Add("sms:EntityReference", reflect.TypeOf((*EntityReference)(nil)).Elem())
   712  }
   713  
   714  // Input to the failover or testFailover methods.
   715  //
   716  // This structure may be used only with operations rendered under `/sms`.
   717  type FailoverParam struct {
   718  	types.DynamicData
   719  
   720  	// Whether the failover is a planned failover or not.
   721  	//
   722  	// Note that testFailover
   723  	// can also be executed in an unplanned mode. When this flag is
   724  	// set to false, the recovery VASA provider must not try to connect
   725  	// to the primary VASA provider during the failover.
   726  	IsPlanned bool `xml:"isPlanned" json:"isPlanned"`
   727  	// Do not execute the (test) failover but check if the configuration
   728  	// is correct to execute the (test) failover.
   729  	//
   730  	// If set to <code>true</code>, the (test)failover result is an array where
   731  	// each element is either `GroupOperationResult` or `GroupErrorResult`.
   732  	//
   733  	// If set to <code>false</code>, the (test)failover result is an array where
   734  	// each element is either `FailoverSuccessResult` or `GroupErrorResult`.
   735  	CheckOnly bool `xml:"checkOnly" json:"checkOnly"`
   736  	// The replication groups to failover.
   737  	//
   738  	// It is OK for the VASA
   739  	// provider to successfully failover only some groups. The
   740  	// groups that did not complete will be retried.
   741  	ReplicationGroupsToFailover []ReplicationGroupData `xml:"replicationGroupsToFailover,omitempty" json:"replicationGroupsToFailover,omitempty"`
   742  	// Storage policies for the devices after (test)failover.
   743  	//
   744  	// Failover should be done even if policies cannot be associated.
   745  	// Test failover, however, should fail if policies cannot be associated.
   746  	//
   747  	// If policies cannot be associated, VASA provider can notify the client by
   748  	// doing either or both of these:
   749  	// 1\. Set the warning in the result for a replication group to indicate
   750  	// such a failure to set the policy.
   751  	// 2\. Raise a compliance alarm after the failover is done.
   752  	//
   753  	// If not specified, the default policies are used. Callers may reassign
   754  	// policy later.
   755  	PolicyAssociations []PolicyAssociation `xml:"policyAssociations,omitempty" json:"policyAssociations,omitempty"`
   756  }
   757  
   758  func init() {
   759  	types.Add("sms:FailoverParam", reflect.TypeOf((*FailoverParam)(nil)).Elem())
   760  }
   761  
   762  // The parameters of `VasaProvider.FailoverReplicationGroup_Task`.
   763  //
   764  // This structure may be used only with operations rendered under `/sms`.
   765  type FailoverReplicationGroupRequestType struct {
   766  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
   767  	// Settings for the failover.
   768  	FailoverParam BaseFailoverParam `xml:"failoverParam,typeattr" json:"failoverParam"`
   769  }
   770  
   771  func init() {
   772  	types.Add("sms:FailoverReplicationGroupRequestType", reflect.TypeOf((*FailoverReplicationGroupRequestType)(nil)).Elem())
   773  }
   774  
   775  type FailoverReplicationGroup_Task FailoverReplicationGroupRequestType
   776  
   777  func init() {
   778  	types.Add("sms:FailoverReplicationGroup_Task", reflect.TypeOf((*FailoverReplicationGroup_Task)(nil)).Elem())
   779  }
   780  
   781  type FailoverReplicationGroup_TaskResponse struct {
   782  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
   783  }
   784  
   785  // Results of a successful failover operation.
   786  //
   787  // The target fault domain Id, and the device group id are inherited.
   788  //
   789  // This structure may be used only with operations rendered under `/sms`.
   790  type FailoverSuccessResult struct {
   791  	GroupOperationResult
   792  
   793  	// Some replicators may automatically reverse replication on failover.
   794  	//
   795  	// Such
   796  	// replicators must move the replication status to
   797  	// `SOURCE`
   798  	// In other cases, it can remain as `FAILEDOVER`.
   799  	NewState string `xml:"newState" json:"newState"`
   800  	// Id of the Point in Time snapshot used during failover.
   801  	//
   802  	// If not present,
   803  	// latest PIT was used.
   804  	PitId *PointInTimeReplicaId `xml:"pitId,omitempty" json:"pitId,omitempty"`
   805  	// Optional id of the Point in Time snapshot that was automatically created before
   806  	// failing over.
   807  	//
   808  	// This is recommended so users can revert back to this
   809  	// snapshot to avoid data loss. This can be removed after the reverse
   810  	// replication call succeeds.
   811  	PitIdBeforeFailover *PointInTimeReplicaId `xml:"pitIdBeforeFailover,omitempty" json:"pitIdBeforeFailover,omitempty"`
   812  	// Recovered Devices.
   813  	//
   814  	// This is optional because in some corner cases the
   815  	// replication groups on the target site may not have any virtual volumes.
   816  	RecoveredDeviceInfo []RecoveredDevice `xml:"recoveredDeviceInfo,omitempty" json:"recoveredDeviceInfo,omitempty"`
   817  	// Time stamp of recovery.
   818  	TimeStamp *time.Time `xml:"timeStamp" json:"timeStamp,omitempty"`
   819  }
   820  
   821  func init() {
   822  	types.Add("sms:FailoverSuccessResult", reflect.TypeOf((*FailoverSuccessResult)(nil)).Elem())
   823  }
   824  
   825  // This spec contains information needed for `SmsStorageManager.QueryFaultDomain`
   826  // API to filter the result.
   827  //
   828  // This structure may be used only with operations rendered under `/sms`.
   829  type FaultDomainFilter struct {
   830  	types.DynamicData
   831  
   832  	// If specified, query for this specific provider only; else query for all
   833  	// providers.
   834  	ProviderId string `xml:"providerId,omitempty" json:"providerId,omitempty"`
   835  }
   836  
   837  func init() {
   838  	types.Add("sms:FaultDomainFilter", reflect.TypeOf((*FaultDomainFilter)(nil)).Elem())
   839  }
   840  
   841  // Information about a Fault Domain.
   842  //
   843  // This structure may be used only with operations rendered under `/sms`.
   844  type FaultDomainInfo struct {
   845  	types.FaultDomainId
   846  
   847  	// Name of the fault domain, if not specified, the id will be used in place
   848  	// of the name.
   849  	//
   850  	// Name need not be unique.
   851  	Name string `xml:"name,omitempty" json:"name,omitempty"`
   852  	// Description - could be a localized string.
   853  	Description string `xml:"description,omitempty" json:"description,omitempty"`
   854  	// Identifier of the Storage Array that this Fault Domain belongs to.
   855  	//
   856  	// A Fault
   857  	// Domain and all its children should report same `FaultDomainInfo.storageArrayId`. It
   858  	// can be left unspecified. If not specified, vSphere will not support High
   859  	// Availability feature for this Fault Domain. When specified, vSphere will
   860  	// treat the the currently active VASA provider for `StorageArray` as
   861  	// the active VASA provider for this Fault Domain and its children.
   862  	// Changing High Availability support choice for a Fault Domain
   863  	// intermittently, by sometimes specifying the storageArrayId and sometimes
   864  	// not, will cause unexpected result and might cause VP to be in 'syncError'
   865  	// state in vSphere.
   866  	StorageArrayId string `xml:"storageArrayId,omitempty" json:"storageArrayId,omitempty"`
   867  	// List of children, the entries in the array should always be
   868  	// `FaultDomainId` and not `FaultDomainInfo`.
   869  	//
   870  	// The 2016 vSphere release will not support nested Fault Domains. The field
   871  	// FaultDomainInfo#children is ignored by vSphere 2016 release.
   872  	Children []types.FaultDomainId `xml:"children,omitempty" json:"children,omitempty"`
   873  	// VASA provider that is actively managing this fault domain
   874  	//
   875  	// Refers instance of `SmsProvider`.
   876  	Provider *types.ManagedObjectReference `xml:"provider,omitempty" json:"provider,omitempty"`
   877  }
   878  
   879  func init() {
   880  	types.Add("sms:FaultDomainInfo", reflect.TypeOf((*FaultDomainInfo)(nil)).Elem())
   881  }
   882  
   883  // This mapping will be set in InactiveProvider fault to notify clients
   884  // the current active provider for the specified fault domains.
   885  //
   886  // This structure may be used only with operations rendered under `/sms`.
   887  type FaultDomainProviderMapping struct {
   888  	types.DynamicData
   889  
   890  	// Active provider managing the fault domains
   891  	//
   892  	// Refers instance of `SmsProvider`.
   893  	ActiveProvider types.ManagedObjectReference `xml:"activeProvider" json:"activeProvider"`
   894  	// Fault domains being managed by the provider
   895  	FaultDomainId []types.FaultDomainId `xml:"faultDomainId,omitempty" json:"faultDomainId,omitempty"`
   896  }
   897  
   898  func init() {
   899  	types.Add("sms:FaultDomainProviderMapping", reflect.TypeOf((*FaultDomainProviderMapping)(nil)).Elem())
   900  }
   901  
   902  // This data object represents the FC storage port.
   903  //
   904  // This structure may be used only with operations rendered under `/sms`.
   905  type FcStoragePort struct {
   906  	StoragePort
   907  
   908  	// World Wide Name for the Port
   909  	PortWwn string `xml:"portWwn" json:"portWwn"`
   910  	// World Wide Name for the Node
   911  	NodeWwn string `xml:"nodeWwn" json:"nodeWwn"`
   912  }
   913  
   914  func init() {
   915  	types.Add("sms:FcStoragePort", reflect.TypeOf((*FcStoragePort)(nil)).Elem())
   916  }
   917  
   918  // This data object represents the FCoE storage port.
   919  //
   920  // This structure may be used only with operations rendered under `/sms`.
   921  type FcoeStoragePort struct {
   922  	StoragePort
   923  
   924  	// World Wide Name for the Port
   925  	PortWwn string `xml:"portWwn" json:"portWwn"`
   926  	// World Wide Name for the Node
   927  	NodeWwn string `xml:"nodeWwn" json:"nodeWwn"`
   928  }
   929  
   930  func init() {
   931  	types.Add("sms:FcoeStoragePort", reflect.TypeOf((*FcoeStoragePort)(nil)).Elem())
   932  }
   933  
   934  // Error result.
   935  //
   936  // This structure may be used only with operations rendered under `/sms`.
   937  type GroupErrorResult struct {
   938  	GroupOperationResult
   939  
   940  	// Error array, must contain at least one entry.
   941  	Error []types.LocalizedMethodFault `xml:"error" json:"error"`
   942  }
   943  
   944  func init() {
   945  	types.Add("sms:GroupErrorResult", reflect.TypeOf((*GroupErrorResult)(nil)).Elem())
   946  }
   947  
   948  // Replication group information.
   949  //
   950  // May be either a `SourceGroupInfo` or
   951  // `TargetGroupInfo`.
   952  //
   953  // This structure may be used only with operations rendered under `/sms`.
   954  type GroupInfo struct {
   955  	types.DynamicData
   956  
   957  	// Identifier of the group + fault domain id.
   958  	GroupId types.ReplicationGroupId `xml:"groupId" json:"groupId"`
   959  }
   960  
   961  func init() {
   962  	types.Add("sms:GroupInfo", reflect.TypeOf((*GroupInfo)(nil)).Elem())
   963  }
   964  
   965  // The base class for any operation on a replication group.
   966  //
   967  // Usually, there is an
   968  // operation specific &lt;Operation&gt;SuccessResult
   969  //
   970  // This structure may be used only with operations rendered under `/sms`.
   971  type GroupOperationResult struct {
   972  	types.DynamicData
   973  
   974  	// Replication group Id.
   975  	GroupId types.ReplicationGroupId     `xml:"groupId" json:"groupId"`
   976  	Warning []types.LocalizedMethodFault `xml:"warning,omitempty" json:"warning,omitempty"`
   977  }
   978  
   979  func init() {
   980  	types.Add("sms:GroupOperationResult", reflect.TypeOf((*GroupOperationResult)(nil)).Elem())
   981  }
   982  
   983  // Thrown if the VASA Provider on which the call is made is currently not
   984  // active.
   985  //
   986  // If the client maintains a cache of the topology of fault domains
   987  // and replication groups, it's expected to update the cache based on the
   988  // mapping information set in this fault.
   989  //
   990  // This structure may be used only with operations rendered under `/sms`.
   991  type InactiveProvider struct {
   992  	types.MethodFault
   993  
   994  	// Mapping between VASA provider and the fault domains
   995  	Mapping []FaultDomainProviderMapping `xml:"mapping,omitempty" json:"mapping,omitempty"`
   996  }
   997  
   998  func init() {
   999  	types.Add("sms:InactiveProvider", reflect.TypeOf((*InactiveProvider)(nil)).Elem())
  1000  }
  1001  
  1002  type InactiveProviderFault InactiveProvider
  1003  
  1004  func init() {
  1005  	types.Add("sms:InactiveProviderFault", reflect.TypeOf((*InactiveProviderFault)(nil)).Elem())
  1006  }
  1007  
  1008  // This fault is thrown if failed to register provider due to incorrect credentials.
  1009  //
  1010  // This structure may be used only with operations rendered under `/sms`.
  1011  type IncorrectUsernamePassword struct {
  1012  	ProviderRegistrationFault
  1013  }
  1014  
  1015  func init() {
  1016  	types.Add("sms:IncorrectUsernamePassword", reflect.TypeOf((*IncorrectUsernamePassword)(nil)).Elem())
  1017  }
  1018  
  1019  type IncorrectUsernamePasswordFault IncorrectUsernamePassword
  1020  
  1021  func init() {
  1022  	types.Add("sms:IncorrectUsernamePasswordFault", reflect.TypeOf((*IncorrectUsernamePasswordFault)(nil)).Elem())
  1023  }
  1024  
  1025  // This exception is thrown if the provider certificate is empty, malformed,
  1026  // expired, not yet valid, revoked or fails host name verification.
  1027  //
  1028  // This structure may be used only with operations rendered under `/sms`.
  1029  type InvalidCertificate struct {
  1030  	ProviderRegistrationFault
  1031  
  1032  	// Provider certificate
  1033  	Certificate string `xml:"certificate" json:"certificate"`
  1034  }
  1035  
  1036  func init() {
  1037  	types.Add("sms:InvalidCertificate", reflect.TypeOf((*InvalidCertificate)(nil)).Elem())
  1038  }
  1039  
  1040  type InvalidCertificateFault InvalidCertificate
  1041  
  1042  func init() {
  1043  	types.Add("sms:InvalidCertificateFault", reflect.TypeOf((*InvalidCertificateFault)(nil)).Elem())
  1044  }
  1045  
  1046  // Thrown if the function is called at the wrong end of the replication (i.e.
  1047  //
  1048  // the failing function should be tried at the opposite end of replication).
  1049  //
  1050  // This structure may be used only with operations rendered under `/sms`.
  1051  type InvalidFunctionTarget struct {
  1052  	SmsReplicationFault
  1053  }
  1054  
  1055  func init() {
  1056  	types.Add("sms:InvalidFunctionTarget", reflect.TypeOf((*InvalidFunctionTarget)(nil)).Elem())
  1057  }
  1058  
  1059  type InvalidFunctionTargetFault InvalidFunctionTarget
  1060  
  1061  func init() {
  1062  	types.Add("sms:InvalidFunctionTargetFault", reflect.TypeOf((*InvalidFunctionTargetFault)(nil)).Elem())
  1063  }
  1064  
  1065  // This exception is thrown if the specified storage profile is invalid.
  1066  //
  1067  // This structure may be used only with operations rendered under `/sms`.
  1068  type InvalidProfile struct {
  1069  	types.MethodFault
  1070  }
  1071  
  1072  func init() {
  1073  	types.Add("sms:InvalidProfile", reflect.TypeOf((*InvalidProfile)(nil)).Elem())
  1074  }
  1075  
  1076  type InvalidProfileFault InvalidProfile
  1077  
  1078  func init() {
  1079  	types.Add("sms:InvalidProfileFault", reflect.TypeOf((*InvalidProfileFault)(nil)).Elem())
  1080  }
  1081  
  1082  // Thrown if the replication group is not in the correct state.
  1083  //
  1084  // This structure may be used only with operations rendered under `/sms`.
  1085  type InvalidReplicationState struct {
  1086  	SmsReplicationFault
  1087  
  1088  	// States where the operation would have been successful.
  1089  	DesiredState []string `xml:"desiredState,omitempty" json:"desiredState,omitempty"`
  1090  	// Current state.
  1091  	CurrentState string `xml:"currentState" json:"currentState"`
  1092  }
  1093  
  1094  func init() {
  1095  	types.Add("sms:InvalidReplicationState", reflect.TypeOf((*InvalidReplicationState)(nil)).Elem())
  1096  }
  1097  
  1098  type InvalidReplicationStateFault InvalidReplicationState
  1099  
  1100  func init() {
  1101  	types.Add("sms:InvalidReplicationStateFault", reflect.TypeOf((*InvalidReplicationStateFault)(nil)).Elem())
  1102  }
  1103  
  1104  // This exception is thrown if a specified session is invalid.
  1105  //
  1106  // This can occur if the VirtualCenter session referred to by
  1107  // the cookie has timed out or has been closed.
  1108  //
  1109  // This structure may be used only with operations rendered under `/sms`.
  1110  type InvalidSession struct {
  1111  	types.NoPermission
  1112  
  1113  	// VirtualCenter session cookie that is invalid.
  1114  	SessionCookie string `xml:"sessionCookie" json:"sessionCookie"`
  1115  }
  1116  
  1117  func init() {
  1118  	types.Add("sms:InvalidSession", reflect.TypeOf((*InvalidSession)(nil)).Elem())
  1119  }
  1120  
  1121  type InvalidSessionFault InvalidSession
  1122  
  1123  func init() {
  1124  	types.Add("sms:InvalidSessionFault", reflect.TypeOf((*InvalidSessionFault)(nil)).Elem())
  1125  }
  1126  
  1127  // This exception is thrown if `VasaProviderSpec.url` is malformed.
  1128  //
  1129  // This structure may be used only with operations rendered under `/sms`.
  1130  type InvalidUrl struct {
  1131  	ProviderRegistrationFault
  1132  
  1133  	// Provider `VasaProviderSpec.url`
  1134  	Url string `xml:"url" json:"url"`
  1135  }
  1136  
  1137  func init() {
  1138  	types.Add("sms:InvalidUrl", reflect.TypeOf((*InvalidUrl)(nil)).Elem())
  1139  }
  1140  
  1141  type InvalidUrlFault InvalidUrl
  1142  
  1143  func init() {
  1144  	types.Add("sms:InvalidUrlFault", reflect.TypeOf((*InvalidUrlFault)(nil)).Elem())
  1145  }
  1146  
  1147  // This data object represents the iSCSI storage port.
  1148  //
  1149  // This structure may be used only with operations rendered under `/sms`.
  1150  type IscsiStoragePort struct {
  1151  	StoragePort
  1152  
  1153  	// IQN or EQI identifier
  1154  	Identifier string `xml:"identifier" json:"identifier"`
  1155  }
  1156  
  1157  func init() {
  1158  	types.Add("sms:IscsiStoragePort", reflect.TypeOf((*IscsiStoragePort)(nil)).Elem())
  1159  }
  1160  
  1161  // This data object represents the lun, HBA association
  1162  // for synchronous replication.
  1163  //
  1164  // This structure may be used only with operations rendered under `/sms`.
  1165  type LunHbaAssociation struct {
  1166  	types.DynamicData
  1167  
  1168  	CanonicalName string                     `xml:"canonicalName" json:"canonicalName"`
  1169  	Hba           []types.HostHostBusAdapter `xml:"hba" json:"hba"`
  1170  }
  1171  
  1172  func init() {
  1173  	types.Add("sms:LunHbaAssociation", reflect.TypeOf((*LunHbaAssociation)(nil)).Elem())
  1174  }
  1175  
  1176  // This exception is thrown if more than one sort spec is
  1177  // specified in a list query.
  1178  //
  1179  // This structure may be used only with operations rendered under `/sms`.
  1180  type MultipleSortSpecsNotSupported struct {
  1181  	types.InvalidArgument
  1182  }
  1183  
  1184  func init() {
  1185  	types.Add("sms:MultipleSortSpecsNotSupported", reflect.TypeOf((*MultipleSortSpecsNotSupported)(nil)).Elem())
  1186  }
  1187  
  1188  type MultipleSortSpecsNotSupportedFault MultipleSortSpecsNotSupported
  1189  
  1190  func init() {
  1191  	types.Add("sms:MultipleSortSpecsNotSupportedFault", reflect.TypeOf((*MultipleSortSpecsNotSupportedFault)(nil)).Elem())
  1192  }
  1193  
  1194  // This data object represents a name value pair.
  1195  //
  1196  // This structure may be used only with operations rendered under `/sms`.
  1197  type NameValuePair struct {
  1198  	types.DynamicData
  1199  
  1200  	// Name of the paramter
  1201  	ParameterName string `xml:"parameterName" json:"parameterName"`
  1202  	// Value of the parameter
  1203  	ParameterValue string `xml:"parameterValue" json:"parameterValue"`
  1204  }
  1205  
  1206  func init() {
  1207  	types.Add("sms:NameValuePair", reflect.TypeOf((*NameValuePair)(nil)).Elem())
  1208  }
  1209  
  1210  // This fault is thrown when backings (@link
  1211  // sms.storage.StorageLun/ @link sms.storage.StorageFileSystem)
  1212  // of the specified datastores refer to different
  1213  // VASA providers.
  1214  //
  1215  // This structure may be used only with operations rendered under `/sms`.
  1216  type NoCommonProviderForAllBackings struct {
  1217  	QueryExecutionFault
  1218  }
  1219  
  1220  func init() {
  1221  	types.Add("sms:NoCommonProviderForAllBackings", reflect.TypeOf((*NoCommonProviderForAllBackings)(nil)).Elem())
  1222  }
  1223  
  1224  type NoCommonProviderForAllBackingsFault NoCommonProviderForAllBackings
  1225  
  1226  func init() {
  1227  	types.Add("sms:NoCommonProviderForAllBackingsFault", reflect.TypeOf((*NoCommonProviderForAllBackingsFault)(nil)).Elem())
  1228  }
  1229  
  1230  // This exception is set if the replication target is not yet available.
  1231  //
  1232  // This structure may be used only with operations rendered under `/sms`.
  1233  type NoReplicationTarget struct {
  1234  	SmsReplicationFault
  1235  }
  1236  
  1237  func init() {
  1238  	types.Add("sms:NoReplicationTarget", reflect.TypeOf((*NoReplicationTarget)(nil)).Elem())
  1239  }
  1240  
  1241  type NoReplicationTargetFault NoReplicationTarget
  1242  
  1243  func init() {
  1244  	types.Add("sms:NoReplicationTargetFault", reflect.TypeOf((*NoReplicationTargetFault)(nil)).Elem())
  1245  }
  1246  
  1247  // This exception is thrown when there is no valid replica
  1248  // to be used in recovery.
  1249  //
  1250  // This may happen when a Virtual Volume
  1251  // is created on the source domain, but the replica is yet to
  1252  // be copied to the target.
  1253  //
  1254  // This structure may be used only with operations rendered under `/sms`.
  1255  type NoValidReplica struct {
  1256  	SmsReplicationFault
  1257  
  1258  	// Identifier of the device which does not have a valid
  1259  	// replica.
  1260  	//
  1261  	// This is the identifier on the target site.
  1262  	// This may not be set if the ReplicationGroup does not
  1263  	// have even a single valid replica.
  1264  	DeviceId BaseDeviceId `xml:"deviceId,omitempty,typeattr" json:"deviceId,omitempty"`
  1265  }
  1266  
  1267  func init() {
  1268  	types.Add("sms:NoValidReplica", reflect.TypeOf((*NoValidReplica)(nil)).Elem())
  1269  }
  1270  
  1271  type NoValidReplicaFault NoValidReplica
  1272  
  1273  func init() {
  1274  	types.Add("sms:NoValidReplicaFault", reflect.TypeOf((*NoValidReplicaFault)(nil)).Elem())
  1275  }
  1276  
  1277  // This exception is thrown if the VASA Provider on which the call is made
  1278  // does not support this operation.
  1279  //
  1280  // This structure may be used only with operations rendered under `/sms`.
  1281  type NotSupportedByProvider struct {
  1282  	types.MethodFault
  1283  }
  1284  
  1285  func init() {
  1286  	types.Add("sms:NotSupportedByProvider", reflect.TypeOf((*NotSupportedByProvider)(nil)).Elem())
  1287  }
  1288  
  1289  type NotSupportedByProviderFault NotSupportedByProvider
  1290  
  1291  func init() {
  1292  	types.Add("sms:NotSupportedByProviderFault", reflect.TypeOf((*NotSupportedByProviderFault)(nil)).Elem())
  1293  }
  1294  
  1295  // This exception is set if the replication peer is not reachable.
  1296  //
  1297  // For prepareFailover, it is the target that is not reachable.
  1298  // For other functions, it is the source that is not reachable.
  1299  //
  1300  // This structure may be used only with operations rendered under `/sms`.
  1301  type PeerNotReachable struct {
  1302  	SmsReplicationFault
  1303  }
  1304  
  1305  func init() {
  1306  	types.Add("sms:PeerNotReachable", reflect.TypeOf((*PeerNotReachable)(nil)).Elem())
  1307  }
  1308  
  1309  type PeerNotReachableFault PeerNotReachable
  1310  
  1311  func init() {
  1312  	types.Add("sms:PeerNotReachableFault", reflect.TypeOf((*PeerNotReachableFault)(nil)).Elem())
  1313  }
  1314  
  1315  // Identity of the Point in Time Replica object.
  1316  //
  1317  // This structure may be used only with operations rendered under `/sms`.
  1318  type PointInTimeReplicaId struct {
  1319  	types.DynamicData
  1320  
  1321  	// ID of the Point In Time replica.
  1322  	Id string `xml:"id" json:"id"`
  1323  }
  1324  
  1325  func init() {
  1326  	types.Add("sms:PointInTimeReplicaId", reflect.TypeOf((*PointInTimeReplicaId)(nil)).Elem())
  1327  }
  1328  
  1329  // This structure may be used only with operations rendered under `/sms`.
  1330  type PointInTimeReplicaInfo struct {
  1331  	types.DynamicData
  1332  
  1333  	// Id of the PIT replica.
  1334  	//
  1335  	// Note that this id is always used
  1336  	// in combination with the `ReplicationGroupId`, hence must be
  1337  	// unique to the `ReplicationGroupId`.
  1338  	Id PointInTimeReplicaId `xml:"id" json:"id"`
  1339  	// Name of the PIT replica.
  1340  	//
  1341  	// This may be a localized string
  1342  	// in a language as chosen by the VASA provider.
  1343  	PitName string `xml:"pitName" json:"pitName"`
  1344  	// Time when the snapshot was taken.
  1345  	//
  1346  	// Time stamps are maintained by
  1347  	// the Replication provider, note that this carries time zone information
  1348  	// as well.
  1349  	TimeStamp time.Time `xml:"timeStamp" json:"timeStamp"`
  1350  	// VASA provider managed tags associated with the replica.
  1351  	Tags []string `xml:"tags,omitempty" json:"tags,omitempty"`
  1352  }
  1353  
  1354  func init() {
  1355  	types.Add("sms:PointInTimeReplicaInfo", reflect.TypeOf((*PointInTimeReplicaInfo)(nil)).Elem())
  1356  }
  1357  
  1358  // Describes the policy association object.
  1359  //
  1360  // This structure may be used only with operations rendered under `/sms`.
  1361  type PolicyAssociation struct {
  1362  	types.DynamicData
  1363  
  1364  	// The source device id.
  1365  	//
  1366  	// The corresponding recovered device
  1367  	// gets the specified <code>policyId</code>.
  1368  	Id BaseDeviceId `xml:"id,typeattr" json:"id"`
  1369  	// Policy id.
  1370  	PolicyId string `xml:"policyId" json:"policyId"`
  1371  	// Datastore object.
  1372  	//
  1373  	// Refers instance of `Datastore`.
  1374  	Datastore types.ManagedObjectReference `xml:"datastore" json:"datastore"`
  1375  }
  1376  
  1377  func init() {
  1378  	types.Add("sms:PolicyAssociation", reflect.TypeOf((*PolicyAssociation)(nil)).Elem())
  1379  }
  1380  
  1381  // The parameters of `VasaProvider.PrepareFailoverReplicationGroup_Task`.
  1382  //
  1383  // This structure may be used only with operations rendered under `/sms`.
  1384  type PrepareFailoverReplicationGroupRequestType struct {
  1385  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1386  	// List of replication group IDs.
  1387  	GroupId []types.ReplicationGroupId `xml:"groupId,omitempty" json:"groupId,omitempty"`
  1388  }
  1389  
  1390  func init() {
  1391  	types.Add("sms:PrepareFailoverReplicationGroupRequestType", reflect.TypeOf((*PrepareFailoverReplicationGroupRequestType)(nil)).Elem())
  1392  }
  1393  
  1394  type PrepareFailoverReplicationGroup_Task PrepareFailoverReplicationGroupRequestType
  1395  
  1396  func init() {
  1397  	types.Add("sms:PrepareFailoverReplicationGroup_Task", reflect.TypeOf((*PrepareFailoverReplicationGroup_Task)(nil)).Elem())
  1398  }
  1399  
  1400  type PrepareFailoverReplicationGroup_TaskResponse struct {
  1401  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  1402  }
  1403  
  1404  // Input to the promoteReplicationGroup method.
  1405  //
  1406  // This structure may be used only with operations rendered under `/sms`.
  1407  type PromoteParam struct {
  1408  	types.DynamicData
  1409  
  1410  	// Specifies whether the promote operation is a planned one.
  1411  	//
  1412  	// When this flag is set to false, the recovery VASA provider must not
  1413  	// try to connect to the primary VASA provider during promote.
  1414  	IsPlanned bool `xml:"isPlanned" json:"isPlanned"`
  1415  	// The replication groups to promote.
  1416  	//
  1417  	// It is legal for the VASA
  1418  	// provider to successfully promote only some groups. The
  1419  	// groups that did not succeed will be retried.
  1420  	//
  1421  	// The identifiers of the Virtual Volumes do not change after the
  1422  	// promote operation.
  1423  	ReplicationGroupsToPromote []types.ReplicationGroupId `xml:"replicationGroupsToPromote,omitempty" json:"replicationGroupsToPromote,omitempty"`
  1424  }
  1425  
  1426  func init() {
  1427  	types.Add("sms:PromoteParam", reflect.TypeOf((*PromoteParam)(nil)).Elem())
  1428  }
  1429  
  1430  // The parameters of `VasaProvider.PromoteReplicationGroup_Task`.
  1431  //
  1432  // This structure may be used only with operations rendered under `/sms`.
  1433  type PromoteReplicationGroupRequestType struct {
  1434  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1435  	// Specifies an array of replication group IDs whose
  1436  	// in-test devices (`INTEST`) need to be
  1437  	// promoted to failover `FAILEDOVER` state.
  1438  	PromoteParam PromoteParam `xml:"promoteParam" json:"promoteParam"`
  1439  }
  1440  
  1441  func init() {
  1442  	types.Add("sms:PromoteReplicationGroupRequestType", reflect.TypeOf((*PromoteReplicationGroupRequestType)(nil)).Elem())
  1443  }
  1444  
  1445  type PromoteReplicationGroup_Task PromoteReplicationGroupRequestType
  1446  
  1447  func init() {
  1448  	types.Add("sms:PromoteReplicationGroup_Task", reflect.TypeOf((*PromoteReplicationGroup_Task)(nil)).Elem())
  1449  }
  1450  
  1451  type PromoteReplicationGroup_TaskResponse struct {
  1452  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  1453  }
  1454  
  1455  // This exception is thrown if the VASA Provider on which the call is made
  1456  // is currently busy.
  1457  //
  1458  // This structure may be used only with operations rendered under `/sms`.
  1459  type ProviderBusy struct {
  1460  	types.MethodFault
  1461  }
  1462  
  1463  func init() {
  1464  	types.Add("sms:ProviderBusy", reflect.TypeOf((*ProviderBusy)(nil)).Elem())
  1465  }
  1466  
  1467  type ProviderBusyFault ProviderBusy
  1468  
  1469  func init() {
  1470  	types.Add("sms:ProviderBusyFault", reflect.TypeOf((*ProviderBusyFault)(nil)).Elem())
  1471  }
  1472  
  1473  // This fault is thrown if the Storage Monitoring Service failed to connect to the VASA provider.
  1474  //
  1475  // This structure may be used only with operations rendered under `/sms`.
  1476  type ProviderConnectionFailed struct {
  1477  	types.RuntimeFault
  1478  }
  1479  
  1480  func init() {
  1481  	types.Add("sms:ProviderConnectionFailed", reflect.TypeOf((*ProviderConnectionFailed)(nil)).Elem())
  1482  }
  1483  
  1484  type ProviderConnectionFailedFault ProviderConnectionFailed
  1485  
  1486  func init() {
  1487  	types.Add("sms:ProviderConnectionFailedFault", reflect.TypeOf((*ProviderConnectionFailedFault)(nil)).Elem())
  1488  }
  1489  
  1490  // This fault is thrown when a VASA provider cannot be found for the specified
  1491  // entities.
  1492  //
  1493  // This structure may be used only with operations rendered under `/sms`.
  1494  type ProviderNotFound struct {
  1495  	QueryExecutionFault
  1496  }
  1497  
  1498  func init() {
  1499  	types.Add("sms:ProviderNotFound", reflect.TypeOf((*ProviderNotFound)(nil)).Elem())
  1500  }
  1501  
  1502  type ProviderNotFoundFault ProviderNotFound
  1503  
  1504  func init() {
  1505  	types.Add("sms:ProviderNotFoundFault", reflect.TypeOf((*ProviderNotFoundFault)(nil)).Elem())
  1506  }
  1507  
  1508  // This exception is thrown if the VASA Provider is out of resource to satisfy
  1509  // a provisioning request.
  1510  //
  1511  // This structure may be used only with operations rendered under `/sms`.
  1512  type ProviderOutOfProvisioningResource struct {
  1513  	types.MethodFault
  1514  
  1515  	// Identifier of the provisioning resource.
  1516  	ProvisioningResourceId string `xml:"provisioningResourceId" json:"provisioningResourceId"`
  1517  	// Currently available.
  1518  	AvailableBefore int64 `xml:"availableBefore,omitempty" json:"availableBefore,omitempty"`
  1519  	// Necessary for provisioning.
  1520  	AvailableAfter int64 `xml:"availableAfter,omitempty" json:"availableAfter,omitempty"`
  1521  	// Total amount (free + used).
  1522  	Total int64 `xml:"total,omitempty" json:"total,omitempty"`
  1523  	// This resource limitation is transient, i.e.
  1524  	//
  1525  	// the resource
  1526  	// will be available after some time.
  1527  	IsTransient *bool `xml:"isTransient" json:"isTransient,omitempty"`
  1528  }
  1529  
  1530  func init() {
  1531  	types.Add("sms:ProviderOutOfProvisioningResource", reflect.TypeOf((*ProviderOutOfProvisioningResource)(nil)).Elem())
  1532  }
  1533  
  1534  type ProviderOutOfProvisioningResourceFault ProviderOutOfProvisioningResource
  1535  
  1536  func init() {
  1537  	types.Add("sms:ProviderOutOfProvisioningResourceFault", reflect.TypeOf((*ProviderOutOfProvisioningResourceFault)(nil)).Elem())
  1538  }
  1539  
  1540  // This exception is thrown if the VASA Provider on which the call is made
  1541  // is out of resource.
  1542  //
  1543  // This structure may be used only with operations rendered under `/sms`.
  1544  type ProviderOutOfResource struct {
  1545  	types.MethodFault
  1546  }
  1547  
  1548  func init() {
  1549  	types.Add("sms:ProviderOutOfResource", reflect.TypeOf((*ProviderOutOfResource)(nil)).Elem())
  1550  }
  1551  
  1552  type ProviderOutOfResourceFault ProviderOutOfResource
  1553  
  1554  func init() {
  1555  	types.Add("sms:ProviderOutOfResourceFault", reflect.TypeOf((*ProviderOutOfResourceFault)(nil)).Elem())
  1556  }
  1557  
  1558  // This fault is thrown if failed to register provider to storage
  1559  // management service.
  1560  //
  1561  // This structure may be used only with operations rendered under `/sms`.
  1562  type ProviderRegistrationFault struct {
  1563  	types.MethodFault
  1564  }
  1565  
  1566  func init() {
  1567  	types.Add("sms:ProviderRegistrationFault", reflect.TypeOf((*ProviderRegistrationFault)(nil)).Elem())
  1568  }
  1569  
  1570  type ProviderRegistrationFaultFault BaseProviderRegistrationFault
  1571  
  1572  func init() {
  1573  	types.Add("sms:ProviderRegistrationFaultFault", reflect.TypeOf((*ProviderRegistrationFaultFault)(nil)).Elem())
  1574  }
  1575  
  1576  // Thrown if a failure occurs when synchronizing the service
  1577  // cache with provider information.
  1578  //
  1579  // This structure may be used only with operations rendered under `/sms`.
  1580  type ProviderSyncFailed struct {
  1581  	types.MethodFault
  1582  }
  1583  
  1584  func init() {
  1585  	types.Add("sms:ProviderSyncFailed", reflect.TypeOf((*ProviderSyncFailed)(nil)).Elem())
  1586  }
  1587  
  1588  type ProviderSyncFailedFault BaseProviderSyncFailed
  1589  
  1590  func init() {
  1591  	types.Add("sms:ProviderSyncFailedFault", reflect.TypeOf((*ProviderSyncFailedFault)(nil)).Elem())
  1592  }
  1593  
  1594  // This exception is thrown if the VASA Provider on which the call is made is
  1595  // currently not available, e.g.
  1596  //
  1597  // VASA Provider is in offline state. This error
  1598  // usually means the provider is temporarily unavailable due to network outage, etc.
  1599  // The client is expected to wait for some time and retry the same call.
  1600  //
  1601  // This structure may be used only with operations rendered under `/sms`.
  1602  type ProviderUnavailable struct {
  1603  	types.MethodFault
  1604  }
  1605  
  1606  func init() {
  1607  	types.Add("sms:ProviderUnavailable", reflect.TypeOf((*ProviderUnavailable)(nil)).Elem())
  1608  }
  1609  
  1610  type ProviderUnavailableFault ProviderUnavailable
  1611  
  1612  func init() {
  1613  	types.Add("sms:ProviderUnavailableFault", reflect.TypeOf((*ProviderUnavailableFault)(nil)).Elem())
  1614  }
  1615  
  1616  // This fault is thrown if failed to unregister provider from storage
  1617  // management service.
  1618  //
  1619  // This structure may be used only with operations rendered under `/sms`.
  1620  type ProviderUnregistrationFault struct {
  1621  	types.MethodFault
  1622  }
  1623  
  1624  func init() {
  1625  	types.Add("sms:ProviderUnregistrationFault", reflect.TypeOf((*ProviderUnregistrationFault)(nil)).Elem())
  1626  }
  1627  
  1628  type ProviderUnregistrationFaultFault ProviderUnregistrationFault
  1629  
  1630  func init() {
  1631  	types.Add("sms:ProviderUnregistrationFaultFault", reflect.TypeOf((*ProviderUnregistrationFaultFault)(nil)).Elem())
  1632  }
  1633  
  1634  // This exception is thrown if the storage management service
  1635  // fails to register with the VirtualCenter proxy during
  1636  // initialization.
  1637  //
  1638  // This structure may be used only with operations rendered under `/sms`.
  1639  type ProxyRegistrationFailed struct {
  1640  	types.RuntimeFault
  1641  }
  1642  
  1643  func init() {
  1644  	types.Add("sms:ProxyRegistrationFailed", reflect.TypeOf((*ProxyRegistrationFailed)(nil)).Elem())
  1645  }
  1646  
  1647  type ProxyRegistrationFailedFault ProxyRegistrationFailed
  1648  
  1649  func init() {
  1650  	types.Add("sms:ProxyRegistrationFailedFault", reflect.TypeOf((*ProxyRegistrationFailedFault)(nil)).Elem())
  1651  }
  1652  
  1653  type QueryAboutInfo QueryAboutInfoRequestType
  1654  
  1655  func init() {
  1656  	types.Add("sms:QueryAboutInfo", reflect.TypeOf((*QueryAboutInfo)(nil)).Elem())
  1657  }
  1658  
  1659  type QueryAboutInfoRequestType struct {
  1660  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1661  }
  1662  
  1663  func init() {
  1664  	types.Add("sms:QueryAboutInfoRequestType", reflect.TypeOf((*QueryAboutInfoRequestType)(nil)).Elem())
  1665  }
  1666  
  1667  type QueryAboutInfoResponse struct {
  1668  	Returnval SmsAboutInfo `xml:"returnval" json:"returnval"`
  1669  }
  1670  
  1671  type QueryActiveAlarm QueryActiveAlarmRequestType
  1672  
  1673  func init() {
  1674  	types.Add("sms:QueryActiveAlarm", reflect.TypeOf((*QueryActiveAlarm)(nil)).Elem())
  1675  }
  1676  
  1677  // The parameters of `VasaProvider.QueryActiveAlarm`.
  1678  //
  1679  // This structure may be used only with operations rendered under `/sms`.
  1680  type QueryActiveAlarmRequestType struct {
  1681  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1682  	// Filter criteria for the alarm state.
  1683  	AlarmFilter *AlarmFilter `xml:"alarmFilter,omitempty" json:"alarmFilter,omitempty"`
  1684  }
  1685  
  1686  func init() {
  1687  	types.Add("sms:QueryActiveAlarmRequestType", reflect.TypeOf((*QueryActiveAlarmRequestType)(nil)).Elem())
  1688  }
  1689  
  1690  type QueryActiveAlarmResponse struct {
  1691  	Returnval *AlarmResult `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1692  }
  1693  
  1694  type QueryArray QueryArrayRequestType
  1695  
  1696  func init() {
  1697  	types.Add("sms:QueryArray", reflect.TypeOf((*QueryArray)(nil)).Elem())
  1698  }
  1699  
  1700  type QueryArrayAssociatedWithLun QueryArrayAssociatedWithLunRequestType
  1701  
  1702  func init() {
  1703  	types.Add("sms:QueryArrayAssociatedWithLun", reflect.TypeOf((*QueryArrayAssociatedWithLun)(nil)).Elem())
  1704  }
  1705  
  1706  // The parameters of `SmsStorageManager.QueryArrayAssociatedWithLun`.
  1707  //
  1708  // This structure may be used only with operations rendered under `/sms`.
  1709  type QueryArrayAssociatedWithLunRequestType struct {
  1710  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1711  	// `ScsiLun.canonicalName`
  1712  	// of ScsiLun
  1713  	CanonicalName string `xml:"canonicalName" json:"canonicalName"`
  1714  }
  1715  
  1716  func init() {
  1717  	types.Add("sms:QueryArrayAssociatedWithLunRequestType", reflect.TypeOf((*QueryArrayAssociatedWithLunRequestType)(nil)).Elem())
  1718  }
  1719  
  1720  type QueryArrayAssociatedWithLunResponse struct {
  1721  	Returnval *StorageArray `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1722  }
  1723  
  1724  // The parameters of `SmsStorageManager.QueryArray`.
  1725  //
  1726  // This structure may be used only with operations rendered under `/sms`.
  1727  type QueryArrayRequestType struct {
  1728  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1729  	// List of `SmsProviderInfo.uid` for the VASA
  1730  	// provider objects.
  1731  	ProviderId []string `xml:"providerId,omitempty" json:"providerId,omitempty"`
  1732  }
  1733  
  1734  func init() {
  1735  	types.Add("sms:QueryArrayRequestType", reflect.TypeOf((*QueryArrayRequestType)(nil)).Elem())
  1736  }
  1737  
  1738  type QueryArrayResponse struct {
  1739  	Returnval []StorageArray `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1740  }
  1741  
  1742  type QueryAssociatedBackingStoragePool QueryAssociatedBackingStoragePoolRequestType
  1743  
  1744  func init() {
  1745  	types.Add("sms:QueryAssociatedBackingStoragePool", reflect.TypeOf((*QueryAssociatedBackingStoragePool)(nil)).Elem())
  1746  }
  1747  
  1748  // The parameters of `SmsStorageManager.QueryAssociatedBackingStoragePool`.
  1749  //
  1750  // This structure may be used only with operations rendered under `/sms`.
  1751  type QueryAssociatedBackingStoragePoolRequestType struct {
  1752  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1753  	// Unique identifier of a StorageLun or StorageFileSystem.
  1754  	EntityId string `xml:"entityId,omitempty" json:"entityId,omitempty"`
  1755  	// Entity type of the entity specified using entityId. This can be either
  1756  	// StorageLun or StorageFileSystem.
  1757  	EntityType string `xml:"entityType,omitempty" json:"entityType,omitempty"`
  1758  }
  1759  
  1760  func init() {
  1761  	types.Add("sms:QueryAssociatedBackingStoragePoolRequestType", reflect.TypeOf((*QueryAssociatedBackingStoragePoolRequestType)(nil)).Elem())
  1762  }
  1763  
  1764  type QueryAssociatedBackingStoragePoolResponse struct {
  1765  	Returnval []BackingStoragePool `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1766  }
  1767  
  1768  type QueryDatastoreBackingPoolMapping QueryDatastoreBackingPoolMappingRequestType
  1769  
  1770  func init() {
  1771  	types.Add("sms:QueryDatastoreBackingPoolMapping", reflect.TypeOf((*QueryDatastoreBackingPoolMapping)(nil)).Elem())
  1772  }
  1773  
  1774  // The parameters of `SmsStorageManager.QueryDatastoreBackingPoolMapping`.
  1775  //
  1776  // This structure may be used only with operations rendered under `/sms`.
  1777  type QueryDatastoreBackingPoolMappingRequestType struct {
  1778  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1779  	// Array containing references to `Datastore` objects.
  1780  	//
  1781  	// Refers instances of `Datastore`.
  1782  	Datastore []types.ManagedObjectReference `xml:"datastore" json:"datastore"`
  1783  }
  1784  
  1785  func init() {
  1786  	types.Add("sms:QueryDatastoreBackingPoolMappingRequestType", reflect.TypeOf((*QueryDatastoreBackingPoolMappingRequestType)(nil)).Elem())
  1787  }
  1788  
  1789  type QueryDatastoreBackingPoolMappingResponse struct {
  1790  	Returnval []DatastoreBackingPoolMapping `xml:"returnval" json:"returnval"`
  1791  }
  1792  
  1793  type QueryDatastoreCapability QueryDatastoreCapabilityRequestType
  1794  
  1795  func init() {
  1796  	types.Add("sms:QueryDatastoreCapability", reflect.TypeOf((*QueryDatastoreCapability)(nil)).Elem())
  1797  }
  1798  
  1799  // The parameters of `SmsStorageManager.QueryDatastoreCapability`.
  1800  //
  1801  // This structure may be used only with operations rendered under `/sms`.
  1802  type QueryDatastoreCapabilityRequestType struct {
  1803  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1804  	// reference to `Datastore`
  1805  	//
  1806  	// Refers instance of `Datastore`.
  1807  	Datastore types.ManagedObjectReference `xml:"datastore" json:"datastore"`
  1808  }
  1809  
  1810  func init() {
  1811  	types.Add("sms:QueryDatastoreCapabilityRequestType", reflect.TypeOf((*QueryDatastoreCapabilityRequestType)(nil)).Elem())
  1812  }
  1813  
  1814  type QueryDatastoreCapabilityResponse struct {
  1815  	Returnval *StorageCapability `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1816  }
  1817  
  1818  type QueryDrsMigrationCapabilityForPerformance QueryDrsMigrationCapabilityForPerformanceRequestType
  1819  
  1820  func init() {
  1821  	types.Add("sms:QueryDrsMigrationCapabilityForPerformance", reflect.TypeOf((*QueryDrsMigrationCapabilityForPerformance)(nil)).Elem())
  1822  }
  1823  
  1824  type QueryDrsMigrationCapabilityForPerformanceEx QueryDrsMigrationCapabilityForPerformanceExRequestType
  1825  
  1826  func init() {
  1827  	types.Add("sms:QueryDrsMigrationCapabilityForPerformanceEx", reflect.TypeOf((*QueryDrsMigrationCapabilityForPerformanceEx)(nil)).Elem())
  1828  }
  1829  
  1830  // The parameters of `SmsStorageManager.QueryDrsMigrationCapabilityForPerformanceEx`.
  1831  //
  1832  // This structure may be used only with operations rendered under `/sms`.
  1833  type QueryDrsMigrationCapabilityForPerformanceExRequestType struct {
  1834  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1835  	// Array containing references to `Datastore` objects.
  1836  	//
  1837  	// Refers instances of `Datastore`.
  1838  	Datastore []types.ManagedObjectReference `xml:"datastore" json:"datastore"`
  1839  }
  1840  
  1841  func init() {
  1842  	types.Add("sms:QueryDrsMigrationCapabilityForPerformanceExRequestType", reflect.TypeOf((*QueryDrsMigrationCapabilityForPerformanceExRequestType)(nil)).Elem())
  1843  }
  1844  
  1845  type QueryDrsMigrationCapabilityForPerformanceExResponse struct {
  1846  	Returnval DrsMigrationCapabilityResult `xml:"returnval" json:"returnval"`
  1847  }
  1848  
  1849  // The parameters of `SmsStorageManager.QueryDrsMigrationCapabilityForPerformance`.
  1850  //
  1851  // This structure may be used only with operations rendered under `/sms`.
  1852  type QueryDrsMigrationCapabilityForPerformanceRequestType struct {
  1853  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1854  	// Reference to the source `Datastore`
  1855  	//
  1856  	// Refers instance of `Datastore`.
  1857  	SrcDatastore types.ManagedObjectReference `xml:"srcDatastore" json:"srcDatastore"`
  1858  	// Reference to the destination `Datastore`
  1859  	//
  1860  	// Refers instance of `Datastore`.
  1861  	DstDatastore types.ManagedObjectReference `xml:"dstDatastore" json:"dstDatastore"`
  1862  }
  1863  
  1864  func init() {
  1865  	types.Add("sms:QueryDrsMigrationCapabilityForPerformanceRequestType", reflect.TypeOf((*QueryDrsMigrationCapabilityForPerformanceRequestType)(nil)).Elem())
  1866  }
  1867  
  1868  type QueryDrsMigrationCapabilityForPerformanceResponse struct {
  1869  	Returnval bool `xml:"returnval" json:"returnval"`
  1870  }
  1871  
  1872  // This exception is thrown if a failure occurs while
  1873  // processing a query request.
  1874  //
  1875  // This structure may be used only with operations rendered under `/sms`.
  1876  type QueryExecutionFault struct {
  1877  	types.MethodFault
  1878  }
  1879  
  1880  func init() {
  1881  	types.Add("sms:QueryExecutionFault", reflect.TypeOf((*QueryExecutionFault)(nil)).Elem())
  1882  }
  1883  
  1884  type QueryExecutionFaultFault BaseQueryExecutionFault
  1885  
  1886  func init() {
  1887  	types.Add("sms:QueryExecutionFaultFault", reflect.TypeOf((*QueryExecutionFaultFault)(nil)).Elem())
  1888  }
  1889  
  1890  type QueryFaultDomain QueryFaultDomainRequestType
  1891  
  1892  func init() {
  1893  	types.Add("sms:QueryFaultDomain", reflect.TypeOf((*QueryFaultDomain)(nil)).Elem())
  1894  }
  1895  
  1896  // The parameters of `SmsStorageManager.QueryFaultDomain`.
  1897  //
  1898  // This structure may be used only with operations rendered under `/sms`.
  1899  type QueryFaultDomainRequestType struct {
  1900  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1901  	// spec for the query operation.
  1902  	Filter *FaultDomainFilter `xml:"filter,omitempty" json:"filter,omitempty"`
  1903  }
  1904  
  1905  func init() {
  1906  	types.Add("sms:QueryFaultDomainRequestType", reflect.TypeOf((*QueryFaultDomainRequestType)(nil)).Elem())
  1907  }
  1908  
  1909  type QueryFaultDomainResponse struct {
  1910  	Returnval []types.FaultDomainId `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1911  }
  1912  
  1913  type QueryFileSystemAssociatedWithArray QueryFileSystemAssociatedWithArrayRequestType
  1914  
  1915  func init() {
  1916  	types.Add("sms:QueryFileSystemAssociatedWithArray", reflect.TypeOf((*QueryFileSystemAssociatedWithArray)(nil)).Elem())
  1917  }
  1918  
  1919  // The parameters of `SmsStorageManager.QueryFileSystemAssociatedWithArray`.
  1920  //
  1921  // This structure may be used only with operations rendered under `/sms`.
  1922  type QueryFileSystemAssociatedWithArrayRequestType struct {
  1923  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1924  	// `StorageArray.uuid` for the StorageArray
  1925  	// object.
  1926  	ArrayId string `xml:"arrayId" json:"arrayId"`
  1927  }
  1928  
  1929  func init() {
  1930  	types.Add("sms:QueryFileSystemAssociatedWithArrayRequestType", reflect.TypeOf((*QueryFileSystemAssociatedWithArrayRequestType)(nil)).Elem())
  1931  }
  1932  
  1933  type QueryFileSystemAssociatedWithArrayResponse struct {
  1934  	Returnval []StorageFileSystem `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1935  }
  1936  
  1937  type QueryHostAssociatedWithLun QueryHostAssociatedWithLunRequestType
  1938  
  1939  func init() {
  1940  	types.Add("sms:QueryHostAssociatedWithLun", reflect.TypeOf((*QueryHostAssociatedWithLun)(nil)).Elem())
  1941  }
  1942  
  1943  // The parameters of `SmsStorageManager.QueryHostAssociatedWithLun`.
  1944  //
  1945  // This structure may be used only with operations rendered under `/sms`.
  1946  type QueryHostAssociatedWithLunRequestType struct {
  1947  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1948  	// `StorageLun.uuid` for the StorageLun
  1949  	// object.
  1950  	Scsi3Id string `xml:"scsi3Id" json:"scsi3Id"`
  1951  	// `StorageArray.uuid` for the StorageArray
  1952  	// object.
  1953  	ArrayId string `xml:"arrayId" json:"arrayId"`
  1954  }
  1955  
  1956  func init() {
  1957  	types.Add("sms:QueryHostAssociatedWithLunRequestType", reflect.TypeOf((*QueryHostAssociatedWithLunRequestType)(nil)).Elem())
  1958  }
  1959  
  1960  type QueryHostAssociatedWithLunResponse struct {
  1961  	Returnval []types.ManagedObjectReference `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1962  }
  1963  
  1964  type QueryLunAssociatedWithArray QueryLunAssociatedWithArrayRequestType
  1965  
  1966  func init() {
  1967  	types.Add("sms:QueryLunAssociatedWithArray", reflect.TypeOf((*QueryLunAssociatedWithArray)(nil)).Elem())
  1968  }
  1969  
  1970  // The parameters of `SmsStorageManager.QueryLunAssociatedWithArray`.
  1971  //
  1972  // This structure may be used only with operations rendered under `/sms`.
  1973  type QueryLunAssociatedWithArrayRequestType struct {
  1974  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1975  	// `StorageArray.uuid` for the StorageArray
  1976  	// object.
  1977  	ArrayId string `xml:"arrayId" json:"arrayId"`
  1978  }
  1979  
  1980  func init() {
  1981  	types.Add("sms:QueryLunAssociatedWithArrayRequestType", reflect.TypeOf((*QueryLunAssociatedWithArrayRequestType)(nil)).Elem())
  1982  }
  1983  
  1984  type QueryLunAssociatedWithArrayResponse struct {
  1985  	Returnval []StorageLun `xml:"returnval,omitempty" json:"returnval,omitempty"`
  1986  }
  1987  
  1988  type QueryLunAssociatedWithPort QueryLunAssociatedWithPortRequestType
  1989  
  1990  func init() {
  1991  	types.Add("sms:QueryLunAssociatedWithPort", reflect.TypeOf((*QueryLunAssociatedWithPort)(nil)).Elem())
  1992  }
  1993  
  1994  // The parameters of `SmsStorageManager.QueryLunAssociatedWithPort`.
  1995  //
  1996  // This structure may be used only with operations rendered under `/sms`.
  1997  type QueryLunAssociatedWithPortRequestType struct {
  1998  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  1999  	// `StoragePort.uuid` for the StoragePort
  2000  	// object.
  2001  	PortId string `xml:"portId" json:"portId"`
  2002  	// `StorageArray.uuid` for the StorageArray
  2003  	// object.
  2004  	ArrayId string `xml:"arrayId" json:"arrayId"`
  2005  }
  2006  
  2007  func init() {
  2008  	types.Add("sms:QueryLunAssociatedWithPortRequestType", reflect.TypeOf((*QueryLunAssociatedWithPortRequestType)(nil)).Elem())
  2009  }
  2010  
  2011  type QueryLunAssociatedWithPortResponse struct {
  2012  	Returnval []StorageLun `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2013  }
  2014  
  2015  type QueryNfsDatastoreAssociatedWithFileSystem QueryNfsDatastoreAssociatedWithFileSystemRequestType
  2016  
  2017  func init() {
  2018  	types.Add("sms:QueryNfsDatastoreAssociatedWithFileSystem", reflect.TypeOf((*QueryNfsDatastoreAssociatedWithFileSystem)(nil)).Elem())
  2019  }
  2020  
  2021  // The parameters of `SmsStorageManager.QueryNfsDatastoreAssociatedWithFileSystem`.
  2022  //
  2023  // This structure may be used only with operations rendered under `/sms`.
  2024  type QueryNfsDatastoreAssociatedWithFileSystemRequestType struct {
  2025  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2026  	// `StorageFileSystem.uuid` for the
  2027  	// StorageFileSystem object
  2028  	FileSystemId string `xml:"fileSystemId" json:"fileSystemId"`
  2029  	// `StorageArray.uuid` for the StorageArray
  2030  	// object.
  2031  	ArrayId string `xml:"arrayId" json:"arrayId"`
  2032  }
  2033  
  2034  func init() {
  2035  	types.Add("sms:QueryNfsDatastoreAssociatedWithFileSystemRequestType", reflect.TypeOf((*QueryNfsDatastoreAssociatedWithFileSystemRequestType)(nil)).Elem())
  2036  }
  2037  
  2038  type QueryNfsDatastoreAssociatedWithFileSystemResponse struct {
  2039  	Returnval *types.ManagedObjectReference `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2040  }
  2041  
  2042  // This exception is thrown if the specified entity and related
  2043  // entity type combination for a list query is not supported.
  2044  //
  2045  // This structure may be used only with operations rendered under `/sms`.
  2046  type QueryNotSupported struct {
  2047  	types.InvalidArgument
  2048  
  2049  	// Entity type.
  2050  	EntityType EntityReferenceEntityType `xml:"entityType,omitempty" json:"entityType,omitempty"`
  2051  	// Related entity type.
  2052  	RelatedEntityType EntityReferenceEntityType `xml:"relatedEntityType" json:"relatedEntityType"`
  2053  }
  2054  
  2055  func init() {
  2056  	types.Add("sms:QueryNotSupported", reflect.TypeOf((*QueryNotSupported)(nil)).Elem())
  2057  }
  2058  
  2059  type QueryNotSupportedFault QueryNotSupported
  2060  
  2061  func init() {
  2062  	types.Add("sms:QueryNotSupportedFault", reflect.TypeOf((*QueryNotSupportedFault)(nil)).Elem())
  2063  }
  2064  
  2065  type QueryPointInTimeReplica QueryPointInTimeReplicaRequestType
  2066  
  2067  func init() {
  2068  	types.Add("sms:QueryPointInTimeReplica", reflect.TypeOf((*QueryPointInTimeReplica)(nil)).Elem())
  2069  }
  2070  
  2071  // Describes the search criteria for the PiT query.
  2072  //
  2073  // If none of the fields
  2074  // is set, or if the number of PiT replicas is too large, VASA provider can
  2075  // return `QueryPointInTimeReplicaSummaryResult`.
  2076  //
  2077  // This structure may be used only with operations rendered under `/sms`.
  2078  type QueryPointInTimeReplicaParam struct {
  2079  	types.DynamicData
  2080  
  2081  	// Specifies the replica time span that vSphere is interested in.
  2082  	ReplicaTimeQueryParam *ReplicaQueryIntervalParam `xml:"replicaTimeQueryParam,omitempty" json:"replicaTimeQueryParam,omitempty"`
  2083  	// Only the replicas that match the given name are requested.
  2084  	//
  2085  	// A regexp according to http://www.w3.org/TR/xmlschema-2/#regexs.
  2086  	PitName string `xml:"pitName,omitempty" json:"pitName,omitempty"`
  2087  	// Only the replicas with tags that match the given tag(s) are requested.
  2088  	//
  2089  	// Each entry may be a regexp according to http://www.w3.org/TR/xmlschema-2/#regexs.
  2090  	Tags []string `xml:"tags,omitempty" json:"tags,omitempty"`
  2091  	// This field is hint for the preferred type of return results.
  2092  	//
  2093  	// It can be either true for `QueryPointInTimeReplicaSuccessResult` or
  2094  	// false for `QueryPointInTimeReplicaSummaryResult`.
  2095  	// If not set, VP may choose the appropriate type, as described in
  2096  	// <code>ReplicaQueryIntervalParam</code>.
  2097  	PreferDetails *bool `xml:"preferDetails" json:"preferDetails,omitempty"`
  2098  }
  2099  
  2100  func init() {
  2101  	types.Add("sms:QueryPointInTimeReplicaParam", reflect.TypeOf((*QueryPointInTimeReplicaParam)(nil)).Elem())
  2102  }
  2103  
  2104  // The parameters of `VasaProvider.QueryPointInTimeReplica`.
  2105  //
  2106  // This structure may be used only with operations rendered under `/sms`.
  2107  type QueryPointInTimeReplicaRequestType struct {
  2108  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2109  	// List of replication group IDs.
  2110  	GroupId []types.ReplicationGroupId `xml:"groupId,omitempty" json:"groupId,omitempty"`
  2111  	// Search criteria specification for all the groups.
  2112  	QueryParam *QueryPointInTimeReplicaParam `xml:"queryParam,omitempty" json:"queryParam,omitempty"`
  2113  }
  2114  
  2115  func init() {
  2116  	types.Add("sms:QueryPointInTimeReplicaRequestType", reflect.TypeOf((*QueryPointInTimeReplicaRequestType)(nil)).Elem())
  2117  }
  2118  
  2119  type QueryPointInTimeReplicaResponse struct {
  2120  	Returnval []BaseGroupOperationResult `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"`
  2121  }
  2122  
  2123  // Return type for successful
  2124  // `VasaProvider.QueryPointInTimeReplica`
  2125  // operation.
  2126  //
  2127  // If the VASA provider decides that there are too many to return,
  2128  // it could set the result of some of the groups to `TooMany`
  2129  // fault or `QueryPointInTimeReplicaSummaryResult`.
  2130  //
  2131  // vSphere will then query for these groups separately.
  2132  //
  2133  // This structure may be used only with operations rendered under `/sms`.
  2134  type QueryPointInTimeReplicaSuccessResult struct {
  2135  	GroupOperationResult
  2136  
  2137  	// Information about the available replicas.
  2138  	ReplicaInfo []PointInTimeReplicaInfo `xml:"replicaInfo,omitempty" json:"replicaInfo,omitempty"`
  2139  }
  2140  
  2141  func init() {
  2142  	types.Add("sms:QueryPointInTimeReplicaSuccessResult", reflect.TypeOf((*QueryPointInTimeReplicaSuccessResult)(nil)).Elem())
  2143  }
  2144  
  2145  // Summary of the available replicas.
  2146  //
  2147  // Mostly useful for CDP type replicators.
  2148  //
  2149  // This structure may be used only with operations rendered under `/sms`.
  2150  type QueryPointInTimeReplicaSummaryResult struct {
  2151  	GroupOperationResult
  2152  
  2153  	// A series of query results.
  2154  	//
  2155  	// No special ordering is assumed by vSphere.
  2156  	IntervalResults []ReplicaIntervalQueryResult `xml:"intervalResults,omitempty" json:"intervalResults,omitempty"`
  2157  }
  2158  
  2159  func init() {
  2160  	types.Add("sms:QueryPointInTimeReplicaSummaryResult", reflect.TypeOf((*QueryPointInTimeReplicaSummaryResult)(nil)).Elem())
  2161  }
  2162  
  2163  type QueryPortAssociatedWithArray QueryPortAssociatedWithArrayRequestType
  2164  
  2165  func init() {
  2166  	types.Add("sms:QueryPortAssociatedWithArray", reflect.TypeOf((*QueryPortAssociatedWithArray)(nil)).Elem())
  2167  }
  2168  
  2169  // The parameters of `SmsStorageManager.QueryPortAssociatedWithArray`.
  2170  //
  2171  // This structure may be used only with operations rendered under `/sms`.
  2172  type QueryPortAssociatedWithArrayRequestType struct {
  2173  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2174  	// `StorageArray.uuid` for the StorageArray
  2175  	// object.
  2176  	ArrayId string `xml:"arrayId" json:"arrayId"`
  2177  }
  2178  
  2179  func init() {
  2180  	types.Add("sms:QueryPortAssociatedWithArrayRequestType", reflect.TypeOf((*QueryPortAssociatedWithArrayRequestType)(nil)).Elem())
  2181  }
  2182  
  2183  type QueryPortAssociatedWithArrayResponse struct {
  2184  	Returnval []BaseStoragePort `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"`
  2185  }
  2186  
  2187  type QueryPortAssociatedWithLun QueryPortAssociatedWithLunRequestType
  2188  
  2189  func init() {
  2190  	types.Add("sms:QueryPortAssociatedWithLun", reflect.TypeOf((*QueryPortAssociatedWithLun)(nil)).Elem())
  2191  }
  2192  
  2193  // The parameters of `SmsStorageManager.QueryPortAssociatedWithLun`.
  2194  //
  2195  // This structure may be used only with operations rendered under `/sms`.
  2196  type QueryPortAssociatedWithLunRequestType struct {
  2197  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2198  	// `StorageLun.uuid` for the StorageLun
  2199  	// object.
  2200  	Scsi3Id string `xml:"scsi3Id" json:"scsi3Id"`
  2201  	// `StorageArray.uuid` for the StorageArray
  2202  	// object.
  2203  	ArrayId string `xml:"arrayId" json:"arrayId"`
  2204  }
  2205  
  2206  func init() {
  2207  	types.Add("sms:QueryPortAssociatedWithLunRequestType", reflect.TypeOf((*QueryPortAssociatedWithLunRequestType)(nil)).Elem())
  2208  }
  2209  
  2210  type QueryPortAssociatedWithLunResponse struct {
  2211  	Returnval BaseStoragePort `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"`
  2212  }
  2213  
  2214  type QueryPortAssociatedWithProcessor QueryPortAssociatedWithProcessorRequestType
  2215  
  2216  func init() {
  2217  	types.Add("sms:QueryPortAssociatedWithProcessor", reflect.TypeOf((*QueryPortAssociatedWithProcessor)(nil)).Elem())
  2218  }
  2219  
  2220  // The parameters of `SmsStorageManager.QueryPortAssociatedWithProcessor`.
  2221  //
  2222  // This structure may be used only with operations rendered under `/sms`.
  2223  type QueryPortAssociatedWithProcessorRequestType struct {
  2224  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2225  	// `StorageProcessor.uuid` for the
  2226  	// StorageProcessor object.
  2227  	ProcessorId string `xml:"processorId" json:"processorId"`
  2228  	// `StorageArray.uuid` for the StorageArray
  2229  	// object.
  2230  	ArrayId string `xml:"arrayId" json:"arrayId"`
  2231  }
  2232  
  2233  func init() {
  2234  	types.Add("sms:QueryPortAssociatedWithProcessorRequestType", reflect.TypeOf((*QueryPortAssociatedWithProcessorRequestType)(nil)).Elem())
  2235  }
  2236  
  2237  type QueryPortAssociatedWithProcessorResponse struct {
  2238  	Returnval []BaseStoragePort `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"`
  2239  }
  2240  
  2241  type QueryProcessorAssociatedWithArray QueryProcessorAssociatedWithArrayRequestType
  2242  
  2243  func init() {
  2244  	types.Add("sms:QueryProcessorAssociatedWithArray", reflect.TypeOf((*QueryProcessorAssociatedWithArray)(nil)).Elem())
  2245  }
  2246  
  2247  // The parameters of `SmsStorageManager.QueryProcessorAssociatedWithArray`.
  2248  //
  2249  // This structure may be used only with operations rendered under `/sms`.
  2250  type QueryProcessorAssociatedWithArrayRequestType struct {
  2251  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2252  	// `StorageArray.uuid` for the StorageArray
  2253  	// object.
  2254  	ArrayId string `xml:"arrayId" json:"arrayId"`
  2255  }
  2256  
  2257  func init() {
  2258  	types.Add("sms:QueryProcessorAssociatedWithArrayRequestType", reflect.TypeOf((*QueryProcessorAssociatedWithArrayRequestType)(nil)).Elem())
  2259  }
  2260  
  2261  type QueryProcessorAssociatedWithArrayResponse struct {
  2262  	Returnval []StorageProcessor `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2263  }
  2264  
  2265  type QueryProvider QueryProviderRequestType
  2266  
  2267  func init() {
  2268  	types.Add("sms:QueryProvider", reflect.TypeOf((*QueryProvider)(nil)).Elem())
  2269  }
  2270  
  2271  type QueryProviderInfo QueryProviderInfoRequestType
  2272  
  2273  func init() {
  2274  	types.Add("sms:QueryProviderInfo", reflect.TypeOf((*QueryProviderInfo)(nil)).Elem())
  2275  }
  2276  
  2277  type QueryProviderInfoRequestType struct {
  2278  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2279  }
  2280  
  2281  func init() {
  2282  	types.Add("sms:QueryProviderInfoRequestType", reflect.TypeOf((*QueryProviderInfoRequestType)(nil)).Elem())
  2283  }
  2284  
  2285  type QueryProviderInfoResponse struct {
  2286  	Returnval BaseSmsProviderInfo `xml:"returnval,typeattr" json:"returnval"`
  2287  }
  2288  
  2289  type QueryProviderRequestType struct {
  2290  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2291  }
  2292  
  2293  func init() {
  2294  	types.Add("sms:QueryProviderRequestType", reflect.TypeOf((*QueryProviderRequestType)(nil)).Elem())
  2295  }
  2296  
  2297  type QueryProviderResponse struct {
  2298  	Returnval []types.ManagedObjectReference `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2299  }
  2300  
  2301  type QueryReplicationGroup QueryReplicationGroupRequestType
  2302  
  2303  func init() {
  2304  	types.Add("sms:QueryReplicationGroup", reflect.TypeOf((*QueryReplicationGroup)(nil)).Elem())
  2305  }
  2306  
  2307  type QueryReplicationGroupInfo QueryReplicationGroupInfoRequestType
  2308  
  2309  func init() {
  2310  	types.Add("sms:QueryReplicationGroupInfo", reflect.TypeOf((*QueryReplicationGroupInfo)(nil)).Elem())
  2311  }
  2312  
  2313  // The parameters of `SmsStorageManager.QueryReplicationGroupInfo`.
  2314  //
  2315  // This structure may be used only with operations rendered under `/sms`.
  2316  type QueryReplicationGroupInfoRequestType struct {
  2317  	This     types.ManagedObjectReference `xml:"_this" json:"_this"`
  2318  	RgFilter ReplicationGroupFilter       `xml:"rgFilter" json:"rgFilter"`
  2319  }
  2320  
  2321  func init() {
  2322  	types.Add("sms:QueryReplicationGroupInfoRequestType", reflect.TypeOf((*QueryReplicationGroupInfoRequestType)(nil)).Elem())
  2323  }
  2324  
  2325  type QueryReplicationGroupInfoResponse struct {
  2326  	Returnval []BaseGroupOperationResult `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"`
  2327  }
  2328  
  2329  // The parameters of `VasaProvider.QueryReplicationGroup`.
  2330  //
  2331  // This structure may be used only with operations rendered under `/sms`.
  2332  type QueryReplicationGroupRequestType struct {
  2333  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2334  	// List of replication group IDs.
  2335  	GroupId []types.ReplicationGroupId `xml:"groupId,omitempty" json:"groupId,omitempty"`
  2336  }
  2337  
  2338  func init() {
  2339  	types.Add("sms:QueryReplicationGroupRequestType", reflect.TypeOf((*QueryReplicationGroupRequestType)(nil)).Elem())
  2340  }
  2341  
  2342  type QueryReplicationGroupResponse struct {
  2343  	Returnval []BaseGroupOperationResult `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"`
  2344  }
  2345  
  2346  // Information about the replication groups.
  2347  //
  2348  // Information about both the source
  2349  // groups and the target groups is returned.
  2350  //
  2351  // This structure may be used only with operations rendered under `/sms`.
  2352  type QueryReplicationGroupSuccessResult struct {
  2353  	GroupOperationResult
  2354  
  2355  	// Information about the replication group.
  2356  	//
  2357  	// May be either
  2358  	// `SourceGroupInfo` or `TargetGroupInfo`.
  2359  	RgInfo BaseGroupInfo `xml:"rgInfo,typeattr" json:"rgInfo"`
  2360  }
  2361  
  2362  func init() {
  2363  	types.Add("sms:QueryReplicationGroupSuccessResult", reflect.TypeOf((*QueryReplicationGroupSuccessResult)(nil)).Elem())
  2364  }
  2365  
  2366  type QueryReplicationPeer QueryReplicationPeerRequestType
  2367  
  2368  func init() {
  2369  	types.Add("sms:QueryReplicationPeer", reflect.TypeOf((*QueryReplicationPeer)(nil)).Elem())
  2370  }
  2371  
  2372  // The parameters of `VasaProvider.QueryReplicationPeer`.
  2373  //
  2374  // This structure may be used only with operations rendered under `/sms`.
  2375  type QueryReplicationPeerRequestType struct {
  2376  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2377  	// An optional list of source fault domain ID.
  2378  	FaultDomainId []types.FaultDomainId `xml:"faultDomainId,omitempty" json:"faultDomainId,omitempty"`
  2379  }
  2380  
  2381  func init() {
  2382  	types.Add("sms:QueryReplicationPeerRequestType", reflect.TypeOf((*QueryReplicationPeerRequestType)(nil)).Elem())
  2383  }
  2384  
  2385  type QueryReplicationPeerResponse struct {
  2386  	Returnval []QueryReplicationPeerResult `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2387  }
  2388  
  2389  // Information about the replication peers of a VASA provider.
  2390  //
  2391  // This structure may be used only with operations rendered under `/sms`.
  2392  type QueryReplicationPeerResult struct {
  2393  	types.DynamicData
  2394  
  2395  	// Source fault domain id, must correspond to an id from the input.
  2396  	SourceDomain types.FaultDomainId `xml:"sourceDomain" json:"sourceDomain"`
  2397  	// Target fault domains for the given source, fault domain ID's are globally
  2398  	// unique.
  2399  	//
  2400  	// There can be one or more target domains for a given source.
  2401  	TargetDomain []types.FaultDomainId `xml:"targetDomain,omitempty" json:"targetDomain,omitempty"`
  2402  	// Error must be set when targetDomain field is not set.
  2403  	Error []types.LocalizedMethodFault `xml:"error,omitempty" json:"error,omitempty"`
  2404  	// Optional warning messages.
  2405  	Warning []types.LocalizedMethodFault `xml:"warning,omitempty" json:"warning,omitempty"`
  2406  }
  2407  
  2408  func init() {
  2409  	types.Add("sms:QueryReplicationPeerResult", reflect.TypeOf((*QueryReplicationPeerResult)(nil)).Elem())
  2410  }
  2411  
  2412  type QuerySessionManager QuerySessionManagerRequestType
  2413  
  2414  func init() {
  2415  	types.Add("sms:QuerySessionManager", reflect.TypeOf((*QuerySessionManager)(nil)).Elem())
  2416  }
  2417  
  2418  type QuerySessionManagerRequestType struct {
  2419  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2420  }
  2421  
  2422  func init() {
  2423  	types.Add("sms:QuerySessionManagerRequestType", reflect.TypeOf((*QuerySessionManagerRequestType)(nil)).Elem())
  2424  }
  2425  
  2426  type QuerySessionManagerResponse struct {
  2427  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  2428  }
  2429  
  2430  type QuerySmsTaskInfo QuerySmsTaskInfoRequestType
  2431  
  2432  func init() {
  2433  	types.Add("sms:QuerySmsTaskInfo", reflect.TypeOf((*QuerySmsTaskInfo)(nil)).Elem())
  2434  }
  2435  
  2436  type QuerySmsTaskInfoRequestType struct {
  2437  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2438  }
  2439  
  2440  func init() {
  2441  	types.Add("sms:QuerySmsTaskInfoRequestType", reflect.TypeOf((*QuerySmsTaskInfoRequestType)(nil)).Elem())
  2442  }
  2443  
  2444  type QuerySmsTaskInfoResponse struct {
  2445  	Returnval SmsTaskInfo `xml:"returnval" json:"returnval"`
  2446  }
  2447  
  2448  type QuerySmsTaskResult QuerySmsTaskResultRequestType
  2449  
  2450  func init() {
  2451  	types.Add("sms:QuerySmsTaskResult", reflect.TypeOf((*QuerySmsTaskResult)(nil)).Elem())
  2452  }
  2453  
  2454  type QuerySmsTaskResultRequestType struct {
  2455  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2456  }
  2457  
  2458  func init() {
  2459  	types.Add("sms:QuerySmsTaskResultRequestType", reflect.TypeOf((*QuerySmsTaskResultRequestType)(nil)).Elem())
  2460  }
  2461  
  2462  type QuerySmsTaskResultResponse struct {
  2463  	Returnval types.AnyType `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"`
  2464  }
  2465  
  2466  type QueryStorageContainer QueryStorageContainerRequestType
  2467  
  2468  func init() {
  2469  	types.Add("sms:QueryStorageContainer", reflect.TypeOf((*QueryStorageContainer)(nil)).Elem())
  2470  }
  2471  
  2472  // The parameters of `SmsStorageManager.QueryStorageContainer`.
  2473  //
  2474  // This structure may be used only with operations rendered under `/sms`.
  2475  type QueryStorageContainerRequestType struct {
  2476  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2477  	// `StorageContainerSpec`
  2478  	ContainerSpec *StorageContainerSpec `xml:"containerSpec,omitempty" json:"containerSpec,omitempty"`
  2479  }
  2480  
  2481  func init() {
  2482  	types.Add("sms:QueryStorageContainerRequestType", reflect.TypeOf((*QueryStorageContainerRequestType)(nil)).Elem())
  2483  }
  2484  
  2485  type QueryStorageContainerResponse struct {
  2486  	Returnval *StorageContainerResult `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2487  }
  2488  
  2489  type QueryStorageManager QueryStorageManagerRequestType
  2490  
  2491  func init() {
  2492  	types.Add("sms:QueryStorageManager", reflect.TypeOf((*QueryStorageManager)(nil)).Elem())
  2493  }
  2494  
  2495  type QueryStorageManagerRequestType struct {
  2496  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2497  }
  2498  
  2499  func init() {
  2500  	types.Add("sms:QueryStorageManagerRequestType", reflect.TypeOf((*QueryStorageManagerRequestType)(nil)).Elem())
  2501  }
  2502  
  2503  type QueryStorageManagerResponse struct {
  2504  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  2505  }
  2506  
  2507  type QueryVmfsDatastoreAssociatedWithLun QueryVmfsDatastoreAssociatedWithLunRequestType
  2508  
  2509  func init() {
  2510  	types.Add("sms:QueryVmfsDatastoreAssociatedWithLun", reflect.TypeOf((*QueryVmfsDatastoreAssociatedWithLun)(nil)).Elem())
  2511  }
  2512  
  2513  // The parameters of `SmsStorageManager.QueryVmfsDatastoreAssociatedWithLun`.
  2514  //
  2515  // This structure may be used only with operations rendered under `/sms`.
  2516  type QueryVmfsDatastoreAssociatedWithLunRequestType struct {
  2517  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2518  	// `StorageLun.uuid` for the StorageLun object
  2519  	Scsi3Id string `xml:"scsi3Id" json:"scsi3Id"`
  2520  	// `StorageArray.uuid` for the StorageArray
  2521  	// object.
  2522  	ArrayId string `xml:"arrayId" json:"arrayId"`
  2523  }
  2524  
  2525  func init() {
  2526  	types.Add("sms:QueryVmfsDatastoreAssociatedWithLunRequestType", reflect.TypeOf((*QueryVmfsDatastoreAssociatedWithLunRequestType)(nil)).Elem())
  2527  }
  2528  
  2529  type QueryVmfsDatastoreAssociatedWithLunResponse struct {
  2530  	Returnval *types.ManagedObjectReference `xml:"returnval,omitempty" json:"returnval,omitempty"`
  2531  }
  2532  
  2533  // Represents the device after the failover.
  2534  //
  2535  // Even though many of the fields in this structure are
  2536  // marked optional, it is important for VASA provider to
  2537  // make sure that the recovery of the entire ReplicationGroup succeeds
  2538  // atomically. The only valid scenario when there is a device specific
  2539  // recovery failure is when there is no valid replica for the Virtual Volume
  2540  // (e.g. Virtual Volume was just added to the ReplicationGroup).
  2541  //
  2542  // This structure may be used only with operations rendered under `/sms`.
  2543  type RecoveredDevice struct {
  2544  	types.DynamicData
  2545  
  2546  	// Identifier of the device which was the target of replication before
  2547  	// failover.
  2548  	TargetDeviceId *ReplicaId `xml:"targetDeviceId,omitempty" json:"targetDeviceId,omitempty"`
  2549  	// Identifier of the target device after test or failover.
  2550  	RecoveredDeviceId BaseDeviceId `xml:"recoveredDeviceId,omitempty,typeattr" json:"recoveredDeviceId,omitempty"`
  2551  	// Identifier of the source of the replication data before the failover
  2552  	// stopped the replication.
  2553  	SourceDeviceId BaseDeviceId `xml:"sourceDeviceId,typeattr" json:"sourceDeviceId"`
  2554  	// Informational messages.
  2555  	Info []string `xml:"info,omitempty" json:"info,omitempty"`
  2556  	// Datastore for the newly surfaced device.
  2557  	//
  2558  	// Refers instance of `Datastore`.
  2559  	Datastore types.ManagedObjectReference `xml:"datastore" json:"datastore"`
  2560  	// Only to be filled in if the `RecoveredDevice.recoveredDeviceId` is `VirtualMachineId`.
  2561  	RecoveredDiskInfo []RecoveredDiskInfo `xml:"recoveredDiskInfo,omitempty" json:"recoveredDiskInfo,omitempty"`
  2562  	// Virtual Volume specific recovery error.
  2563  	//
  2564  	// This should be rare.
  2565  	Error *types.LocalizedMethodFault `xml:"error,omitempty" json:"error,omitempty"`
  2566  	// Warnings.
  2567  	Warnings []types.LocalizedMethodFault `xml:"warnings,omitempty" json:"warnings,omitempty"`
  2568  }
  2569  
  2570  func init() {
  2571  	types.Add("sms:RecoveredDevice", reflect.TypeOf((*RecoveredDevice)(nil)).Elem())
  2572  }
  2573  
  2574  // Describes the recovered disks for a given virtual machine.
  2575  //
  2576  // Only applicable for VAIO based replicators. Upon recovery,
  2577  // all the replicated disks must be attached to the virtual machine,
  2578  // i.e. the VMX file must refer to the correct file paths. Device
  2579  // keys must be preserved and non-replicated disks can refer to
  2580  // non-existent file names.
  2581  // Array based replicators can ignore this class.
  2582  //
  2583  // This structure may be used only with operations rendered under `/sms`.
  2584  type RecoveredDiskInfo struct {
  2585  	types.DynamicData
  2586  
  2587  	// Virtual disk key.
  2588  	//
  2589  	// Note that disk device
  2590  	// keys must not change after recovery - in other words, the device
  2591  	// key is the same on both the source and target sites.
  2592  	//
  2593  	// For example, if a VMDK d1 is being replicated to d1', and d1 is attached as device
  2594  	// 2001 to the source VM, the recovered VM should have d1' attached
  2595  	// as 2001.
  2596  	DeviceKey int32 `xml:"deviceKey" json:"deviceKey"`
  2597  	// URL of the datastore that disk was recovered to.
  2598  	DsUrl string `xml:"dsUrl" json:"dsUrl"`
  2599  	// Full pathname of the disk.
  2600  	DiskPath string `xml:"diskPath" json:"diskPath"`
  2601  }
  2602  
  2603  func init() {
  2604  	types.Add("sms:RecoveredDiskInfo", reflect.TypeOf((*RecoveredDiskInfo)(nil)).Elem())
  2605  }
  2606  
  2607  // Information about member virtual volumes in a ReplicationGroup
  2608  // on the target after failover or testFailoverStart.
  2609  //
  2610  // This must include information about all the vSphere managed snapshots in
  2611  // the ReplicationGroup.
  2612  //
  2613  // This structure may be used only with operations rendered under `/sms`.
  2614  type RecoveredTargetGroupMemberInfo struct {
  2615  	TargetGroupMemberInfo
  2616  
  2617  	// Identifier of the target device after test or failover.
  2618  	RecoveredDeviceId BaseDeviceId `xml:"recoveredDeviceId,omitempty,typeattr" json:"recoveredDeviceId,omitempty"`
  2619  }
  2620  
  2621  func init() {
  2622  	types.Add("sms:RecoveredTargetGroupMemberInfo", reflect.TypeOf((*RecoveredTargetGroupMemberInfo)(nil)).Elem())
  2623  }
  2624  
  2625  // The parameters of `SmsStorageManager.RegisterProvider_Task`.
  2626  //
  2627  // This structure may be used only with operations rendered under `/sms`.
  2628  type RegisterProviderRequestType struct {
  2629  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2630  	// `SmsProviderSpec`
  2631  	// containing parameters needed to register the
  2632  	// provider
  2633  	ProviderSpec BaseSmsProviderSpec `xml:"providerSpec,typeattr" json:"providerSpec"`
  2634  }
  2635  
  2636  func init() {
  2637  	types.Add("sms:RegisterProviderRequestType", reflect.TypeOf((*RegisterProviderRequestType)(nil)).Elem())
  2638  }
  2639  
  2640  type RegisterProvider_Task RegisterProviderRequestType
  2641  
  2642  func init() {
  2643  	types.Add("sms:RegisterProvider_Task", reflect.TypeOf((*RegisterProvider_Task)(nil)).Elem())
  2644  }
  2645  
  2646  type RegisterProvider_TaskResponse struct {
  2647  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  2648  }
  2649  
  2650  // Indicates whether the provider has been marked as active for the given array
  2651  // for the session context.
  2652  //
  2653  // SMS uses `StorageArray.priority` value to mark a provider
  2654  // as active among the ones that are registered with SMS and manage this array.
  2655  //
  2656  // This structure may be used only with operations rendered under `/sms`.
  2657  type RelatedStorageArray struct {
  2658  	types.DynamicData
  2659  
  2660  	// `StorageArray.uuid` of StorageArray
  2661  	ArrayId string `xml:"arrayId" json:"arrayId"`
  2662  	// This field indicates whether the provider is currently serving data for the StorageArray
  2663  	Active bool `xml:"active" json:"active"`
  2664  	// Manageability status of StorageArray on VASA provider, if true it is manageable.
  2665  	Manageable bool `xml:"manageable" json:"manageable"`
  2666  	// Deprecated as of SMS API 6.0, replaced by `VasaProviderInfo.priority`.
  2667  	//
  2668  	// `StorageArray.priority` of StorageArray
  2669  	// For VASA 1.0 providers, this field is set to -1.
  2670  	Priority int32 `xml:"priority" json:"priority"`
  2671  }
  2672  
  2673  func init() {
  2674  	types.Add("sms:RelatedStorageArray", reflect.TypeOf((*RelatedStorageArray)(nil)).Elem())
  2675  }
  2676  
  2677  // Identifier of the replication target device.
  2678  //
  2679  // For Virtual Volumes, this could be the same as a Virtual Volume
  2680  // Id, for VMDK's this could be an FCD uuid, or some other ID
  2681  // made up by the replicator. This identifier is opaque to vSphere and
  2682  // hence does not have any distinguishing type. This can be used
  2683  // to identify the replica without the accompanying source device id
  2684  // (though there are no such uses in the current API).
  2685  //
  2686  // Since this an opaque type, the recovered device id at
  2687  // `RecoveredTargetGroupMemberInfo.recoveredDeviceId`
  2688  // should be filled in even if the values are the same.
  2689  //
  2690  // This structure may be used only with operations rendered under `/sms`.
  2691  type ReplicaId struct {
  2692  	types.DynamicData
  2693  
  2694  	Id string `xml:"id" json:"id"`
  2695  }
  2696  
  2697  func init() {
  2698  	types.Add("sms:ReplicaId", reflect.TypeOf((*ReplicaId)(nil)).Elem())
  2699  }
  2700  
  2701  // Summarizes the collection of replicas in one time interval.
  2702  //
  2703  // This structure may be used only with operations rendered under `/sms`.
  2704  type ReplicaIntervalQueryResult struct {
  2705  	types.DynamicData
  2706  
  2707  	// Beginning of interval (inclusive).
  2708  	FromDate time.Time `xml:"fromDate" json:"fromDate"`
  2709  	// End of interval (exclusive).
  2710  	ToDate time.Time `xml:"toDate" json:"toDate"`
  2711  	// Number of Point in Time replicas available for recovery.
  2712  	//
  2713  	// TODO: Do we want to have also ask for number of 'special'
  2714  	// PiTs e.g. those that are consistent?
  2715  	Number int32 `xml:"number" json:"number"`
  2716  }
  2717  
  2718  func init() {
  2719  	types.Add("sms:ReplicaIntervalQueryResult", reflect.TypeOf((*ReplicaIntervalQueryResult)(nil)).Elem())
  2720  }
  2721  
  2722  // Defines the parameters for a Point In Time replica (PiT) query.
  2723  //
  2724  // vSphere will not set all the three fields.
  2725  //
  2726  // In other words, the following combinations of fields are allowed:
  2727  //   - All the three fields are omitted.
  2728  //   - `ReplicaQueryIntervalParam.fromDate` and `ReplicaQueryIntervalParam.toDate` are set.
  2729  //   - `ReplicaQueryIntervalParam.fromDate` and `ReplicaQueryIntervalParam.number` are set.
  2730  //   - `ReplicaQueryIntervalParam.toDate` and `ReplicaQueryIntervalParam.number` are set.
  2731  //
  2732  // When all the fields are omitted, VASA provider should return
  2733  // `QueryPointInTimeReplicaSummaryResult`.
  2734  // But, returned result can be either `QueryPointInTimeReplicaSuccessResult`
  2735  // or `QueryPointInTimeReplicaSummaryResult` based on value i.e true or false
  2736  // respectively for field `QueryPointInTimeReplicaParam.preferDetails`.
  2737  //
  2738  // This structure may be used only with operations rendered under `/sms`.
  2739  type ReplicaQueryIntervalParam struct {
  2740  	types.DynamicData
  2741  
  2742  	// Return all PiTs including and later than <code>fromDate</code>.
  2743  	FromDate *time.Time `xml:"fromDate" json:"fromDate,omitempty"`
  2744  	// Return all PiTs earlier than <code>toDate</code>.
  2745  	ToDate *time.Time `xml:"toDate" json:"toDate,omitempty"`
  2746  	// Return information for only <code>number</code> entries.
  2747  	Number int32 `xml:"number,omitempty" json:"number,omitempty"`
  2748  }
  2749  
  2750  func init() {
  2751  	types.Add("sms:ReplicaQueryIntervalParam", reflect.TypeOf((*ReplicaQueryIntervalParam)(nil)).Elem())
  2752  }
  2753  
  2754  // Describes one Replication Group's data.
  2755  //
  2756  // This structure may be used only with operations rendered under `/sms`.
  2757  type ReplicationGroupData struct {
  2758  	types.DynamicData
  2759  
  2760  	// Replication group to failover.
  2761  	GroupId types.ReplicationGroupId `xml:"groupId" json:"groupId"`
  2762  	// The PIT that should be used for (test)Failover.
  2763  	//
  2764  	// Use the latest if not specified.
  2765  	PitId *PointInTimeReplicaId `xml:"pitId,omitempty" json:"pitId,omitempty"`
  2766  }
  2767  
  2768  func init() {
  2769  	types.Add("sms:ReplicationGroupData", reflect.TypeOf((*ReplicationGroupData)(nil)).Elem())
  2770  }
  2771  
  2772  // This spec contains information needed for `SmsStorageManager.QueryReplicationGroupInfo`
  2773  // API to filter the result.
  2774  //
  2775  // This structure may be used only with operations rendered under `/sms`.
  2776  type ReplicationGroupFilter struct {
  2777  	types.DynamicData
  2778  
  2779  	// Query for the given replication groups from their associated providers.
  2780  	//
  2781  	// The groupId cannot be null or empty.
  2782  	GroupId []types.ReplicationGroupId `xml:"groupId,omitempty" json:"groupId,omitempty"`
  2783  }
  2784  
  2785  func init() {
  2786  	types.Add("sms:ReplicationGroupFilter", reflect.TypeOf((*ReplicationGroupFilter)(nil)).Elem())
  2787  }
  2788  
  2789  // Information about each replication target.
  2790  //
  2791  // This structure may be used only with operations rendered under `/sms`.
  2792  type ReplicationTargetInfo struct {
  2793  	types.DynamicData
  2794  
  2795  	// Id of the target replication group (including the fault domain ID).
  2796  	TargetGroupId types.ReplicationGroupId `xml:"targetGroupId" json:"targetGroupId"`
  2797  	// Description of the replication agreement.
  2798  	//
  2799  	// This could be used to describe the characteristics of the replication
  2800  	// relationship between the source and the target (e.g. RPO, Replication
  2801  	// Mode, and other such properties). It is expected that VASA provider
  2802  	// will localize the string before sending to vSphere.
  2803  	ReplicationAgreementDescription string `xml:"replicationAgreementDescription,omitempty" json:"replicationAgreementDescription,omitempty"`
  2804  }
  2805  
  2806  func init() {
  2807  	types.Add("sms:ReplicationTargetInfo", reflect.TypeOf((*ReplicationTargetInfo)(nil)).Elem())
  2808  }
  2809  
  2810  // The parameters of `VasaProvider.ReverseReplicateGroup_Task`.
  2811  //
  2812  // This structure may be used only with operations rendered under `/sms`.
  2813  type ReverseReplicateGroupRequestType struct {
  2814  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2815  	// Array of replication groups (currently in
  2816  	// `FAILEDOVER` state) that need to be reversed.
  2817  	GroupId []types.ReplicationGroupId `xml:"groupId,omitempty" json:"groupId,omitempty"`
  2818  }
  2819  
  2820  func init() {
  2821  	types.Add("sms:ReverseReplicateGroupRequestType", reflect.TypeOf((*ReverseReplicateGroupRequestType)(nil)).Elem())
  2822  }
  2823  
  2824  type ReverseReplicateGroup_Task ReverseReplicateGroupRequestType
  2825  
  2826  func init() {
  2827  	types.Add("sms:ReverseReplicateGroup_Task", reflect.TypeOf((*ReverseReplicateGroup_Task)(nil)).Elem())
  2828  }
  2829  
  2830  type ReverseReplicateGroup_TaskResponse struct {
  2831  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  2832  }
  2833  
  2834  // Represents the result of a successful reverse replication action.
  2835  //
  2836  // The newly
  2837  // established replication relation might have a different source group ID and
  2838  // different set of target group IDs. This means that the replication topology
  2839  // will need to be discovered again by the DR orchestration programs (SRM/CAM).
  2840  // However, we assume that after the reverse replication, the new source fault
  2841  // domain id remains the same as the old (i.e. before failover) fault domain id.
  2842  //
  2843  // This structure may be used only with operations rendered under `/sms`.
  2844  type ReverseReplicationSuccessResult struct {
  2845  	GroupOperationResult
  2846  
  2847  	// The replication group ID of the newly created source group.
  2848  	//
  2849  	// FaultDomainId
  2850  	// must remain the same.
  2851  	NewGroupId types.DeviceGroupId `xml:"newGroupId" json:"newGroupId"`
  2852  }
  2853  
  2854  func init() {
  2855  	types.Add("sms:ReverseReplicationSuccessResult", reflect.TypeOf((*ReverseReplicationSuccessResult)(nil)).Elem())
  2856  }
  2857  
  2858  // This exception is thrown if the storage management service
  2859  // has not yet been initialized successfully and therefore is
  2860  // not ready to process requests.
  2861  //
  2862  // This structure may be used only with operations rendered under `/sms`.
  2863  type ServiceNotInitialized struct {
  2864  	types.RuntimeFault
  2865  }
  2866  
  2867  func init() {
  2868  	types.Add("sms:ServiceNotInitialized", reflect.TypeOf((*ServiceNotInitialized)(nil)).Elem())
  2869  }
  2870  
  2871  type ServiceNotInitializedFault ServiceNotInitialized
  2872  
  2873  func init() {
  2874  	types.Add("sms:ServiceNotInitializedFault", reflect.TypeOf((*ServiceNotInitializedFault)(nil)).Elem())
  2875  }
  2876  
  2877  // This data object type describes system information.
  2878  //
  2879  // This structure may be used only with operations rendered under `/sms`.
  2880  type SmsAboutInfo struct {
  2881  	types.DynamicData
  2882  
  2883  	Name           string `xml:"name" json:"name"`
  2884  	FullName       string `xml:"fullName" json:"fullName"`
  2885  	Vendor         string `xml:"vendor" json:"vendor"`
  2886  	ApiVersion     string `xml:"apiVersion" json:"apiVersion"`
  2887  	InstanceUuid   string `xml:"instanceUuid" json:"instanceUuid"`
  2888  	VasaApiVersion string `xml:"vasaApiVersion,omitempty" json:"vasaApiVersion,omitempty"`
  2889  }
  2890  
  2891  func init() {
  2892  	types.Add("sms:SmsAboutInfo", reflect.TypeOf((*SmsAboutInfo)(nil)).Elem())
  2893  }
  2894  
  2895  // Thrown when login fails due to token not provided or token could not be
  2896  // validated.
  2897  //
  2898  // This structure may be used only with operations rendered under `/sms`.
  2899  type SmsInvalidLogin struct {
  2900  	types.MethodFault
  2901  }
  2902  
  2903  func init() {
  2904  	types.Add("sms:SmsInvalidLogin", reflect.TypeOf((*SmsInvalidLogin)(nil)).Elem())
  2905  }
  2906  
  2907  type SmsInvalidLoginFault SmsInvalidLogin
  2908  
  2909  func init() {
  2910  	types.Add("sms:SmsInvalidLoginFault", reflect.TypeOf((*SmsInvalidLoginFault)(nil)).Elem())
  2911  }
  2912  
  2913  // Information about Storage Monitoring Service (SMS)
  2914  // providers.
  2915  //
  2916  // This structure may be used only with operations rendered under `/sms`.
  2917  type SmsProviderInfo struct {
  2918  	types.DynamicData
  2919  
  2920  	// Unique identifier
  2921  	Uid string `xml:"uid" json:"uid"`
  2922  	// Name
  2923  	Name string `xml:"name" json:"name"`
  2924  	// Description of the provider
  2925  	Description string `xml:"description,omitempty" json:"description,omitempty"`
  2926  	// Version of the provider
  2927  	Version string `xml:"version,omitempty" json:"version,omitempty"`
  2928  }
  2929  
  2930  func init() {
  2931  	types.Add("sms:SmsProviderInfo", reflect.TypeOf((*SmsProviderInfo)(nil)).Elem())
  2932  }
  2933  
  2934  // Specification for Storage Monitoring Service (SMS)
  2935  // providers.
  2936  //
  2937  // This structure may be used only with operations rendered under `/sms`.
  2938  type SmsProviderSpec struct {
  2939  	types.DynamicData
  2940  
  2941  	// Name
  2942  	// The maximum length of the name is 275 characters.
  2943  	Name string `xml:"name" json:"name"`
  2944  	// Description of the provider
  2945  	Description string `xml:"description,omitempty" json:"description,omitempty"`
  2946  }
  2947  
  2948  func init() {
  2949  	types.Add("sms:SmsProviderSpec", reflect.TypeOf((*SmsProviderSpec)(nil)).Elem())
  2950  }
  2951  
  2952  // The parameters of `SmsStorageManager.SmsRefreshCACertificatesAndCRLs_Task`.
  2953  //
  2954  // This structure may be used only with operations rendered under `/sms`.
  2955  type SmsRefreshCACertificatesAndCRLsRequestType struct {
  2956  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  2957  	// `SmsProviderInfo.uid` for providers
  2958  	ProviderId []string `xml:"providerId,omitempty" json:"providerId,omitempty"`
  2959  }
  2960  
  2961  func init() {
  2962  	types.Add("sms:SmsRefreshCACertificatesAndCRLsRequestType", reflect.TypeOf((*SmsRefreshCACertificatesAndCRLsRequestType)(nil)).Elem())
  2963  }
  2964  
  2965  type SmsRefreshCACertificatesAndCRLs_Task SmsRefreshCACertificatesAndCRLsRequestType
  2966  
  2967  func init() {
  2968  	types.Add("sms:SmsRefreshCACertificatesAndCRLs_Task", reflect.TypeOf((*SmsRefreshCACertificatesAndCRLs_Task)(nil)).Elem())
  2969  }
  2970  
  2971  type SmsRefreshCACertificatesAndCRLs_TaskResponse struct {
  2972  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  2973  }
  2974  
  2975  // Base class for all Replication faults.
  2976  //
  2977  // This structure may be used only with operations rendered under `/sms`.
  2978  type SmsReplicationFault struct {
  2979  	types.MethodFault
  2980  }
  2981  
  2982  func init() {
  2983  	types.Add("sms:SmsReplicationFault", reflect.TypeOf((*SmsReplicationFault)(nil)).Elem())
  2984  }
  2985  
  2986  type SmsReplicationFaultFault BaseSmsReplicationFault
  2987  
  2988  func init() {
  2989  	types.Add("sms:SmsReplicationFaultFault", reflect.TypeOf((*SmsReplicationFaultFault)(nil)).Elem())
  2990  }
  2991  
  2992  // A ResourceInUse fault indicating that some error has occurred because
  2993  // some resources are in use.
  2994  //
  2995  // Information about the devices that are in
  2996  // use may be supplied.
  2997  //
  2998  // This structure may be used only with operations rendered under `/sms`.
  2999  type SmsResourceInUse struct {
  3000  	types.ResourceInUse
  3001  
  3002  	// The list of device Ids that are in use.
  3003  	DeviceIds []BaseDeviceId `xml:"deviceIds,omitempty,typeattr" json:"deviceIds,omitempty"`
  3004  }
  3005  
  3006  func init() {
  3007  	types.Add("sms:SmsResourceInUse", reflect.TypeOf((*SmsResourceInUse)(nil)).Elem())
  3008  }
  3009  
  3010  type SmsResourceInUseFault SmsResourceInUse
  3011  
  3012  func init() {
  3013  	types.Add("sms:SmsResourceInUseFault", reflect.TypeOf((*SmsResourceInUseFault)(nil)).Elem())
  3014  }
  3015  
  3016  // This data object type contains all information about a task.
  3017  //
  3018  // This structure may be used only with operations rendered under `/sms`.
  3019  type SmsTaskInfo struct {
  3020  	types.DynamicData
  3021  
  3022  	// The unique key for the task.
  3023  	Key string `xml:"key" json:"key"`
  3024  	// The managed object that represents this task.
  3025  	//
  3026  	// Refers instance of `SmsTask`.
  3027  	Task types.ManagedObjectReference `xml:"task" json:"task"`
  3028  	// Managed Object to which the operation applies.
  3029  	Object *types.ManagedObjectReference `xml:"object,omitempty" json:"object,omitempty"`
  3030  	// If the task state is "error", then this property contains the fault code.
  3031  	Error *types.LocalizedMethodFault `xml:"error,omitempty" json:"error,omitempty"`
  3032  	// If the task state is "success", then this property may be used
  3033  	// to hold a return value.
  3034  	Result types.AnyType `xml:"result,omitempty,typeattr" json:"result,omitempty"`
  3035  	// Time stamp when the task started running.
  3036  	StartTime *time.Time `xml:"startTime" json:"startTime,omitempty"`
  3037  	// Time stamp when the task was completed (whether success or failure).
  3038  	CompletionTime *time.Time `xml:"completionTime" json:"completionTime,omitempty"`
  3039  	// Runtime status of the task.
  3040  	//
  3041  	// Possible values are `SmsTaskState_enum`
  3042  	State string `xml:"state" json:"state"`
  3043  	// If the task state is "running", then this property contains a
  3044  	// progress measurement, expressed as percentage completed, from 0 to 100.
  3045  	//
  3046  	// If this property is not set, then the command does not report progress.
  3047  	Progress int32 `xml:"progress,omitempty" json:"progress,omitempty"`
  3048  }
  3049  
  3050  func init() {
  3051  	types.Add("sms:SmsTaskInfo", reflect.TypeOf((*SmsTaskInfo)(nil)).Elem())
  3052  }
  3053  
  3054  // Replication group details on the source.
  3055  //
  3056  // We do not assume the same
  3057  // Replication Group id on all the sites. This is returned as answer to
  3058  // queryReplicationGroup.
  3059  //
  3060  // This structure may be used only with operations rendered under `/sms`.
  3061  type SourceGroupInfo struct {
  3062  	GroupInfo
  3063  
  3064  	// Name of the replication group, may be edited after creating the
  3065  	// Replication Group, not unique.
  3066  	//
  3067  	// May be a localized string. Some vendors may
  3068  	// choose to use name as the group id, to support this, vSphere will not
  3069  	// allow the name to be modified - even if vSphere creates/manages the
  3070  	// Replication Group.
  3071  	Name string `xml:"name,omitempty" json:"name,omitempty"`
  3072  	// Description the Replication Group, may be edited after creating the
  3073  	// Replication Group.
  3074  	//
  3075  	// May be a localized string.
  3076  	Description string `xml:"description,omitempty" json:"description,omitempty"`
  3077  	// State of the replication group on the source.
  3078  	State string `xml:"state" json:"state"`
  3079  	// Information about the target Replication Groups.
  3080  	Replica []ReplicationTargetInfo `xml:"replica,omitempty" json:"replica,omitempty"`
  3081  	// Information about the member virtual volumes and their replicas.
  3082  	MemberInfo []SourceGroupMemberInfo `xml:"memberInfo,omitempty" json:"memberInfo,omitempty"`
  3083  }
  3084  
  3085  func init() {
  3086  	types.Add("sms:SourceGroupInfo", reflect.TypeOf((*SourceGroupInfo)(nil)).Elem())
  3087  }
  3088  
  3089  // Represents a member virtual volume of a replication group on the source end
  3090  // of the replication arrow.
  3091  //
  3092  // This structure may be used only with operations rendered under `/sms`.
  3093  type SourceGroupMemberInfo struct {
  3094  	types.DynamicData
  3095  
  3096  	// Identifier of the source device.
  3097  	//
  3098  	// May be a Virtual Volume, a Virtual Disk or a Virtual Machine
  3099  	DeviceId BaseDeviceId `xml:"deviceId,typeattr" json:"deviceId"`
  3100  	// Target devices, key'ed by the fault domain id.
  3101  	//
  3102  	// TODO: It is not clear if we
  3103  	// really need this information, since the target side query can return the
  3104  	// target -&gt; source relation information.
  3105  	TargetId []TargetDeviceId `xml:"targetId,omitempty" json:"targetId,omitempty"`
  3106  }
  3107  
  3108  func init() {
  3109  	types.Add("sms:SourceGroupMemberInfo", reflect.TypeOf((*SourceGroupMemberInfo)(nil)).Elem())
  3110  }
  3111  
  3112  // This data object represents the storage alarm.
  3113  //
  3114  // This structure may be used only with operations rendered under `/sms`.
  3115  type StorageAlarm struct {
  3116  	types.DynamicData
  3117  
  3118  	// Monotonically increasing sequence number which
  3119  	// VP will maintain.
  3120  	AlarmId int64 `xml:"alarmId" json:"alarmId"`
  3121  	// The type of Alarm.
  3122  	//
  3123  	// Must be one of the string values from
  3124  	// `AlarmType_enum`
  3125  	// Note that for VMODL VP implemenation this field must be populated with one
  3126  	// of the values from `vasa.data.notification.AlarmType`
  3127  	AlarmType string `xml:"alarmType" json:"alarmType"`
  3128  	// Container identifier
  3129  	ContainerId string `xml:"containerId,omitempty" json:"containerId,omitempty"`
  3130  	// The unique identifier of the object impacted by the Alarm.
  3131  	//
  3132  	// From VASA version 3 onwards, a non-null `StorageAlarm.alarmObject`
  3133  	// will override this member.
  3134  	// This field is made optional from VASA3. Either this or
  3135  	// `StorageAlarm.alarmObject` must be set.
  3136  	ObjectId string `xml:"objectId,omitempty" json:"objectId,omitempty"`
  3137  	// The type of object impacted by the Alarm.
  3138  	//
  3139  	// Must be one of the string values
  3140  	// from `SmsEntityType_enum`
  3141  	// Note that for VMODL VP implemenation this field must be populated with one
  3142  	// of the values from `vasa.data.notification.EntityType`
  3143  	ObjectType string `xml:"objectType" json:"objectType"`
  3144  	// Current status of the object.
  3145  	//
  3146  	// Must be one of the string values from
  3147  	// `SmsAlarmStatus_enum`
  3148  	Status string `xml:"status" json:"status"`
  3149  	// Time-stamp when the alarm occurred in VP context
  3150  	AlarmTimeStamp time.Time `xml:"alarmTimeStamp" json:"alarmTimeStamp"`
  3151  	// Pre-defined message for system-defined event
  3152  	MessageId string `xml:"messageId" json:"messageId"`
  3153  	// List of parameters (name/value) to be passed as input for message
  3154  	ParameterList []NameValuePair `xml:"parameterList,omitempty" json:"parameterList,omitempty"`
  3155  	// The ID of the object on which the alarm is raised; this is an object,
  3156  	// since ID's may not always be strings.
  3157  	//
  3158  	// vSphere will first use
  3159  	// `StorageAlarm.alarmObject` if set, and if not uses `StorageAlarm.objectId`.
  3160  	AlarmObject types.AnyType `xml:"alarmObject,omitempty,typeattr" json:"alarmObject,omitempty"`
  3161  }
  3162  
  3163  func init() {
  3164  	types.Add("sms:StorageAlarm", reflect.TypeOf((*StorageAlarm)(nil)).Elem())
  3165  }
  3166  
  3167  // This data object represents the storage array.
  3168  //
  3169  // This structure may be used only with operations rendered under `/sms`.
  3170  type StorageArray struct {
  3171  	types.DynamicData
  3172  
  3173  	// Name
  3174  	Name string `xml:"name" json:"name"`
  3175  	// Unique identifier
  3176  	Uuid string `xml:"uuid" json:"uuid"`
  3177  	// Storage array Vendor Id
  3178  	VendorId string `xml:"vendorId" json:"vendorId"`
  3179  	// Model Id
  3180  	ModelId string `xml:"modelId" json:"modelId"`
  3181  	// Storage array firmware
  3182  	Firmware string `xml:"firmware,omitempty" json:"firmware,omitempty"`
  3183  	// List of alternate storage array names
  3184  	AlternateName []string `xml:"alternateName,omitempty" json:"alternateName,omitempty"`
  3185  	// Supported block-device interfaces
  3186  	SupportedBlockInterface []string `xml:"supportedBlockInterface,omitempty" json:"supportedBlockInterface,omitempty"`
  3187  	// Supported file-system interfaces
  3188  	SupportedFileSystemInterface []string `xml:"supportedFileSystemInterface,omitempty" json:"supportedFileSystemInterface,omitempty"`
  3189  	// List of supported profiles
  3190  	SupportedProfile []string `xml:"supportedProfile,omitempty" json:"supportedProfile,omitempty"`
  3191  	// Deprecated as of SMS API 6.0, replaced by `VasaProviderInfo.priority`.
  3192  	//
  3193  	// Priority level of the provider for the given array within the session context.
  3194  	//
  3195  	// SMS will use this value to pick a provider among the ones that are registered
  3196  	// with SMS and manage this array. Once the provider is chosen, SMS will communicate
  3197  	// with it to get the data related to this array.
  3198  	// Valid range: 0 to 255.
  3199  	Priority int32 `xml:"priority,omitempty" json:"priority,omitempty"`
  3200  	// Required for NVMe-oF arrays and optional otherwise.
  3201  	//
  3202  	// Transport information to address the array's discovery service.
  3203  	DiscoverySvc []types.VASAStorageArrayDiscoverySvcInfo `xml:"discoverySvc,omitempty" json:"discoverySvc,omitempty"`
  3204  }
  3205  
  3206  func init() {
  3207  	types.Add("sms:StorageArray", reflect.TypeOf((*StorageArray)(nil)).Elem())
  3208  }
  3209  
  3210  // This data object represents the storage capability.
  3211  //
  3212  // This structure may be used only with operations rendered under `/sms`.
  3213  type StorageCapability struct {
  3214  	types.DynamicData
  3215  
  3216  	Uuid        string `xml:"uuid" json:"uuid"`
  3217  	Name        string `xml:"name" json:"name"`
  3218  	Description string `xml:"description" json:"description"`
  3219  }
  3220  
  3221  func init() {
  3222  	types.Add("sms:StorageCapability", reflect.TypeOf((*StorageCapability)(nil)).Elem())
  3223  }
  3224  
  3225  // This data object represents the storage container.
  3226  //
  3227  // This structure may be used only with operations rendered under `/sms`.
  3228  type StorageContainer struct {
  3229  	types.DynamicData
  3230  
  3231  	// Unique identifier
  3232  	Uuid string `xml:"uuid" json:"uuid"`
  3233  	// Name of the container
  3234  	Name string `xml:"name" json:"name"`
  3235  	// Maximum allowed capacity of the Virtual Volume in MBs
  3236  	MaxVvolSizeInMB int64 `xml:"maxVvolSizeInMB" json:"maxVvolSizeInMB"`
  3237  	// `SmsProviderInfo.uid` for providers that reports the storage container.
  3238  	ProviderId []string `xml:"providerId" json:"providerId"`
  3239  	ArrayId    []string `xml:"arrayId" json:"arrayId"`
  3240  	// Represents type of VVOL container, the supported values are listed in
  3241  	// `StorageContainerVvolContainerTypeEnum_enum`.
  3242  	//
  3243  	// If the storage array is not capable of supporting mixed PEs for a storage container,
  3244  	// the VVOL VASA provider sets this property to the supported endpoint type
  3245  	VvolContainerType string `xml:"vvolContainerType,omitempty" json:"vvolContainerType,omitempty"`
  3246  	// Indicates if this storage container is stretched
  3247  	Stretched *bool `xml:"stretched" json:"stretched,omitempty"`
  3248  }
  3249  
  3250  func init() {
  3251  	types.Add("sms:StorageContainer", reflect.TypeOf((*StorageContainer)(nil)).Elem())
  3252  }
  3253  
  3254  // This data object represents information about storage containers and related providers.
  3255  //
  3256  // This structure may be used only with operations rendered under `/sms`.
  3257  type StorageContainerResult struct {
  3258  	types.DynamicData
  3259  
  3260  	// `StorageContainer` objects
  3261  	StorageContainer []StorageContainer `xml:"storageContainer,omitempty" json:"storageContainer,omitempty"`
  3262  	// `SmsProviderInfo` corresponding to providers that
  3263  	// report these storage containers
  3264  	ProviderInfo []BaseSmsProviderInfo `xml:"providerInfo,omitempty,typeattr" json:"providerInfo,omitempty"`
  3265  }
  3266  
  3267  func init() {
  3268  	types.Add("sms:StorageContainerResult", reflect.TypeOf((*StorageContainerResult)(nil)).Elem())
  3269  }
  3270  
  3271  // This data object represents the specification to query
  3272  // storage containers retrieved from VASA providers.
  3273  //
  3274  // This structure may be used only with operations rendered under `/sms`.
  3275  type StorageContainerSpec struct {
  3276  	types.DynamicData
  3277  
  3278  	ContainerId []string `xml:"containerId,omitempty" json:"containerId,omitempty"`
  3279  }
  3280  
  3281  func init() {
  3282  	types.Add("sms:StorageContainerSpec", reflect.TypeOf((*StorageContainerSpec)(nil)).Elem())
  3283  }
  3284  
  3285  // This data object represents the storage file-system.
  3286  //
  3287  // This structure may be used only with operations rendered under `/sms`.
  3288  type StorageFileSystem struct {
  3289  	types.DynamicData
  3290  
  3291  	// Unique identifier
  3292  	Uuid string `xml:"uuid" json:"uuid"`
  3293  	// Information about the file system
  3294  	Info                    []StorageFileSystemInfo `xml:"info" json:"info"`
  3295  	NativeSnapshotSupported bool                    `xml:"nativeSnapshotSupported" json:"nativeSnapshotSupported"`
  3296  	ThinProvisioningStatus  string                  `xml:"thinProvisioningStatus" json:"thinProvisioningStatus"`
  3297  	Type                    string                  `xml:"type" json:"type"`
  3298  	Version                 string                  `xml:"version" json:"version"`
  3299  	// Backing config information
  3300  	BackingConfig *BackingConfig `xml:"backingConfig,omitempty" json:"backingConfig,omitempty"`
  3301  }
  3302  
  3303  func init() {
  3304  	types.Add("sms:StorageFileSystem", reflect.TypeOf((*StorageFileSystem)(nil)).Elem())
  3305  }
  3306  
  3307  // This data object represents information about the storage
  3308  // file-system.
  3309  //
  3310  // This structure may be used only with operations rendered under `/sms`.
  3311  type StorageFileSystemInfo struct {
  3312  	types.DynamicData
  3313  
  3314  	// Server Name
  3315  	FileServerName string `xml:"fileServerName" json:"fileServerName"`
  3316  	// File Path
  3317  	FileSystemPath string `xml:"fileSystemPath" json:"fileSystemPath"`
  3318  	// IP address
  3319  	IpAddress string `xml:"ipAddress,omitempty" json:"ipAddress,omitempty"`
  3320  }
  3321  
  3322  func init() {
  3323  	types.Add("sms:StorageFileSystemInfo", reflect.TypeOf((*StorageFileSystemInfo)(nil)).Elem())
  3324  }
  3325  
  3326  // This data object represents the storage lun.
  3327  //
  3328  // This structure may be used only with operations rendered under `/sms`.
  3329  type StorageLun struct {
  3330  	types.DynamicData
  3331  
  3332  	// Unique Indentfier
  3333  	Uuid string `xml:"uuid" json:"uuid"`
  3334  	// Identifer reported by vSphere(ESX) for this LUN
  3335  	VSphereLunIdentifier string `xml:"vSphereLunIdentifier" json:"vSphereLunIdentifier"`
  3336  	// Display Name which appears in storage array management
  3337  	// console
  3338  	VendorDisplayName string `xml:"vendorDisplayName" json:"vendorDisplayName"`
  3339  	// Capacity In MB
  3340  	CapacityInMB int64 `xml:"capacityInMB" json:"capacityInMB"`
  3341  	// Used space in MB for a thin provisioned LUN
  3342  	UsedSpaceInMB int64 `xml:"usedSpaceInMB" json:"usedSpaceInMB"`
  3343  	// Indicates whether the LUN is thin provisioned
  3344  	LunThinProvisioned bool `xml:"lunThinProvisioned" json:"lunThinProvisioned"`
  3345  	// Alternate identifiers associated with the LUN
  3346  	AlternateIdentifier []string `xml:"alternateIdentifier,omitempty" json:"alternateIdentifier,omitempty"`
  3347  	// Indicates whether Storage DRS is permitted to manage
  3348  	// performance between this LUN and other LUNs from the same
  3349  	// array.
  3350  	DrsManagementPermitted bool   `xml:"drsManagementPermitted" json:"drsManagementPermitted"`
  3351  	ThinProvisioningStatus string `xml:"thinProvisioningStatus" json:"thinProvisioningStatus"`
  3352  	// Backing config information
  3353  	BackingConfig *BackingConfig `xml:"backingConfig,omitempty" json:"backingConfig,omitempty"`
  3354  }
  3355  
  3356  func init() {
  3357  	types.Add("sms:StorageLun", reflect.TypeOf((*StorageLun)(nil)).Elem())
  3358  }
  3359  
  3360  // This data object represents the storage port.
  3361  //
  3362  // This structure may be used only with operations rendered under `/sms`.
  3363  type StoragePort struct {
  3364  	types.DynamicData
  3365  
  3366  	// Unique identifier
  3367  	Uuid string `xml:"uuid" json:"uuid"`
  3368  	// Storage Port Type
  3369  	Type string `xml:"type" json:"type"`
  3370  	// Other identifiers which can help identify storage port
  3371  	AlternateName []string `xml:"alternateName,omitempty" json:"alternateName,omitempty"`
  3372  }
  3373  
  3374  func init() {
  3375  	types.Add("sms:StoragePort", reflect.TypeOf((*StoragePort)(nil)).Elem())
  3376  }
  3377  
  3378  // This data object represents the storage processor.
  3379  //
  3380  // This structure may be used only with operations rendered under `/sms`.
  3381  type StorageProcessor struct {
  3382  	types.DynamicData
  3383  
  3384  	// Unique Identifier
  3385  	Uuid string `xml:"uuid" json:"uuid"`
  3386  	// List of alternate identifiers
  3387  	AlternateIdentifer []string `xml:"alternateIdentifer,omitempty" json:"alternateIdentifer,omitempty"`
  3388  }
  3389  
  3390  func init() {
  3391  	types.Add("sms:StorageProcessor", reflect.TypeOf((*StorageProcessor)(nil)).Elem())
  3392  }
  3393  
  3394  // Mapping between the supported vendorID and corresponding
  3395  // modelID
  3396  //
  3397  // This structure may be used only with operations rendered under `/sms`.
  3398  type SupportedVendorModelMapping struct {
  3399  	types.DynamicData
  3400  
  3401  	// SCSI Vendor ID
  3402  	VendorId string `xml:"vendorId,omitempty" json:"vendorId,omitempty"`
  3403  	// SCSI Model ID
  3404  	ModelId string `xml:"modelId,omitempty" json:"modelId,omitempty"`
  3405  }
  3406  
  3407  func init() {
  3408  	types.Add("sms:SupportedVendorModelMapping", reflect.TypeOf((*SupportedVendorModelMapping)(nil)).Elem())
  3409  }
  3410  
  3411  // This exception is thrown if a sync operation is invoked
  3412  // while another sync invocation is in progress.
  3413  //
  3414  // This structure may be used only with operations rendered under `/sms`.
  3415  type SyncInProgress struct {
  3416  	ProviderSyncFailed
  3417  }
  3418  
  3419  func init() {
  3420  	types.Add("sms:SyncInProgress", reflect.TypeOf((*SyncInProgress)(nil)).Elem())
  3421  }
  3422  
  3423  type SyncInProgressFault SyncInProgress
  3424  
  3425  func init() {
  3426  	types.Add("sms:SyncInProgressFault", reflect.TypeOf((*SyncInProgressFault)(nil)).Elem())
  3427  }
  3428  
  3429  // Throw if an synchronization is ongoing.
  3430  //
  3431  // This structure may be used only with operations rendered under `/sms`.
  3432  type SyncOngoing struct {
  3433  	SmsReplicationFault
  3434  
  3435  	// Task identifier of the ongoing sync (@see sms.TaskInfo#key).
  3436  	//
  3437  	// Refers instance of `SmsTask`.
  3438  	Task types.ManagedObjectReference `xml:"task" json:"task"`
  3439  }
  3440  
  3441  func init() {
  3442  	types.Add("sms:SyncOngoing", reflect.TypeOf((*SyncOngoing)(nil)).Elem())
  3443  }
  3444  
  3445  type SyncOngoingFault SyncOngoing
  3446  
  3447  func init() {
  3448  	types.Add("sms:SyncOngoingFault", reflect.TypeOf((*SyncOngoingFault)(nil)).Elem())
  3449  }
  3450  
  3451  // The parameters of `VasaProvider.SyncReplicationGroup_Task`.
  3452  //
  3453  // This structure may be used only with operations rendered under `/sms`.
  3454  type SyncReplicationGroupRequestType struct {
  3455  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3456  	// List of replication group IDs.
  3457  	GroupId []types.ReplicationGroupId `xml:"groupId,omitempty" json:"groupId,omitempty"`
  3458  	// Localized name for the point-in-time snapshot created.
  3459  	PitName string `xml:"pitName" json:"pitName"`
  3460  }
  3461  
  3462  func init() {
  3463  	types.Add("sms:SyncReplicationGroupRequestType", reflect.TypeOf((*SyncReplicationGroupRequestType)(nil)).Elem())
  3464  }
  3465  
  3466  // Result object for a replication group that was successfully synchronized.
  3467  //
  3468  // This structure may be used only with operations rendered under `/sms`.
  3469  type SyncReplicationGroupSuccessResult struct {
  3470  	GroupOperationResult
  3471  
  3472  	// Creation time of the PIT
  3473  	TimeStamp time.Time `xml:"timeStamp" json:"timeStamp"`
  3474  	// PIT id.
  3475  	//
  3476  	// If the VASA provider does not support PIT, this can be
  3477  	// left unset.
  3478  	//
  3479  	// A PIT created as a result of the <code>syncReplicationGroup</code>
  3480  	// may or may not have the same retention policy as other PITs. A VASA provider
  3481  	// can choose to delete such a PIT after a successful <code>testFailoverStop</code>
  3482  	PitId   *PointInTimeReplicaId `xml:"pitId,omitempty" json:"pitId,omitempty"`
  3483  	PitName string                `xml:"pitName,omitempty" json:"pitName,omitempty"`
  3484  }
  3485  
  3486  func init() {
  3487  	types.Add("sms:SyncReplicationGroupSuccessResult", reflect.TypeOf((*SyncReplicationGroupSuccessResult)(nil)).Elem())
  3488  }
  3489  
  3490  type SyncReplicationGroup_Task SyncReplicationGroupRequestType
  3491  
  3492  func init() {
  3493  	types.Add("sms:SyncReplicationGroup_Task", reflect.TypeOf((*SyncReplicationGroup_Task)(nil)).Elem())
  3494  }
  3495  
  3496  type SyncReplicationGroup_TaskResponse struct {
  3497  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  3498  }
  3499  
  3500  // Represents a replication target device, since the replication group id can
  3501  // be the same in all the domains, this is keyed by the fault domain id.
  3502  //
  3503  // This structure may be used only with operations rendered under `/sms`.
  3504  type TargetDeviceId struct {
  3505  	types.DynamicData
  3506  
  3507  	// ID of the fault domain.
  3508  	DomainId types.FaultDomainId `xml:"domainId" json:"domainId"`
  3509  	// ID of the target device.
  3510  	DeviceId ReplicaId `xml:"deviceId" json:"deviceId"`
  3511  }
  3512  
  3513  func init() {
  3514  	types.Add("sms:TargetDeviceId", reflect.TypeOf((*TargetDeviceId)(nil)).Elem())
  3515  }
  3516  
  3517  // Information about the replication target group.
  3518  //
  3519  // This is returned as answer
  3520  // to queryReplicationGroup before failover or testFailoverStart.
  3521  //
  3522  // This does not have to include the
  3523  // snapshot objects in the ReplicationGroup, however, see also
  3524  // `RecoveredTargetGroupMemberInfo`.
  3525  //
  3526  // This structure may be used only with operations rendered under `/sms`.
  3527  type TargetGroupInfo struct {
  3528  	GroupInfo
  3529  
  3530  	// Replication source information.
  3531  	SourceInfo TargetToSourceInfo `xml:"sourceInfo" json:"sourceInfo"`
  3532  	// Replication state of the group on the replication target.
  3533  	State string `xml:"state" json:"state"`
  3534  	// Member device information.
  3535  	//
  3536  	// When the ReplicationGroup is either in `FAILEDOVER`
  3537  	// or `INTEST`, this
  3538  	// should be `RecoveredTargetGroupMemberInfo`.
  3539  	// Otherwise, this should be `TargetGroupMemberInfo`
  3540  	Devices []BaseTargetGroupMemberInfo `xml:"devices,omitempty,typeattr" json:"devices,omitempty"`
  3541  	// Whether the VASA provider is capable of executing
  3542  	// `VasaProvider.PromoteReplicationGroup_Task` for this
  3543  	// ReplicationGroup.
  3544  	//
  3545  	// False if not set. Note that this setting is per
  3546  	// ReplicationGroup per Target domain.
  3547  	IsPromoteCapable *bool `xml:"isPromoteCapable" json:"isPromoteCapable,omitempty"`
  3548  	// Name of Replication Group.
  3549  	Name string `xml:"name,omitempty" json:"name,omitempty"`
  3550  }
  3551  
  3552  func init() {
  3553  	types.Add("sms:TargetGroupInfo", reflect.TypeOf((*TargetGroupInfo)(nil)).Elem())
  3554  }
  3555  
  3556  // Information about member virtual volumes in a ReplicationGroup
  3557  // on the target when the state is `TARGET`.
  3558  //
  3559  // This need not include information about all the snapshots in
  3560  // the ReplicationGroup.
  3561  //
  3562  // This structure may be used only with operations rendered under `/sms`.
  3563  type TargetGroupMemberInfo struct {
  3564  	types.DynamicData
  3565  
  3566  	// Identifier of the replica device.
  3567  	ReplicaId ReplicaId `xml:"replicaId" json:"replicaId"`
  3568  	// Source device, since the device id can be the same in all the domains,
  3569  	// this needs to supplemented with the domain id to identify the device.
  3570  	SourceId BaseDeviceId `xml:"sourceId,typeattr" json:"sourceId"`
  3571  	// Datastore of the target device.
  3572  	//
  3573  	// This may be used by CAM/SRM
  3574  	// to notify the administrators to setup access paths for the hosts
  3575  	// to access the recovered devices.
  3576  	//
  3577  	// Refers instance of `Datastore`.
  3578  	TargetDatastore types.ManagedObjectReference `xml:"targetDatastore" json:"targetDatastore"`
  3579  }
  3580  
  3581  func init() {
  3582  	types.Add("sms:TargetGroupMemberInfo", reflect.TypeOf((*TargetGroupMemberInfo)(nil)).Elem())
  3583  }
  3584  
  3585  // Information about each replication target.
  3586  //
  3587  // This structure may be used only with operations rendered under `/sms`.
  3588  type TargetToSourceInfo struct {
  3589  	types.DynamicData
  3590  
  3591  	// Id of the source CG id (including the fault domain ID).
  3592  	SourceGroupId types.ReplicationGroupId `xml:"sourceGroupId" json:"sourceGroupId"`
  3593  	// Description of the replication agreement.
  3594  	//
  3595  	// This could be used to describe the characteristics of the replication
  3596  	// relationship between the source and the target (e.g. RPO, Replication
  3597  	// Mode, and other such properties). It is expected that VASA provider
  3598  	// will localize the string before sending to vSphere.
  3599  	ReplicationAgreementDescription string `xml:"replicationAgreementDescription,omitempty" json:"replicationAgreementDescription,omitempty"`
  3600  }
  3601  
  3602  func init() {
  3603  	types.Add("sms:TargetToSourceInfo", reflect.TypeOf((*TargetToSourceInfo)(nil)).Elem())
  3604  }
  3605  
  3606  // Input to testFailover method.
  3607  //
  3608  // This structure may be used only with operations rendered under `/sms`.
  3609  type TestFailoverParam struct {
  3610  	FailoverParam
  3611  }
  3612  
  3613  func init() {
  3614  	types.Add("sms:TestFailoverParam", reflect.TypeOf((*TestFailoverParam)(nil)).Elem())
  3615  }
  3616  
  3617  // The parameters of `VasaProvider.TestFailoverReplicationGroupStart_Task`.
  3618  //
  3619  // This structure may be used only with operations rendered under `/sms`.
  3620  type TestFailoverReplicationGroupStartRequestType struct {
  3621  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3622  	// Settings for the failover.
  3623  	TestFailoverParam TestFailoverParam `xml:"testFailoverParam" json:"testFailoverParam"`
  3624  }
  3625  
  3626  func init() {
  3627  	types.Add("sms:TestFailoverReplicationGroupStartRequestType", reflect.TypeOf((*TestFailoverReplicationGroupStartRequestType)(nil)).Elem())
  3628  }
  3629  
  3630  type TestFailoverReplicationGroupStart_Task TestFailoverReplicationGroupStartRequestType
  3631  
  3632  func init() {
  3633  	types.Add("sms:TestFailoverReplicationGroupStart_Task", reflect.TypeOf((*TestFailoverReplicationGroupStart_Task)(nil)).Elem())
  3634  }
  3635  
  3636  type TestFailoverReplicationGroupStart_TaskResponse struct {
  3637  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  3638  }
  3639  
  3640  // The parameters of `VasaProvider.TestFailoverReplicationGroupStop_Task`.
  3641  //
  3642  // This structure may be used only with operations rendered under `/sms`.
  3643  type TestFailoverReplicationGroupStopRequestType struct {
  3644  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3645  	// Array of replication groups that need to stop test.
  3646  	GroupId []types.ReplicationGroupId `xml:"groupId,omitempty" json:"groupId,omitempty"`
  3647  	// \- if true, VP should force-unbind all Virtual Volumes
  3648  	// and move the RG from INTEST to TARGET state. If false, VP will report all the
  3649  	// Virtual Volumes which need to be cleaned up before a failover operation
  3650  	// can be triggered. The default value will be false.
  3651  	Force bool `xml:"force" json:"force"`
  3652  }
  3653  
  3654  func init() {
  3655  	types.Add("sms:TestFailoverReplicationGroupStopRequestType", reflect.TypeOf((*TestFailoverReplicationGroupStopRequestType)(nil)).Elem())
  3656  }
  3657  
  3658  type TestFailoverReplicationGroupStop_Task TestFailoverReplicationGroupStopRequestType
  3659  
  3660  func init() {
  3661  	types.Add("sms:TestFailoverReplicationGroupStop_Task", reflect.TypeOf((*TestFailoverReplicationGroupStop_Task)(nil)).Elem())
  3662  }
  3663  
  3664  type TestFailoverReplicationGroupStop_TaskResponse struct {
  3665  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  3666  }
  3667  
  3668  // This exception is thrown if the request exceeds the maximum number of
  3669  // elements in batch that the VASA Provider can support for the specific API.
  3670  //
  3671  // This structure may be used only with operations rendered under `/sms`.
  3672  type TooMany struct {
  3673  	types.MethodFault
  3674  
  3675  	// Maximum number of elements in batch that the VASA Provider can support
  3676  	// for the specific API.
  3677  	//
  3678  	// If the value is not specified (zero) or invalid
  3679  	// (negative), client will assume the default value is 1.
  3680  	MaxBatchSize int64 `xml:"maxBatchSize,omitempty" json:"maxBatchSize,omitempty"`
  3681  }
  3682  
  3683  func init() {
  3684  	types.Add("sms:TooMany", reflect.TypeOf((*TooMany)(nil)).Elem())
  3685  }
  3686  
  3687  type TooManyFault TooMany
  3688  
  3689  func init() {
  3690  	types.Add("sms:TooManyFault", reflect.TypeOf((*TooManyFault)(nil)).Elem())
  3691  }
  3692  
  3693  // The parameters of `SmsStorageManager.UnregisterProvider_Task`.
  3694  //
  3695  // This structure may be used only with operations rendered under `/sms`.
  3696  type UnregisterProviderRequestType struct {
  3697  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3698  	// `SmsProviderInfo.uid` for
  3699  	// the provider
  3700  	ProviderId string `xml:"providerId" json:"providerId"`
  3701  }
  3702  
  3703  func init() {
  3704  	types.Add("sms:UnregisterProviderRequestType", reflect.TypeOf((*UnregisterProviderRequestType)(nil)).Elem())
  3705  }
  3706  
  3707  type UnregisterProvider_Task UnregisterProviderRequestType
  3708  
  3709  func init() {
  3710  	types.Add("sms:UnregisterProvider_Task", reflect.TypeOf((*UnregisterProvider_Task)(nil)).Elem())
  3711  }
  3712  
  3713  type UnregisterProvider_TaskResponse struct {
  3714  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  3715  }
  3716  
  3717  // Identity of a virtual volume for policy API purposes.
  3718  //
  3719  // For the sake of
  3720  // brevity, let us use VVolId. This works because the class is defined as a part
  3721  // of the policy package.
  3722  //
  3723  // WSDL names do not have this feature, but WSDL names are usually prefixed with
  3724  // the package name any way.
  3725  //
  3726  // This structure may be used only with operations rendered under `/sms`.
  3727  type VVolId struct {
  3728  	DeviceId
  3729  
  3730  	Id string `xml:"id" json:"id"`
  3731  }
  3732  
  3733  func init() {
  3734  	types.Add("sms:VVolId", reflect.TypeOf((*VVolId)(nil)).Elem())
  3735  }
  3736  
  3737  // Information about VASA (vStorage APIs for Storage Awareness) providers.
  3738  //
  3739  // This structure may be used only with operations rendered under `/sms`.
  3740  type VasaProviderInfo struct {
  3741  	SmsProviderInfo
  3742  
  3743  	// Provider URL
  3744  	Url string `xml:"url" json:"url"`
  3745  	// Provider certificate
  3746  	Certificate string `xml:"certificate,omitempty" json:"certificate,omitempty"`
  3747  	// The operational state of VASA Provider.
  3748  	Status string `xml:"status,omitempty" json:"status,omitempty"`
  3749  	// A fault that describes the cause of the current operational status.
  3750  	StatusFault *types.LocalizedMethodFault `xml:"statusFault,omitempty" json:"statusFault,omitempty"`
  3751  	// Supported VASA(vStorage APIs for Storage Awareness) version
  3752  	VasaVersion string `xml:"vasaVersion,omitempty" json:"vasaVersion,omitempty"`
  3753  	// Namespace to categorize storage capabilities provided by
  3754  	// arrays managed by the provider
  3755  	Namespace string `xml:"namespace,omitempty" json:"namespace,omitempty"`
  3756  	// Time stamp to indicate when last sync operation was completed
  3757  	// successfully.
  3758  	LastSyncTime string `xml:"lastSyncTime,omitempty" json:"lastSyncTime,omitempty"`
  3759  	// List containing mapping between the supported vendorID and
  3760  	// corresponding modelID
  3761  	SupportedVendorModelMapping []SupportedVendorModelMapping `xml:"supportedVendorModelMapping,omitempty" json:"supportedVendorModelMapping,omitempty"`
  3762  	// Deprecated as of SMS API 3.0, use `StorageArray.supportedProfile`.
  3763  	//
  3764  	// List of supported profiles
  3765  	SupportedProfile []string `xml:"supportedProfile,omitempty" json:"supportedProfile,omitempty"`
  3766  	// List of supported profiles at provider level.
  3767  	//
  3768  	// Must be one of the string
  3769  	// values from `ProviderProfile_enum`.
  3770  	SupportedProviderProfile []string `xml:"supportedProviderProfile,omitempty" json:"supportedProviderProfile,omitempty"`
  3771  	// List containing mapping between storage arrays reported by the provider
  3772  	// and information such as whether the provider is considered active for them.
  3773  	RelatedStorageArray []RelatedStorageArray `xml:"relatedStorageArray,omitempty" json:"relatedStorageArray,omitempty"`
  3774  	// Provider identifier reported by the provider which is unique within
  3775  	// the provider namespace.
  3776  	ProviderId string `xml:"providerId,omitempty" json:"providerId,omitempty"`
  3777  	// Provider certificate expiry date.
  3778  	CertificateExpiryDate string `xml:"certificateExpiryDate,omitempty" json:"certificateExpiryDate,omitempty"`
  3779  	// Provider certificate status
  3780  	// This field holds values from `VasaProviderCertificateStatus_enum`
  3781  	CertificateStatus string `xml:"certificateStatus,omitempty" json:"certificateStatus,omitempty"`
  3782  	// Service location for the VASA endpoint that SMS is using
  3783  	// to communicate with the provider.
  3784  	ServiceLocation string `xml:"serviceLocation,omitempty" json:"serviceLocation,omitempty"`
  3785  	// Indicates the type of deployment supported by the provider.
  3786  	//
  3787  	// If true, it is an active/passive deployment and the provider needs to be
  3788  	// activated explicitly using activateProviderEx() VASA API.
  3789  	// If false, it is an active/active deployment and provider does not need any
  3790  	// explicit activation to respond to VASA calls.
  3791  	NeedsExplicitActivation *bool `xml:"needsExplicitActivation" json:"needsExplicitActivation,omitempty"`
  3792  	// Maximum number of elements in batch APIs that the VASA Provider can support.
  3793  	//
  3794  	// This value is common to all batch APIs supported by the provider. However,
  3795  	// for each specific API, the provider may still throw or return `TooMany`
  3796  	// fault in which a different value of maxBatchSize can be specified.
  3797  	// If the value is not specified (zero) or invalid (negative), client will
  3798  	// assume there's no common limit for the number of elements that can be
  3799  	// handled in all batch APIs.
  3800  	MaxBatchSize int64 `xml:"maxBatchSize,omitempty" json:"maxBatchSize,omitempty"`
  3801  	// Indicate whether the provider wants to retain its certificate after bootstrapping.
  3802  	//
  3803  	// If true, SMS will not provision a VMCA signed certificate for the provider
  3804  	// and all certificate life cycle management workflows are disabled for this provider certificate.
  3805  	// If false, SMS will provision a VMCA signed certificate for the provider and
  3806  	// all certificate life cycle management workflows are enabled for this provider certificate.
  3807  	RetainVasaProviderCertificate *bool `xml:"retainVasaProviderCertificate" json:"retainVasaProviderCertificate,omitempty"`
  3808  	// Indicates if this provider is independent of arrays.
  3809  	//
  3810  	// Default value for this flag is false, which means this provider supports
  3811  	// arrays. Arrays will be queried for this provider during sync. If this flag
  3812  	// is set to true, arrays will not be synced for this provider and array
  3813  	// related API will not be invoked on this provider.
  3814  	ArrayIndependentProvider *bool `xml:"arrayIndependentProvider" json:"arrayIndependentProvider,omitempty"`
  3815  	// Type of this VASA provider.
  3816  	//
  3817  	// This field will be equal to one of the values of `VpType_enum`.
  3818  	Type string `xml:"type,omitempty" json:"type,omitempty"`
  3819  	// This field indicates the category of the provider and will be equal to one of the values of
  3820  	// `VpCategory_enum`.
  3821  	Category string `xml:"category,omitempty" json:"category,omitempty"`
  3822  	// Priority level of the provider within a VASA HA group.
  3823  	//
  3824  	// For a stand-alone
  3825  	// provider which does not participate in VASA HA, this field will be ignored.
  3826  	//
  3827  	// The priority value is an integer with valid range from 0 to 255.
  3828  	Priority int32 `xml:"priority,omitempty" json:"priority,omitempty"`
  3829  	// Unique identifier of a VASA HA group.
  3830  	//
  3831  	// Providers should report this
  3832  	// identifier to utilize HA feature supported by vSphere. Different providers
  3833  	// reporting the same <code>failoverGroupId</code> will be treated as an HA
  3834  	// group. Failover/failback will be done within one group.
  3835  	FailoverGroupId string `xml:"failoverGroupId,omitempty" json:"failoverGroupId,omitempty"`
  3836  }
  3837  
  3838  func init() {
  3839  	types.Add("sms:VasaProviderInfo", reflect.TypeOf((*VasaProviderInfo)(nil)).Elem())
  3840  }
  3841  
  3842  type VasaProviderReconnectRequestType struct {
  3843  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3844  }
  3845  
  3846  func init() {
  3847  	types.Add("sms:VasaProviderReconnectRequestType", reflect.TypeOf((*VasaProviderReconnectRequestType)(nil)).Elem())
  3848  }
  3849  
  3850  type VasaProviderReconnect_Task VasaProviderReconnectRequestType
  3851  
  3852  func init() {
  3853  	types.Add("sms:VasaProviderReconnect_Task", reflect.TypeOf((*VasaProviderReconnect_Task)(nil)).Elem())
  3854  }
  3855  
  3856  type VasaProviderReconnect_TaskResponse struct {
  3857  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  3858  }
  3859  
  3860  type VasaProviderRefreshCertificateRequestType struct {
  3861  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3862  }
  3863  
  3864  func init() {
  3865  	types.Add("sms:VasaProviderRefreshCertificateRequestType", reflect.TypeOf((*VasaProviderRefreshCertificateRequestType)(nil)).Elem())
  3866  }
  3867  
  3868  type VasaProviderRefreshCertificate_Task VasaProviderRefreshCertificateRequestType
  3869  
  3870  func init() {
  3871  	types.Add("sms:VasaProviderRefreshCertificate_Task", reflect.TypeOf((*VasaProviderRefreshCertificate_Task)(nil)).Elem())
  3872  }
  3873  
  3874  type VasaProviderRefreshCertificate_TaskResponse struct {
  3875  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  3876  }
  3877  
  3878  type VasaProviderRevokeCertificateRequestType struct {
  3879  	This types.ManagedObjectReference `xml:"_this" json:"_this"`
  3880  }
  3881  
  3882  func init() {
  3883  	types.Add("sms:VasaProviderRevokeCertificateRequestType", reflect.TypeOf((*VasaProviderRevokeCertificateRequestType)(nil)).Elem())
  3884  }
  3885  
  3886  type VasaProviderRevokeCertificate_Task VasaProviderRevokeCertificateRequestType
  3887  
  3888  func init() {
  3889  	types.Add("sms:VasaProviderRevokeCertificate_Task", reflect.TypeOf((*VasaProviderRevokeCertificate_Task)(nil)).Elem())
  3890  }
  3891  
  3892  type VasaProviderRevokeCertificate_TaskResponse struct {
  3893  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  3894  }
  3895  
  3896  // VASA(vStorage APIs for Storage Awareness) provider
  3897  // specification
  3898  //
  3899  // This structure may be used only with operations rendered under `/sms`.
  3900  type VasaProviderSpec struct {
  3901  	SmsProviderSpec
  3902  
  3903  	// Username
  3904  	// The maximum length of the username is 255 characters.
  3905  	Username string `xml:"username" json:"username"`
  3906  	// Password
  3907  	// The maximum length of the password is 255 characters.
  3908  	Password string `xml:"password" json:"password"`
  3909  	// URL
  3910  	Url string `xml:"url" json:"url"`
  3911  	// Certificate
  3912  	Certificate string `xml:"certificate,omitempty" json:"certificate,omitempty"`
  3913  }
  3914  
  3915  func init() {
  3916  	types.Add("sms:VasaProviderSpec", reflect.TypeOf((*VasaProviderSpec)(nil)).Elem())
  3917  }
  3918  
  3919  // The parameters of `VasaProvider.VasaProviderSync_Task`.
  3920  //
  3921  // This structure may be used only with operations rendered under `/sms`.
  3922  type VasaProviderSyncRequestType struct {
  3923  	This    types.ManagedObjectReference `xml:"_this" json:"_this"`
  3924  	ArrayId string                       `xml:"arrayId,omitempty" json:"arrayId,omitempty"`
  3925  }
  3926  
  3927  func init() {
  3928  	types.Add("sms:VasaProviderSyncRequestType", reflect.TypeOf((*VasaProviderSyncRequestType)(nil)).Elem())
  3929  }
  3930  
  3931  type VasaProviderSync_Task VasaProviderSyncRequestType
  3932  
  3933  func init() {
  3934  	types.Add("sms:VasaProviderSync_Task", reflect.TypeOf((*VasaProviderSync_Task)(nil)).Elem())
  3935  }
  3936  
  3937  type VasaProviderSync_TaskResponse struct {
  3938  	Returnval types.ManagedObjectReference `xml:"returnval" json:"returnval"`
  3939  }
  3940  
  3941  // Represents a virtual disk with a UUID (aka FCD).
  3942  //
  3943  // Virtual Volume VASA providers can ignore this class.
  3944  //
  3945  // This structure may be used only with operations rendered under `/sms`.
  3946  type VasaVirtualDiskId struct {
  3947  	DeviceId
  3948  
  3949  	// See VIM documentation for more details on first class storage - which is
  3950  	// new in 2016.
  3951  	DiskId string `xml:"diskId" json:"diskId"`
  3952  }
  3953  
  3954  func init() {
  3955  	types.Add("sms:VasaVirtualDiskId", reflect.TypeOf((*VasaVirtualDiskId)(nil)).Elem())
  3956  }
  3957  
  3958  // Represents a virtual disk.
  3959  //
  3960  // Ideally a UUID, since we do not yet have an FCD,
  3961  // let us use VM's UUID + diskKey.
  3962  // Virtual Volume VASA providers can ignore this class.
  3963  //
  3964  // This structure may be used only with operations rendered under `/sms`.
  3965  type VirtualDiskKey struct {
  3966  	DeviceId
  3967  
  3968  	// The vmInstanceUUID is unique to a VM.
  3969  	//
  3970  	// See
  3971  	// http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvim.vm.ConfigInfo.html
  3972  	VmInstanceUUID string `xml:"vmInstanceUUID" json:"vmInstanceUUID"`
  3973  	DeviceKey      int32  `xml:"deviceKey" json:"deviceKey"`
  3974  }
  3975  
  3976  func init() {
  3977  	types.Add("sms:VirtualDiskKey", reflect.TypeOf((*VirtualDiskKey)(nil)).Elem())
  3978  }
  3979  
  3980  // Identifies a VirtualDisk uniquely using the disk key, vCenter managed object id of the VM it
  3981  // belongs to and the corresponding vCenter UUID.
  3982  //
  3983  // This structure may be used only with operations rendered under `/sms`.
  3984  type VirtualDiskMoId struct {
  3985  	DeviceId
  3986  
  3987  	// The vCenter UUID - this is informational only, and may not always be set.
  3988  	VcUuid string `xml:"vcUuid,omitempty" json:"vcUuid,omitempty"`
  3989  	// The managed object id that corresponds to vCenter's ManagedObjectReference#key for this VM.
  3990  	VmMoid string `xml:"vmMoid" json:"vmMoid"`
  3991  	// The disk key that corresponds to the VirtualDevice#key in vCenter.
  3992  	DiskKey string `xml:"diskKey" json:"diskKey"`
  3993  }
  3994  
  3995  func init() {
  3996  	types.Add("sms:VirtualDiskMoId", reflect.TypeOf((*VirtualDiskMoId)(nil)).Elem())
  3997  }
  3998  
  3999  // Identifies a virtual machine by its VMX file path.
  4000  //
  4001  // This structure may be used only with operations rendered under `/sms`.
  4002  type VirtualMachineFilePath struct {
  4003  	VirtualMachineId
  4004  
  4005  	// The vCenter UUID - this is informational only,
  4006  	// and may not always be set.
  4007  	VcUuid string `xml:"vcUuid,omitempty" json:"vcUuid,omitempty"`
  4008  	// Datastore URL, which is globally unique (name is not).
  4009  	DsUrl string `xml:"dsUrl" json:"dsUrl"`
  4010  	// Full path name from the URL onwards.
  4011  	//
  4012  	// When the vmxPath is returned after failover, the VMX file
  4013  	// should be fixed up to contain correct target filenames for all replicated
  4014  	// disks. For non-replicated disks, the target filenames can contain
  4015  	// any arbitrary path. For better security, it is recommended to
  4016  	// set these disks pointed to a random string (e.g. UUID).
  4017  	VmxPath string `xml:"vmxPath" json:"vmxPath"`
  4018  }
  4019  
  4020  func init() {
  4021  	types.Add("sms:VirtualMachineFilePath", reflect.TypeOf((*VirtualMachineFilePath)(nil)).Elem())
  4022  }
  4023  
  4024  // Abstracts the identity of a virtual machine.
  4025  //
  4026  // This structure may be used only with operations rendered under `/sms`.
  4027  type VirtualMachineId struct {
  4028  	DeviceId
  4029  }
  4030  
  4031  func init() {
  4032  	types.Add("sms:VirtualMachineId", reflect.TypeOf((*VirtualMachineId)(nil)).Elem())
  4033  }
  4034  
  4035  // Identifies a VirtualMachine uniquely using its vCenter managed object id and the corresponding
  4036  // vCenter UUID
  4037  //
  4038  // This structure may be used only with operations rendered under `/sms`.
  4039  type VirtualMachineMoId struct {
  4040  	VirtualMachineId
  4041  
  4042  	// The vCenter UUID - this is informational only, and may not always be set.
  4043  	VcUuid string `xml:"vcUuid,omitempty" json:"vcUuid,omitempty"`
  4044  	// The managed object id that corresponds to vCenter's ManagedObjectReference#key for this VM.
  4045  	VmMoid string `xml:"vmMoid" json:"vmMoid"`
  4046  }
  4047  
  4048  func init() {
  4049  	types.Add("sms:VirtualMachineMoId", reflect.TypeOf((*VirtualMachineMoId)(nil)).Elem())
  4050  }
  4051  
  4052  // Identifies a virtual machine by its vmInstanceUUID
  4053  //
  4054  // This structure may be used only with operations rendered under `/sms`.
  4055  type VirtualMachineUUID struct {
  4056  	VirtualMachineId
  4057  
  4058  	// The vmInstanceUUID is unique to a VM.
  4059  	//
  4060  	// See
  4061  	// http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvim.vm.ConfigInfo.html
  4062  	VmInstanceUUID string `xml:"vmInstanceUUID" json:"vmInstanceUUID"`
  4063  }
  4064  
  4065  func init() {
  4066  	types.Add("sms:VirtualMachineUUID", reflect.TypeOf((*VirtualMachineUUID)(nil)).Elem())
  4067  }
  4068  
  4069  type VersionURI string
  4070  
  4071  func init() {
  4072  	types.Add("sms:versionURI", reflect.TypeOf((*VersionURI)(nil)).Elem())
  4073  }