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