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