github.com/vmware/govmomi@v0.43.0/pbm/types/types.go (about) 1 /* 2 Copyright (c) 2014-2024 VMware, Inc. All Rights Reserved. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package types 18 19 import ( 20 "reflect" 21 "time" 22 23 "github.com/vmware/govmomi/vim25/types" 24 ) 25 26 // A boxed array of `PbmCapabilityConstraintInstance`. To be used in `Any` placeholders. 27 // 28 // This structure may be used only with operations rendered under `/pbm`. 29 type ArrayOfPbmCapabilityConstraintInstance struct { 30 PbmCapabilityConstraintInstance []PbmCapabilityConstraintInstance `xml:"PbmCapabilityConstraintInstance,omitempty" json:"_value"` 31 } 32 33 func init() { 34 types.Add("pbm:ArrayOfPbmCapabilityConstraintInstance", reflect.TypeOf((*ArrayOfPbmCapabilityConstraintInstance)(nil)).Elem()) 35 } 36 37 // A boxed array of `PbmCapabilityInstance`. To be used in `Any` placeholders. 38 // 39 // This structure may be used only with operations rendered under `/pbm`. 40 type ArrayOfPbmCapabilityInstance struct { 41 PbmCapabilityInstance []PbmCapabilityInstance `xml:"PbmCapabilityInstance,omitempty" json:"_value"` 42 } 43 44 func init() { 45 types.Add("pbm:ArrayOfPbmCapabilityInstance", reflect.TypeOf((*ArrayOfPbmCapabilityInstance)(nil)).Elem()) 46 } 47 48 // A boxed array of `PbmCapabilityMetadata`. To be used in `Any` placeholders. 49 // 50 // This structure may be used only with operations rendered under `/pbm`. 51 type ArrayOfPbmCapabilityMetadata struct { 52 PbmCapabilityMetadata []PbmCapabilityMetadata `xml:"PbmCapabilityMetadata,omitempty" json:"_value"` 53 } 54 55 func init() { 56 types.Add("pbm:ArrayOfPbmCapabilityMetadata", reflect.TypeOf((*ArrayOfPbmCapabilityMetadata)(nil)).Elem()) 57 } 58 59 // A boxed array of `PbmCapabilityMetadataPerCategory`. To be used in `Any` placeholders. 60 // 61 // This structure may be used only with operations rendered under `/pbm`. 62 type ArrayOfPbmCapabilityMetadataPerCategory struct { 63 PbmCapabilityMetadataPerCategory []PbmCapabilityMetadataPerCategory `xml:"PbmCapabilityMetadataPerCategory,omitempty" json:"_value"` 64 } 65 66 func init() { 67 types.Add("pbm:ArrayOfPbmCapabilityMetadataPerCategory", reflect.TypeOf((*ArrayOfPbmCapabilityMetadataPerCategory)(nil)).Elem()) 68 } 69 70 // A boxed array of `PbmCapabilityPropertyInstance`. To be used in `Any` placeholders. 71 // 72 // This structure may be used only with operations rendered under `/pbm`. 73 type ArrayOfPbmCapabilityPropertyInstance struct { 74 PbmCapabilityPropertyInstance []PbmCapabilityPropertyInstance `xml:"PbmCapabilityPropertyInstance,omitempty" json:"_value"` 75 } 76 77 func init() { 78 types.Add("pbm:ArrayOfPbmCapabilityPropertyInstance", reflect.TypeOf((*ArrayOfPbmCapabilityPropertyInstance)(nil)).Elem()) 79 } 80 81 // A boxed array of `PbmCapabilityPropertyMetadata`. To be used in `Any` placeholders. 82 // 83 // This structure may be used only with operations rendered under `/pbm`. 84 type ArrayOfPbmCapabilityPropertyMetadata struct { 85 PbmCapabilityPropertyMetadata []PbmCapabilityPropertyMetadata `xml:"PbmCapabilityPropertyMetadata,omitempty" json:"_value"` 86 } 87 88 func init() { 89 types.Add("pbm:ArrayOfPbmCapabilityPropertyMetadata", reflect.TypeOf((*ArrayOfPbmCapabilityPropertyMetadata)(nil)).Elem()) 90 } 91 92 // A boxed array of `PbmCapabilitySchema`. To be used in `Any` placeholders. 93 // 94 // This structure may be used only with operations rendered under `/pbm`. 95 type ArrayOfPbmCapabilitySchema struct { 96 PbmCapabilitySchema []PbmCapabilitySchema `xml:"PbmCapabilitySchema,omitempty" json:"_value"` 97 } 98 99 func init() { 100 types.Add("pbm:ArrayOfPbmCapabilitySchema", reflect.TypeOf((*ArrayOfPbmCapabilitySchema)(nil)).Elem()) 101 } 102 103 // A boxed array of `PbmCapabilitySubProfile`. To be used in `Any` placeholders. 104 // 105 // This structure may be used only with operations rendered under `/pbm`. 106 type ArrayOfPbmCapabilitySubProfile struct { 107 PbmCapabilitySubProfile []PbmCapabilitySubProfile `xml:"PbmCapabilitySubProfile,omitempty" json:"_value"` 108 } 109 110 func init() { 111 types.Add("pbm:ArrayOfPbmCapabilitySubProfile", reflect.TypeOf((*ArrayOfPbmCapabilitySubProfile)(nil)).Elem()) 112 } 113 114 // A boxed array of `PbmCapabilityVendorNamespaceInfo`. To be used in `Any` placeholders. 115 // 116 // This structure may be used only with operations rendered under `/pbm`. 117 type ArrayOfPbmCapabilityVendorNamespaceInfo struct { 118 PbmCapabilityVendorNamespaceInfo []PbmCapabilityVendorNamespaceInfo `xml:"PbmCapabilityVendorNamespaceInfo,omitempty" json:"_value"` 119 } 120 121 func init() { 122 types.Add("pbm:ArrayOfPbmCapabilityVendorNamespaceInfo", reflect.TypeOf((*ArrayOfPbmCapabilityVendorNamespaceInfo)(nil)).Elem()) 123 } 124 125 // A boxed array of `PbmCapabilityVendorResourceTypeInfo`. To be used in `Any` placeholders. 126 // 127 // This structure may be used only with operations rendered under `/pbm`. 128 type ArrayOfPbmCapabilityVendorResourceTypeInfo struct { 129 PbmCapabilityVendorResourceTypeInfo []PbmCapabilityVendorResourceTypeInfo `xml:"PbmCapabilityVendorResourceTypeInfo,omitempty" json:"_value"` 130 } 131 132 func init() { 133 types.Add("pbm:ArrayOfPbmCapabilityVendorResourceTypeInfo", reflect.TypeOf((*ArrayOfPbmCapabilityVendorResourceTypeInfo)(nil)).Elem()) 134 } 135 136 // A boxed array of `PbmCompliancePolicyStatus`. To be used in `Any` placeholders. 137 // 138 // This structure may be used only with operations rendered under `/pbm`. 139 type ArrayOfPbmCompliancePolicyStatus struct { 140 PbmCompliancePolicyStatus []PbmCompliancePolicyStatus `xml:"PbmCompliancePolicyStatus,omitempty" json:"_value"` 141 } 142 143 func init() { 144 types.Add("pbm:ArrayOfPbmCompliancePolicyStatus", reflect.TypeOf((*ArrayOfPbmCompliancePolicyStatus)(nil)).Elem()) 145 } 146 147 // A boxed array of `PbmComplianceResult`. To be used in `Any` placeholders. 148 // 149 // This structure may be used only with operations rendered under `/pbm`. 150 type ArrayOfPbmComplianceResult struct { 151 PbmComplianceResult []PbmComplianceResult `xml:"PbmComplianceResult,omitempty" json:"_value"` 152 } 153 154 func init() { 155 types.Add("pbm:ArrayOfPbmComplianceResult", reflect.TypeOf((*ArrayOfPbmComplianceResult)(nil)).Elem()) 156 } 157 158 // A boxed array of `PbmDatastoreSpaceStatistics`. To be used in `Any` placeholders. 159 // 160 // This structure may be used only with operations rendered under `/pbm`. 161 type ArrayOfPbmDatastoreSpaceStatistics struct { 162 PbmDatastoreSpaceStatistics []PbmDatastoreSpaceStatistics `xml:"PbmDatastoreSpaceStatistics,omitempty" json:"_value"` 163 } 164 165 func init() { 166 types.Add("pbm:ArrayOfPbmDatastoreSpaceStatistics", reflect.TypeOf((*ArrayOfPbmDatastoreSpaceStatistics)(nil)).Elem()) 167 } 168 169 // A boxed array of `PbmDefaultProfileInfo`. To be used in `Any` placeholders. 170 // 171 // This structure may be used only with operations rendered under `/pbm`. 172 type ArrayOfPbmDefaultProfileInfo struct { 173 PbmDefaultProfileInfo []PbmDefaultProfileInfo `xml:"PbmDefaultProfileInfo,omitempty" json:"_value"` 174 } 175 176 func init() { 177 types.Add("pbm:ArrayOfPbmDefaultProfileInfo", reflect.TypeOf((*ArrayOfPbmDefaultProfileInfo)(nil)).Elem()) 178 } 179 180 // A boxed array of `PbmFaultNoPermissionEntityPrivileges`. To be used in `Any` placeholders. 181 // 182 // This structure may be used only with operations rendered under `/pbm`. 183 type ArrayOfPbmFaultNoPermissionEntityPrivileges struct { 184 PbmFaultNoPermissionEntityPrivileges []PbmFaultNoPermissionEntityPrivileges `xml:"PbmFaultNoPermissionEntityPrivileges,omitempty" json:"_value"` 185 } 186 187 func init() { 188 types.Add("pbm:ArrayOfPbmFaultNoPermissionEntityPrivileges", reflect.TypeOf((*ArrayOfPbmFaultNoPermissionEntityPrivileges)(nil)).Elem()) 189 } 190 191 // A boxed array of `PbmLoggingConfiguration`. To be used in `Any` placeholders. 192 // 193 // This structure may be used only with operations rendered under `/pbm`. 194 type ArrayOfPbmLoggingConfiguration struct { 195 PbmLoggingConfiguration []PbmLoggingConfiguration `xml:"PbmLoggingConfiguration,omitempty" json:"_value"` 196 } 197 198 func init() { 199 types.Add("pbm:ArrayOfPbmLoggingConfiguration", reflect.TypeOf((*ArrayOfPbmLoggingConfiguration)(nil)).Elem()) 200 } 201 202 // A boxed array of `PbmPlacementCompatibilityResult`. To be used in `Any` placeholders. 203 // 204 // This structure may be used only with operations rendered under `/pbm`. 205 type ArrayOfPbmPlacementCompatibilityResult struct { 206 PbmPlacementCompatibilityResult []PbmPlacementCompatibilityResult `xml:"PbmPlacementCompatibilityResult,omitempty" json:"_value"` 207 } 208 209 func init() { 210 types.Add("pbm:ArrayOfPbmPlacementCompatibilityResult", reflect.TypeOf((*ArrayOfPbmPlacementCompatibilityResult)(nil)).Elem()) 211 } 212 213 // A boxed array of `PbmPlacementHub`. To be used in `Any` placeholders. 214 // 215 // This structure may be used only with operations rendered under `/pbm`. 216 type ArrayOfPbmPlacementHub struct { 217 PbmPlacementHub []PbmPlacementHub `xml:"PbmPlacementHub,omitempty" json:"_value"` 218 } 219 220 func init() { 221 types.Add("pbm:ArrayOfPbmPlacementHub", reflect.TypeOf((*ArrayOfPbmPlacementHub)(nil)).Elem()) 222 } 223 224 // A boxed array of `PbmPlacementMatchingResources`. To be used in `Any` placeholders. 225 // 226 // This structure may be used only with operations rendered under `/pbm`. 227 type ArrayOfPbmPlacementMatchingResources struct { 228 PbmPlacementMatchingResources []BasePbmPlacementMatchingResources `xml:"PbmPlacementMatchingResources,omitempty,typeattr" json:"_value"` 229 } 230 231 func init() { 232 types.Add("pbm:ArrayOfPbmPlacementMatchingResources", reflect.TypeOf((*ArrayOfPbmPlacementMatchingResources)(nil)).Elem()) 233 } 234 235 // A boxed array of `PbmPlacementRequirement`. To be used in `Any` placeholders. 236 // 237 // This structure may be used only with operations rendered under `/pbm`. 238 type ArrayOfPbmPlacementRequirement struct { 239 PbmPlacementRequirement []BasePbmPlacementRequirement `xml:"PbmPlacementRequirement,omitempty,typeattr" json:"_value"` 240 } 241 242 func init() { 243 types.Add("pbm:ArrayOfPbmPlacementRequirement", reflect.TypeOf((*ArrayOfPbmPlacementRequirement)(nil)).Elem()) 244 } 245 246 // A boxed array of `PbmPlacementResourceUtilization`. To be used in `Any` placeholders. 247 // 248 // This structure may be used only with operations rendered under `/pbm`. 249 type ArrayOfPbmPlacementResourceUtilization struct { 250 PbmPlacementResourceUtilization []PbmPlacementResourceUtilization `xml:"PbmPlacementResourceUtilization,omitempty" json:"_value"` 251 } 252 253 func init() { 254 types.Add("pbm:ArrayOfPbmPlacementResourceUtilization", reflect.TypeOf((*ArrayOfPbmPlacementResourceUtilization)(nil)).Elem()) 255 } 256 257 // A boxed array of `PbmProfile`. To be used in `Any` placeholders. 258 // 259 // This structure may be used only with operations rendered under `/pbm`. 260 type ArrayOfPbmProfile struct { 261 PbmProfile []BasePbmProfile `xml:"PbmProfile,omitempty,typeattr" json:"_value"` 262 } 263 264 func init() { 265 types.Add("pbm:ArrayOfPbmProfile", reflect.TypeOf((*ArrayOfPbmProfile)(nil)).Elem()) 266 } 267 268 // A boxed array of `PbmProfileId`. To be used in `Any` placeholders. 269 // 270 // This structure may be used only with operations rendered under `/pbm`. 271 type ArrayOfPbmProfileId struct { 272 PbmProfileId []PbmProfileId `xml:"PbmProfileId,omitempty" json:"_value"` 273 } 274 275 func init() { 276 types.Add("pbm:ArrayOfPbmProfileId", reflect.TypeOf((*ArrayOfPbmProfileId)(nil)).Elem()) 277 } 278 279 // A boxed array of `PbmProfileOperationOutcome`. To be used in `Any` placeholders. 280 // 281 // This structure may be used only with operations rendered under `/pbm`. 282 type ArrayOfPbmProfileOperationOutcome struct { 283 PbmProfileOperationOutcome []PbmProfileOperationOutcome `xml:"PbmProfileOperationOutcome,omitempty" json:"_value"` 284 } 285 286 func init() { 287 types.Add("pbm:ArrayOfPbmProfileOperationOutcome", reflect.TypeOf((*ArrayOfPbmProfileOperationOutcome)(nil)).Elem()) 288 } 289 290 // A boxed array of `PbmProfileResourceType`. To be used in `Any` placeholders. 291 // 292 // This structure may be used only with operations rendered under `/pbm`. 293 type ArrayOfPbmProfileResourceType struct { 294 PbmProfileResourceType []PbmProfileResourceType `xml:"PbmProfileResourceType,omitempty" json:"_value"` 295 } 296 297 func init() { 298 types.Add("pbm:ArrayOfPbmProfileResourceType", reflect.TypeOf((*ArrayOfPbmProfileResourceType)(nil)).Elem()) 299 } 300 301 // A boxed array of `PbmProfileType`. To be used in `Any` placeholders. 302 // 303 // This structure may be used only with operations rendered under `/pbm`. 304 type ArrayOfPbmProfileType struct { 305 PbmProfileType []PbmProfileType `xml:"PbmProfileType,omitempty" json:"_value"` 306 } 307 308 func init() { 309 types.Add("pbm:ArrayOfPbmProfileType", reflect.TypeOf((*ArrayOfPbmProfileType)(nil)).Elem()) 310 } 311 312 // A boxed array of `PbmQueryProfileResult`. To be used in `Any` placeholders. 313 // 314 // This structure may be used only with operations rendered under `/pbm`. 315 type ArrayOfPbmQueryProfileResult struct { 316 PbmQueryProfileResult []PbmQueryProfileResult `xml:"PbmQueryProfileResult,omitempty" json:"_value"` 317 } 318 319 func init() { 320 types.Add("pbm:ArrayOfPbmQueryProfileResult", reflect.TypeOf((*ArrayOfPbmQueryProfileResult)(nil)).Elem()) 321 } 322 323 // A boxed array of `PbmQueryReplicationGroupResult`. To be used in `Any` placeholders. 324 // 325 // This structure may be used only with operations rendered under `/pbm`. 326 type ArrayOfPbmQueryReplicationGroupResult struct { 327 PbmQueryReplicationGroupResult []PbmQueryReplicationGroupResult `xml:"PbmQueryReplicationGroupResult,omitempty" json:"_value"` 328 } 329 330 func init() { 331 types.Add("pbm:ArrayOfPbmQueryReplicationGroupResult", reflect.TypeOf((*ArrayOfPbmQueryReplicationGroupResult)(nil)).Elem()) 332 } 333 334 // A boxed array of `PbmRollupComplianceResult`. To be used in `Any` placeholders. 335 // 336 // This structure may be used only with operations rendered under `/pbm`. 337 type ArrayOfPbmRollupComplianceResult struct { 338 PbmRollupComplianceResult []PbmRollupComplianceResult `xml:"PbmRollupComplianceResult,omitempty" json:"_value"` 339 } 340 341 func init() { 342 types.Add("pbm:ArrayOfPbmRollupComplianceResult", reflect.TypeOf((*ArrayOfPbmRollupComplianceResult)(nil)).Elem()) 343 } 344 345 // A boxed array of `PbmServerObjectRef`. To be used in `Any` placeholders. 346 // 347 // This structure may be used only with operations rendered under `/pbm`. 348 type ArrayOfPbmServerObjectRef struct { 349 PbmServerObjectRef []PbmServerObjectRef `xml:"PbmServerObjectRef,omitempty" json:"_value"` 350 } 351 352 func init() { 353 types.Add("pbm:ArrayOfPbmServerObjectRef", reflect.TypeOf((*ArrayOfPbmServerObjectRef)(nil)).Elem()) 354 } 355 356 // The `PbmAboutInfo` data object stores identifying data 357 // about the Storage Policy Server. 358 // 359 // This structure may be used only with operations rendered under `/pbm`. 360 type PbmAboutInfo struct { 361 types.DynamicData 362 363 // Name of the server. 364 Name string `xml:"name" json:"name"` 365 // Version number. 366 Version string `xml:"version" json:"version"` 367 // Globally unique identifier associated with this server instance. 368 InstanceUuid string `xml:"instanceUuid" json:"instanceUuid"` 369 } 370 371 func init() { 372 types.Add("pbm:PbmAboutInfo", reflect.TypeOf((*PbmAboutInfo)(nil)).Elem()) 373 } 374 375 // An AlreadyExists fault is thrown when an attempt is made to add an element to 376 // a collection, if the element's key, name, or identifier already exists in 377 // that collection. 378 // 379 // This structure may be used only with operations rendered under `/pbm`. 380 type PbmAlreadyExists struct { 381 PbmFault 382 383 Name string `xml:"name,omitempty" json:"name,omitempty"` 384 } 385 386 func init() { 387 types.Add("pbm:PbmAlreadyExists", reflect.TypeOf((*PbmAlreadyExists)(nil)).Elem()) 388 } 389 390 type PbmAlreadyExistsFault PbmAlreadyExists 391 392 func init() { 393 types.Add("pbm:PbmAlreadyExistsFault", reflect.TypeOf((*PbmAlreadyExistsFault)(nil)).Elem()) 394 } 395 396 type PbmAssignDefaultRequirementProfile PbmAssignDefaultRequirementProfileRequestType 397 398 func init() { 399 types.Add("pbm:PbmAssignDefaultRequirementProfile", reflect.TypeOf((*PbmAssignDefaultRequirementProfile)(nil)).Elem()) 400 } 401 402 // The parameters of `PbmProfileProfileManager.PbmAssignDefaultRequirementProfile`. 403 // 404 // This structure may be used only with operations rendered under `/pbm`. 405 type PbmAssignDefaultRequirementProfileRequestType struct { 406 This types.ManagedObjectReference `xml:"_this" json:"_this"` 407 // The profile that needs to be made default profile. 408 Profile PbmProfileId `xml:"profile" json:"profile"` 409 // The datastores for which the profile needs to be made as default profile. 410 Datastores []PbmPlacementHub `xml:"datastores" json:"datastores"` 411 } 412 413 func init() { 414 types.Add("pbm:PbmAssignDefaultRequirementProfileRequestType", reflect.TypeOf((*PbmAssignDefaultRequirementProfileRequestType)(nil)).Elem()) 415 } 416 417 type PbmAssignDefaultRequirementProfileResponse struct { 418 } 419 420 // Constraints on the properties for a single occurrence of a capability. 421 // 422 // All properties must satisfy their respective constraints to be compliant. 423 // 424 // This structure may be used only with operations rendered under `/pbm`. 425 type PbmCapabilityConstraintInstance struct { 426 types.DynamicData 427 428 // Property instance array for this constraint 429 PropertyInstance []PbmCapabilityPropertyInstance `xml:"propertyInstance" json:"propertyInstance"` 430 } 431 432 func init() { 433 types.Add("pbm:PbmCapabilityConstraintInstance", reflect.TypeOf((*PbmCapabilityConstraintInstance)(nil)).Elem()) 434 } 435 436 // The `PbmCapabilityConstraints` data object is the base 437 // object for capability subprofile constraints. 438 // 439 // This structure may be used only with operations rendered under `/pbm`. 440 type PbmCapabilityConstraints struct { 441 types.DynamicData 442 } 443 444 func init() { 445 types.Add("pbm:PbmCapabilityConstraints", reflect.TypeOf((*PbmCapabilityConstraints)(nil)).Elem()) 446 } 447 448 // A property value with description. 449 // 450 // It can be repeated under DiscreteSet. 451 // E.g., set of tags, each with description and tag name. 452 // 453 // This structure may be used only with operations rendered under `/pbm`. 454 type PbmCapabilityDescription struct { 455 types.DynamicData 456 457 // Description of the property value 458 Description PbmExtendedElementDescription `xml:"description" json:"description"` 459 // Values for the set. 460 // 461 // must be one of the supported datatypes as 462 // defined in `PbmBuiltinType_enum` 463 // Must only contain unique values to comply with the Set semantics 464 Value types.AnyType `xml:"value,typeattr" json:"value"` 465 } 466 467 func init() { 468 types.Add("pbm:PbmCapabilityDescription", reflect.TypeOf((*PbmCapabilityDescription)(nil)).Elem()) 469 } 470 471 // The `PbmCapabilityDiscreteSet` data object defines a set of values 472 // for storage profile property instances (`PbmCapabilityPropertyInstance`). 473 // 474 // Use the discrete set type to define a set of values of a supported builtin type 475 // (`PbmBuiltinType_enum`), for example a set of integers 476 // (XSD\_INT) or a set of unsigned long values (XSD\_LONG). 477 // See `PbmBuiltinGenericType_enum*.*VMW_SET`. 478 // 479 // A discrete set of values is declared as an array of <code>xsd:anyType</code> values. 480 // - When you define a property instance for a storage profile requirement 481 // and pass an array of values to the Server, you must set the array elements 482 // to values of the appropriate datatype. 483 // - When you read a discrete set from a property instance for a storage profile 484 // capability, you must cast the <code>xsd:anyType</code> array element values 485 // to the appropriate datatype. 486 // 487 // This structure may be used only with operations rendered under `/pbm`. 488 type PbmCapabilityDiscreteSet struct { 489 types.DynamicData 490 491 // Array of values for the set. 492 // 493 // The values must be one of the supported datatypes 494 // as defined in `PbmBuiltinType_enum` or `PbmBuiltinGenericType_enum`. 495 Values []types.AnyType `xml:"values,typeattr" json:"values"` 496 } 497 498 func init() { 499 types.Add("pbm:PbmCapabilityDiscreteSet", reflect.TypeOf((*PbmCapabilityDiscreteSet)(nil)).Elem()) 500 } 501 502 // Generic type definition for capabilities. 503 // 504 // Indicates how a collection of values of a specific datatype 505 // (`PbmCapabilityTypeInfo.typeName`) 506 // will be interpreted. 507 // 508 // This structure may be used only with operations rendered under `/pbm`. 509 type PbmCapabilityGenericTypeInfo struct { 510 PbmCapabilityTypeInfo 511 512 // Name of the generic type. 513 // 514 // Must correspond to one of the values defined in 515 // `PbmBuiltinGenericType_enum`. 516 GenericTypeName string `xml:"genericTypeName" json:"genericTypeName"` 517 } 518 519 func init() { 520 types.Add("pbm:PbmCapabilityGenericTypeInfo", reflect.TypeOf((*PbmCapabilityGenericTypeInfo)(nil)).Elem()) 521 } 522 523 // The `PbmCapabilityInstance` data object defines a storage capability instance. 524 // 525 // Metadata for the capability is described in `PbmCapabilityMetadata`. 526 // 527 // This structure may be used only with operations rendered under `/pbm`. 528 type PbmCapabilityInstance struct { 529 types.DynamicData 530 531 // Identifier for the capability. 532 // 533 // The identifier value corresponds to 534 // `PbmCapabilityMetadata*.*PbmCapabilityMetadata.id`. 535 Id PbmCapabilityMetadataUniqueId `xml:"id" json:"id"` 536 // Constraints on the properties that comprise this capability. 537 // 538 // Each entry represents a constraint on one or more of the properties that 539 // constitute this capability. A datum must meet one of the 540 // constraints to be compliant. 541 Constraint []PbmCapabilityConstraintInstance `xml:"constraint" json:"constraint"` 542 } 543 544 func init() { 545 types.Add("pbm:PbmCapabilityInstance", reflect.TypeOf((*PbmCapabilityInstance)(nil)).Elem()) 546 } 547 548 // Metadata for a single unique setting defined by a provider. 549 // 550 // A simple setting is a setting with one property. 551 // A complex setting contains more than one property. 552 // 553 // This structure may be used only with operations rendered under `/pbm`. 554 type PbmCapabilityMetadata struct { 555 types.DynamicData 556 557 // Unique identifier for the capability. 558 Id PbmCapabilityMetadataUniqueId `xml:"id" json:"id"` 559 // Capability name and description 560 Summary PbmExtendedElementDescription `xml:"summary" json:"summary"` 561 // Indicates whether incorporating given capability is mandatory during creation of 562 // profile. 563 Mandatory *bool `xml:"mandatory" json:"mandatory,omitempty"` 564 // The flag hint dictates the interpretation of constraints specified for this capability 565 // in a storage policy profile. 566 // 567 // If hint is false, then constraints will affect placement. 568 // If hint is true, constraints will not affect placement, 569 // but will still be passed to provisioning operations if the provider understands the 570 // relevant namespace. Optional property, false if not set. 571 Hint *bool `xml:"hint" json:"hint,omitempty"` 572 // Property Id of the key property, if this capability represents a key 573 // value pair. 574 // 575 // Value is empty string if not set. 576 KeyId string `xml:"keyId,omitempty" json:"keyId,omitempty"` 577 // Flag to indicate if multiple constraints are allowed in the capability 578 // instance. 579 // 580 // False if not set. 581 AllowMultipleConstraints *bool `xml:"allowMultipleConstraints" json:"allowMultipleConstraints,omitempty"` 582 // Metadata for the properties that comprise this capability. 583 PropertyMetadata []PbmCapabilityPropertyMetadata `xml:"propertyMetadata" json:"propertyMetadata"` 584 } 585 586 func init() { 587 types.Add("pbm:PbmCapabilityMetadata", reflect.TypeOf((*PbmCapabilityMetadata)(nil)).Elem()) 588 } 589 590 // The `PbmCapabilityMetadataPerCategory` 591 // data object defines capability metadata for a profile subcategory. 592 // 593 // This structure may be used only with operations rendered under `/pbm`. 594 type PbmCapabilityMetadataPerCategory struct { 595 types.DynamicData 596 597 // Profile subcategory to which the capability metadata belongs. 598 // 599 // The subcategory is specified by the storage provider. 600 SubCategory string `xml:"subCategory" json:"subCategory"` 601 // Capability metadata for this category 602 CapabilityMetadata []PbmCapabilityMetadata `xml:"capabilityMetadata" json:"capabilityMetadata"` 603 } 604 605 func init() { 606 types.Add("pbm:PbmCapabilityMetadataPerCategory", reflect.TypeOf((*PbmCapabilityMetadataPerCategory)(nil)).Elem()) 607 } 608 609 // This structure may be used only with operations rendered under `/pbm`. 610 type PbmCapabilityMetadataUniqueId struct { 611 types.DynamicData 612 613 // Namespace to which this capability belongs. 614 // 615 // Must be the same as 616 // { @link CapabilityObjectSchema#namespace } defined for this 617 // capability 618 Namespace string `xml:"namespace" json:"namespace"` 619 // unique identifier for this capability within given namespace 620 Id string `xml:"id" json:"id"` 621 } 622 623 func init() { 624 types.Add("pbm:PbmCapabilityMetadataUniqueId", reflect.TypeOf((*PbmCapabilityMetadataUniqueId)(nil)).Elem()) 625 } 626 627 // Name space information for the capability metadata schema. 628 // 629 // NOTE: Name spaces are required to be globally unique across resource types. 630 // A same vendor can register multiple name spaces for same resource type or 631 // for different resource type, but the schema namespace URL must be unique 632 // for each of these cases. 633 // A CapabilityMetadata object is uniquely identified based on the namespace 634 // it belongs to and it's unique identifier within that namespace. 635 // 636 // This structure may be used only with operations rendered under `/pbm`. 637 type PbmCapabilityNamespaceInfo struct { 638 types.DynamicData 639 640 // Schema version 641 Version string `xml:"version" json:"version"` 642 // Schema namespace. 643 Namespace string `xml:"namespace" json:"namespace"` 644 Info *PbmExtendedElementDescription `xml:"info,omitempty" json:"info,omitempty"` 645 } 646 647 func init() { 648 types.Add("pbm:PbmCapabilityNamespaceInfo", reflect.TypeOf((*PbmCapabilityNamespaceInfo)(nil)).Elem()) 649 } 650 651 // The `PbmCapabilityProfile` data object defines 652 // capability-based profiles. 653 // 654 // A capability-based profile is derived 655 // from tag-based storage capabilities or from vSAN storage capabilities. 656 // 657 // This structure may be used only with operations rendered under `/pbm`. 658 type PbmCapabilityProfile struct { 659 PbmProfile 660 661 // Indicates whether the profile is requirement 662 // profile, a resource profile or a data service profile. 663 // 664 // The <code>profileCategory</code> 665 // is a string value that corresponds to one of the 666 // `PbmProfileCategoryEnum_enum` values. 667 // - REQUIREMENT profile - Defines the storage constraints applied 668 // to virtual machine placement. Requirements are defined by 669 // the user and can be associated with virtual machines and virtual 670 // disks. During provisioning, you can use a requirements profile 671 // for compliance and placement checking to support 672 // selection and configuration of resources. 673 // - RESOURCE profile - Specifies system-defined storage capabilities. 674 // You cannot modify a resource profile. You cannot associate a resource 675 // profile with vSphere entities, use it during provisioning, or target 676 // entities for resource selection or configuration. 677 // This type of profile gives the user visibility into the capabilities 678 // supported by the storage provider. 679 // - DATA\_SERVICE\_POLICY - Indicates a data service policy that can 680 // be embedded into another storage policy. Policies of this type can't 681 // be assigned to Virtual Machines or Virtual Disks. This policy cannot 682 // be used for compliance checking. 683 ProfileCategory string `xml:"profileCategory" json:"profileCategory"` 684 // Type of the target resource to which the capability information applies. 685 // 686 // A fixed enum that defines resource types for which capabilities can be defined 687 // see `PbmProfileResourceType`, `PbmProfileResourceTypeEnum_enum` 688 ResourceType PbmProfileResourceType `xml:"resourceType" json:"resourceType"` 689 // Subprofiles that describe storage requirements or storage provider capabilities, 690 // depending on the profile category (REQUIREMENT or RESOURCE). 691 Constraints BasePbmCapabilityConstraints `xml:"constraints,typeattr" json:"constraints"` 692 // Generation ID is used to communicate the current version of the profile to VASA 693 // providers. 694 // 695 // It is only applicable to REQUIREMENT profile types. Every time a 696 // requirement profile is edited, the Server will increment the generationId. You 697 // do not need to set the generationID. When an object is created (or 698 // reconfigured), the Server will send the requirement profile content, profile ID and 699 // the generationID to VASA provider. 700 GenerationId int64 `xml:"generationId,omitempty" json:"generationId,omitempty"` 701 // Deprecated since it is not supported. 702 // 703 // Not supported in this release. 704 IsDefault bool `xml:"isDefault" json:"isDefault"` 705 // Indicates the type of system pre-created default profile. 706 // 707 // This will be set only for system pre-created default profiles. And 708 // this is not set for RESOURCE profiles. 709 SystemCreatedProfileType string `xml:"systemCreatedProfileType,omitempty" json:"systemCreatedProfileType,omitempty"` 710 // This property is set only for data service policy. 711 // 712 // Indicates the line of service 713 // `PbmLineOfServiceInfoLineOfServiceEnum_enum` of the data service policy. 714 LineOfService string `xml:"lineOfService,omitempty" json:"lineOfService,omitempty"` 715 } 716 717 func init() { 718 types.Add("pbm:PbmCapabilityProfile", reflect.TypeOf((*PbmCapabilityProfile)(nil)).Elem()) 719 } 720 721 // The `PbmCapabilityProfileCreateSpec` describes storage requirements. 722 // 723 // Use this data object to create a `PbmCapabilityProfile`. 724 // 725 // This structure may be used only with operations rendered under `/pbm`. 726 type PbmCapabilityProfileCreateSpec struct { 727 types.DynamicData 728 729 // Name of the capability based profile to be created. 730 // 731 // The maximum length of the name is 80 characters. 732 Name string `xml:"name" json:"name"` 733 // Text description associated with the profile. 734 Description string `xml:"description,omitempty" json:"description,omitempty"` 735 // Category specifies the type of policy to be created. 736 // 737 // This can be REQUIREMENT from 738 // `PbmProfileCategoryEnum_enum` 739 // or null when creating a storage policy. And it can be DATA\_SERVICE\_POLICY from 740 // `PbmProfileCategoryEnum_enum` 741 // when creating a data service policy. RESOURCE from `PbmProfileCategoryEnum_enum` 742 // is not allowed as resource profile is created by the system. 743 Category string `xml:"category,omitempty" json:"category,omitempty"` 744 // Deprecated as of vSphere API 6.5. 745 // 746 // Specifies the type of resource to which the profile applies. 747 // 748 // The only legal value is STORAGE - deprecated. 749 ResourceType PbmProfileResourceType `xml:"resourceType" json:"resourceType"` 750 // Set of subprofiles that define the storage requirements. 751 // 752 // A subprofile corresponds to a rule set in the vSphere Web Client. 753 Constraints BasePbmCapabilityConstraints `xml:"constraints,typeattr" json:"constraints"` 754 } 755 756 func init() { 757 types.Add("pbm:PbmCapabilityProfileCreateSpec", reflect.TypeOf((*PbmCapabilityProfileCreateSpec)(nil)).Elem()) 758 } 759 760 // Fault used when a datastore doesnt match the capability profile property instance in requirements profile. 761 // 762 // This structure may be used only with operations rendered under `/pbm`. 763 type PbmCapabilityProfilePropertyMismatchFault struct { 764 PbmPropertyMismatchFault 765 766 // The property instance in the resource profile that does not match. 767 ResourcePropertyInstance PbmCapabilityPropertyInstance `xml:"resourcePropertyInstance" json:"resourcePropertyInstance"` 768 } 769 770 func init() { 771 types.Add("pbm:PbmCapabilityProfilePropertyMismatchFault", reflect.TypeOf((*PbmCapabilityProfilePropertyMismatchFault)(nil)).Elem()) 772 } 773 774 type PbmCapabilityProfilePropertyMismatchFaultFault BasePbmCapabilityProfilePropertyMismatchFault 775 776 func init() { 777 types.Add("pbm:PbmCapabilityProfilePropertyMismatchFaultFault", reflect.TypeOf((*PbmCapabilityProfilePropertyMismatchFaultFault)(nil)).Elem()) 778 } 779 780 // The `PbmCapabilityProfileUpdateSpec` data object 781 // contains data that you use to update a storage profile. 782 // 783 // This structure may be used only with operations rendered under `/pbm`. 784 type PbmCapabilityProfileUpdateSpec struct { 785 types.DynamicData 786 787 // Specifies a new profile name. 788 Name string `xml:"name,omitempty" json:"name,omitempty"` 789 // Specifies a new profile description. 790 Description string `xml:"description,omitempty" json:"description,omitempty"` 791 // Specifies one or more subprofiles. 792 // 793 // A subprofile defines one or more 794 // storage requirements. 795 Constraints BasePbmCapabilityConstraints `xml:"constraints,omitempty,typeattr" json:"constraints,omitempty"` 796 } 797 798 func init() { 799 types.Add("pbm:PbmCapabilityProfileUpdateSpec", reflect.TypeOf((*PbmCapabilityProfileUpdateSpec)(nil)).Elem()) 800 } 801 802 // The `PbmCapabilityPropertyInstance` data object describes a virtual machine 803 // storage requirement. 804 // 805 // A storage requirement is based on the storage capability 806 // described in the `PbmCapabilityPropertyMetadata` and in the 807 // datastore profile property instance. 808 // 809 // This structure may be used only with operations rendered under `/pbm`. 810 type PbmCapabilityPropertyInstance struct { 811 types.DynamicData 812 813 // Requirement property identifier. 814 // 815 // This identifier corresponds to the 816 // storage capability metadata identifier 817 // (`PbmCapabilityPropertyMetadata*.*PbmCapabilityPropertyMetadata.id`). 818 Id string `xml:"id" json:"id"` 819 // Operator for the values. 820 // 821 // Currently only support NOT operator for 822 // tag namespace 823 // See operator definition in (`PbmCapabilityOperator_enum`). 824 Operator string `xml:"operator,omitempty" json:"operator,omitempty"` 825 // Property value. 826 // 827 // You must specify the value. 828 // A property value is one value or a collection of values. 829 // - A single property value is expressed as a scalar value. 830 // - A collection of values is expressed as a `PbmCapabilityDiscreteSet` 831 // or a `PbmCapabilityRange` of values. 832 // 833 // The datatype of each value must be one of the 834 // `PbmBuiltinType_enum` datatypes. 835 // If the property consists of a collection of values, 836 // the interpretation of those values is determined by the 837 // `PbmCapabilityGenericTypeInfo`. 838 // 839 // Type information for a property instance is described in the property metadata 840 // (`PbmCapabilityPropertyMetadata*.*PbmCapabilityPropertyMetadata.type`). 841 Value types.AnyType `xml:"value,typeattr" json:"value"` 842 } 843 844 func init() { 845 types.Add("pbm:PbmCapabilityPropertyInstance", reflect.TypeOf((*PbmCapabilityPropertyInstance)(nil)).Elem()) 846 } 847 848 // The `PbmCapabilityPropertyMetadata` data object describes storage capability. 849 // 850 // An instance of property metadata may apply to many property instances 851 // (`PbmCapabilityPropertyInstance`). 852 // 853 // This structure may be used only with operations rendered under `/pbm`. 854 type PbmCapabilityPropertyMetadata struct { 855 types.DynamicData 856 857 // Property identifier. 858 // 859 // Should be unique within the definition of the 860 // capability. Property instances refer to this identifier 861 // (`PbmCapabilityPropertyInstance*.*PbmCapabilityPropertyInstance.id`). 862 Id string `xml:"id" json:"id"` 863 // Property name and description. 864 // - The <code>summary.label</code> property 865 // (`PbmExtendedElementDescription.label`) 866 // contains property 'name' in server locale. 867 // - The <code>summary.summary</code> property 868 // (`PbmExtendedElementDescription.summary`) 869 // contains property 'description' in server locale. 870 // - The <code>summary.messageCatalogKeyPrefix</code> property 871 // (`PbmExtendedElementDescription.messageCatalogKeyPrefix`) 872 // contains unique prefix for this property within given message catalog. 873 // Prefix format: <capability\_unique\_identifier>.<property\_id> 874 // capability\_unique\_identifier -- string representation of 875 // `PbmCapabilityMetadataUniqueId` which globally identifies given 876 // capability metadata definition uniquely. 877 // property\_id -- 'id' of this property `PbmCapabilityPropertyMetadata.id` 878 // Eg www.emc.com.storage.Recovery.Recovery\_site 879 // www.emc.com.storage.Recovery.RPO 880 // www.emc.com.storage.Recovery.RTO 881 Summary PbmExtendedElementDescription `xml:"summary" json:"summary"` 882 // Indicates whether incorporating given capability is mandatory during creation of 883 // profile. 884 Mandatory bool `xml:"mandatory" json:"mandatory"` 885 // Type information for the capability. 886 // 887 // The type of a property value 888 // (`PbmCapabilityPropertyInstance*.*PbmCapabilityPropertyInstance.value`) 889 // is specified as a builtin datatype and may also specify the interpretation of a 890 // collection of values of that datatype. 891 // - `PbmCapabilityPropertyMetadata.type*.*PbmCapabilityTypeInfo.typeName` 892 // specifies the `PbmBuiltinType_enum`. 893 // - `PbmCapabilityPropertyMetadata.type*.*PbmCapabilityGenericTypeInfo.genericTypeName` 894 // indicates how a collection of values of the specified datatype will be interpreted 895 // (`PbmBuiltinGenericType_enum`). 896 Type BasePbmCapabilityTypeInfo `xml:"type,omitempty,typeattr" json:"type,omitempty"` 897 // Default value, if any, that the property will assume when not 898 // constrained by requirements. 899 // 900 // This object must be of the 901 // `PbmCapabilityPropertyMetadata.type` 902 // defined for the property. 903 DefaultValue types.AnyType `xml:"defaultValue,omitempty,typeattr" json:"defaultValue,omitempty"` 904 // All legal values that the property may take on, across all 905 // implementations of the property. 906 // 907 // This definition of legal values is not 908 // determined by any particular resource configuration; rather it is 909 // inherent to the definition of the property. If undefined, then any value 910 // of the correct type is legal. This object must be a generic container for 911 // the `PbmCapabilityPropertyMetadata.type` 912 // defined for the property; 913 // see `PbmBuiltinGenericType_enum` 914 // for the supported generic container types. 915 AllowedValue types.AnyType `xml:"allowedValue,omitempty,typeattr" json:"allowedValue,omitempty"` 916 // A hint for data-driven systems that assist in authoring requirements 917 // constraints. 918 // 919 // Acceptable values defined by 920 // `PbmBuiltinGenericType_enum`. 921 // A property will typically only have constraints of a given type in 922 // requirement profiles, even if it is likely to use constraints of 923 // different types across capability profiles. This value, if specified, 924 // specifies the expected kind of constraint used in requirement profiles. 925 // Considerations for using this information: 926 // - This is only a hint; any properly formed constraint 927 // (see `PbmCapabilityPropertyInstance.value`) 928 // is still valid for a requirement profile. 929 // - If VMW\_SET is hinted, then a single value matching the property metadata type is 930 // also an expected form of constraint, as the latter is an allowed convenience 931 // for expressing a single-member set. 932 // - If this hint is not specified, then the authoring system may default to a form of 933 // constraint determined by its own criteria. 934 RequirementsTypeHint string `xml:"requirementsTypeHint,omitempty" json:"requirementsTypeHint,omitempty"` 935 } 936 937 func init() { 938 types.Add("pbm:PbmCapabilityPropertyMetadata", reflect.TypeOf((*PbmCapabilityPropertyMetadata)(nil)).Elem()) 939 } 940 941 // The `PbmCapabilityRange` data object defines a range of values for storage property 942 // instances (`PbmCapabilityPropertyInstance`). 943 // 944 // Use the range type to define a range of values of a supported builtin type, 945 // for example range<int>, range<long>, or range<timespan>. 946 // You can specify a partial range by omitting one of the properties, min or max. 947 // 948 // This structure may be used only with operations rendered under `/pbm`. 949 type PbmCapabilityRange struct { 950 types.DynamicData 951 952 // Minimum value of range. 953 // 954 // Must be one of the supported 955 // datatypes as defined in `PbmBuiltinType_enum`. 956 // Must be the same datatype as min. 957 Min types.AnyType `xml:"min,typeattr" json:"min"` 958 // Maximum value of range. 959 // 960 // Must be one of the supported 961 // datatypes as defined in `PbmBuiltinType_enum`. 962 // Must be the same datatype as max. 963 Max types.AnyType `xml:"max,typeattr" json:"max"` 964 } 965 966 func init() { 967 types.Add("pbm:PbmCapabilityRange", reflect.TypeOf((*PbmCapabilityRange)(nil)).Elem()) 968 } 969 970 // Capability Schema information 971 // 972 // This structure may be used only with operations rendered under `/pbm`. 973 type PbmCapabilitySchema struct { 974 types.DynamicData 975 976 VendorInfo PbmCapabilitySchemaVendorInfo `xml:"vendorInfo" json:"vendorInfo"` 977 NamespaceInfo PbmCapabilityNamespaceInfo `xml:"namespaceInfo" json:"namespaceInfo"` 978 // Service type for the schema. 979 // 980 // Do not use Category as each service needs to have its own schema version. 981 // 982 // If omitted, this schema specifies persistence capabilities. 983 LineOfService BasePbmLineOfServiceInfo `xml:"lineOfService,omitempty,typeattr" json:"lineOfService,omitempty"` 984 // Capability metadata organized by category 985 CapabilityMetadataPerCategory []PbmCapabilityMetadataPerCategory `xml:"capabilityMetadataPerCategory" json:"capabilityMetadataPerCategory"` 986 } 987 988 func init() { 989 types.Add("pbm:PbmCapabilitySchema", reflect.TypeOf((*PbmCapabilitySchema)(nil)).Elem()) 990 } 991 992 // Information about vendor/owner of the capability metadata schema 993 // 994 // This structure may be used only with operations rendered under `/pbm`. 995 type PbmCapabilitySchemaVendorInfo struct { 996 types.DynamicData 997 998 // Unique identifier for the vendor who owns the given capability 999 // schema definition 1000 VendorUuid string `xml:"vendorUuid" json:"vendorUuid"` 1001 // Captures name and description information about the vendor/owner of 1002 // the schema. 1003 // - The <code>summary.label</code> property 1004 // (`PbmExtendedElementDescription.label`) 1005 // contains vendor name information in server locale. 1006 // - The <code>summary.summary</code> property 1007 // (`PbmExtendedElementDescription.summary`) 1008 // contains vendor description string in server locale. 1009 // - The <code>summary.messageCatalogKeyPrefix</code> property 1010 // (`PbmExtendedElementDescription.messageCatalogKeyPrefix`) 1011 // contains unique prefix for the vendor information within given message 1012 // catalog. 1013 Info PbmExtendedElementDescription `xml:"info" json:"info"` 1014 } 1015 1016 func init() { 1017 types.Add("pbm:PbmCapabilitySchemaVendorInfo", reflect.TypeOf((*PbmCapabilitySchemaVendorInfo)(nil)).Elem()) 1018 } 1019 1020 // A `PbmCapabilitySubProfile` 1021 // is a section within a profile that aggregates one or more capability 1022 // instances. 1023 // 1024 // Capability instances define storage constraints. 1025 // 1026 // All constraints within a subprofile are ANDed by default. 1027 // When you perform compliance checking on a virtual machine or virtual 1028 // disk, all of the constraints must be satisfied by the storage capabilities. 1029 // 1030 // This structure may be used only with operations rendered under `/pbm`. 1031 type PbmCapabilitySubProfile struct { 1032 types.DynamicData 1033 1034 // Subprofile name. 1035 Name string `xml:"name" json:"name"` 1036 // List of capability instances. 1037 Capability []PbmCapabilityInstance `xml:"capability" json:"capability"` 1038 // Indicates whether the source policy profile allows creating a virtual machine 1039 // or virtual disk that may be non-compliant. 1040 ForceProvision *bool `xml:"forceProvision" json:"forceProvision,omitempty"` 1041 } 1042 1043 func init() { 1044 types.Add("pbm:PbmCapabilitySubProfile", reflect.TypeOf((*PbmCapabilitySubProfile)(nil)).Elem()) 1045 } 1046 1047 // The `PbmCapabilitySubProfileConstraints` data object defines a group 1048 // of storage subprofiles. 1049 // 1050 // Subprofile usage depends on the type of profile 1051 // (`PbmCapabilityProfile*.*PbmCapabilityProfile.profileCategory`). 1052 // - For a REQUIREMENTS profile, each subprofile defines storage requirements. 1053 // A Storage Policy API requirements subprofile corresponds to a vSphere Web Client 1054 // rule set. 1055 // - For a RESOURCE profile, each subprofile defines storage capabilities. 1056 // Storage capabilities are read-only. 1057 // 1058 // This structure may be used only with operations rendered under `/pbm`. 1059 type PbmCapabilitySubProfileConstraints struct { 1060 PbmCapabilityConstraints 1061 1062 // Aggregation of one or more subprofiles. 1063 // 1064 // The relationship among all subprofiles is "OR". When you perform 1065 // compliance checking on a profile that contains more than one subprofile, 1066 // a non-compliant result for any one of the subprofiles will produce a 1067 // non-compliant result for the operation. 1068 SubProfiles []PbmCapabilitySubProfile `xml:"subProfiles" json:"subProfiles"` 1069 } 1070 1071 func init() { 1072 types.Add("pbm:PbmCapabilitySubProfileConstraints", reflect.TypeOf((*PbmCapabilitySubProfileConstraints)(nil)).Elem()) 1073 } 1074 1075 // The `PbmCapabilityTimeSpan` data object defines a time value and time unit, 1076 // for example 10 hours or 5 minutes. 1077 // 1078 // See 1079 // `PbmBuiltinType_enum*.*VMW_TIMESPAN`. 1080 // 1081 // This structure may be used only with operations rendered under `/pbm`. 1082 type PbmCapabilityTimeSpan struct { 1083 types.DynamicData 1084 1085 // Time value. 1086 // 1087 // Must be a positive integer. 1088 Value int32 `xml:"value" json:"value"` 1089 // Unit value for time. 1090 // 1091 // The string value must correspond 1092 // to one of the `PbmCapabilityTimeUnitType_enum` values. 1093 Unit string `xml:"unit" json:"unit"` 1094 } 1095 1096 func init() { 1097 types.Add("pbm:PbmCapabilityTimeSpan", reflect.TypeOf((*PbmCapabilityTimeSpan)(nil)).Elem()) 1098 } 1099 1100 // The `PbmCapabilityTypeInfo` data object defines the datatype for a requirement 1101 // or capability property. 1102 // 1103 // See `PbmCapabilityPropertyMetadata`. 1104 // 1105 // This structure may be used only with operations rendered under `/pbm`. 1106 type PbmCapabilityTypeInfo struct { 1107 types.DynamicData 1108 1109 // Datatype for a property. 1110 // 1111 // Must be one of the types defined 1112 // in `PbmBuiltinType_enum`. 1113 // 1114 // A property value might consist of a collection of values of the specified 1115 // datatype. The interpretation of the collection is determined by the 1116 // generic type (`PbmCapabilityGenericTypeInfo.genericTypeName`). 1117 // The generic type indicates how a collection of values 1118 // of the specified datatype will be interpreted. See the descriptions of the 1119 // `PbmBuiltinType_enum` definitions. 1120 TypeName string `xml:"typeName" json:"typeName"` 1121 } 1122 1123 func init() { 1124 types.Add("pbm:PbmCapabilityTypeInfo", reflect.TypeOf((*PbmCapabilityTypeInfo)(nil)).Elem()) 1125 } 1126 1127 // This structure may be used only with operations rendered under `/pbm`. 1128 type PbmCapabilityVendorNamespaceInfo struct { 1129 types.DynamicData 1130 1131 VendorInfo PbmCapabilitySchemaVendorInfo `xml:"vendorInfo" json:"vendorInfo"` 1132 NamespaceInfo PbmCapabilityNamespaceInfo `xml:"namespaceInfo" json:"namespaceInfo"` 1133 } 1134 1135 func init() { 1136 types.Add("pbm:PbmCapabilityVendorNamespaceInfo", reflect.TypeOf((*PbmCapabilityVendorNamespaceInfo)(nil)).Elem()) 1137 } 1138 1139 // This structure may be used only with operations rendered under `/pbm`. 1140 type PbmCapabilityVendorResourceTypeInfo struct { 1141 types.DynamicData 1142 1143 // Resource type for which given vendor has registered given namespace 1144 // along with capability metadata that belongs to the namespace. 1145 // 1146 // Must match one of the values for enum `PbmProfileResourceTypeEnum_enum` 1147 ResourceType string `xml:"resourceType" json:"resourceType"` 1148 // List of all vendorInfo <--> namespaceInfo tuples that are registered for 1149 // given resource type 1150 VendorNamespaceInfo []PbmCapabilityVendorNamespaceInfo `xml:"vendorNamespaceInfo" json:"vendorNamespaceInfo"` 1151 } 1152 1153 func init() { 1154 types.Add("pbm:PbmCapabilityVendorResourceTypeInfo", reflect.TypeOf((*PbmCapabilityVendorResourceTypeInfo)(nil)).Elem()) 1155 } 1156 1157 type PbmCheckCompatibility PbmCheckCompatibilityRequestType 1158 1159 func init() { 1160 types.Add("pbm:PbmCheckCompatibility", reflect.TypeOf((*PbmCheckCompatibility)(nil)).Elem()) 1161 } 1162 1163 // The parameters of `PbmPlacementSolver.PbmCheckCompatibility`. 1164 // 1165 // This structure may be used only with operations rendered under `/pbm`. 1166 type PbmCheckCompatibilityRequestType struct { 1167 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1168 // Candidate list of hubs, either datastores or storage pods or a 1169 // mix. If this parameter is not specified, the Server uses all 1170 // of the datastores and storage pods for placement compatibility 1171 // checking. 1172 HubsToSearch []PbmPlacementHub `xml:"hubsToSearch,omitempty" json:"hubsToSearch,omitempty"` 1173 // Storage requirement profile. 1174 Profile PbmProfileId `xml:"profile" json:"profile"` 1175 } 1176 1177 func init() { 1178 types.Add("pbm:PbmCheckCompatibilityRequestType", reflect.TypeOf((*PbmCheckCompatibilityRequestType)(nil)).Elem()) 1179 } 1180 1181 type PbmCheckCompatibilityResponse struct { 1182 Returnval []PbmPlacementCompatibilityResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 1183 } 1184 1185 type PbmCheckCompatibilityWithSpec PbmCheckCompatibilityWithSpecRequestType 1186 1187 func init() { 1188 types.Add("pbm:PbmCheckCompatibilityWithSpec", reflect.TypeOf((*PbmCheckCompatibilityWithSpec)(nil)).Elem()) 1189 } 1190 1191 // The parameters of `PbmPlacementSolver.PbmCheckCompatibilityWithSpec`. 1192 // 1193 // This structure may be used only with operations rendered under `/pbm`. 1194 type PbmCheckCompatibilityWithSpecRequestType struct { 1195 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1196 // Candidate list of hubs, either datastores or storage pods 1197 // or a mix. If this parameter is not specified, the Server uses all of the 1198 // datastores and storage pods for placement compatibility checking. 1199 HubsToSearch []PbmPlacementHub `xml:"hubsToSearch,omitempty" json:"hubsToSearch,omitempty"` 1200 // Specification for a capability based profile. 1201 ProfileSpec PbmCapabilityProfileCreateSpec `xml:"profileSpec" json:"profileSpec"` 1202 } 1203 1204 func init() { 1205 types.Add("pbm:PbmCheckCompatibilityWithSpecRequestType", reflect.TypeOf((*PbmCheckCompatibilityWithSpecRequestType)(nil)).Elem()) 1206 } 1207 1208 type PbmCheckCompatibilityWithSpecResponse struct { 1209 Returnval []PbmPlacementCompatibilityResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 1210 } 1211 1212 type PbmCheckCompliance PbmCheckComplianceRequestType 1213 1214 func init() { 1215 types.Add("pbm:PbmCheckCompliance", reflect.TypeOf((*PbmCheckCompliance)(nil)).Elem()) 1216 } 1217 1218 // The parameters of `PbmComplianceManager.PbmCheckCompliance`. 1219 // 1220 // This structure may be used only with operations rendered under `/pbm`. 1221 type PbmCheckComplianceRequestType struct { 1222 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1223 // One or more references to storage entities. 1224 // You can specify virtual machines and virtual disks 1225 // A maximum of 1000 virtual machines and/or virtual disks can be specified 1226 // in a call. The results of calling the checkCompliance API with 1227 // more than a 1000 entities is undefined. 1228 // - If the list of entities also contains datastores, the Server 1229 // will ignore the datastores. 1230 // - If the list contains valid and invalid entities, the Server ignores 1231 // the invalid entities and returns results for the valid entities. 1232 // Invalid entities are entities that are not in the vCenter inventory. 1233 // - If the list contains only datastores, the method throws 1234 // an <code>InvalidArgument</code> fault. 1235 // - If the list contains virtual machines and disks and the entities 1236 // are invalid or have been deleted by the time of the request, the method 1237 // throws an <code>InvalidArgument</code> fault. 1238 // 1239 // If an entity does not have an associated storage profile, the entity 1240 // is removed from the list. 1241 Entities []PbmServerObjectRef `xml:"entities" json:"entities"` 1242 // Not used. If specified, the Server ignores the value. 1243 // The Server uses the profiles associated with the specified entities. 1244 Profile *PbmProfileId `xml:"profile,omitempty" json:"profile,omitempty"` 1245 } 1246 1247 func init() { 1248 types.Add("pbm:PbmCheckComplianceRequestType", reflect.TypeOf((*PbmCheckComplianceRequestType)(nil)).Elem()) 1249 } 1250 1251 type PbmCheckComplianceResponse struct { 1252 Returnval []PbmComplianceResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 1253 } 1254 1255 type PbmCheckRequirements PbmCheckRequirementsRequestType 1256 1257 func init() { 1258 types.Add("pbm:PbmCheckRequirements", reflect.TypeOf((*PbmCheckRequirements)(nil)).Elem()) 1259 } 1260 1261 // The parameters of `PbmPlacementSolver.PbmCheckRequirements`. 1262 // 1263 // This structure may be used only with operations rendered under `/pbm`. 1264 type PbmCheckRequirementsRequestType struct { 1265 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1266 // Candidate list of hubs, either datastores or storage pods 1267 // or a mix. If this parameter is not specified, the Server uses all of the 1268 // datastores and storage pods for placement compatibility checking. 1269 HubsToSearch []PbmPlacementHub `xml:"hubsToSearch,omitempty" json:"hubsToSearch,omitempty"` 1270 // reference to the object being placed. Should be null when a new 1271 // object is being provisioned. Should be specified when placement compatibility is being checked 1272 // for an existing object. Supported objects are 1273 // `virtualMachine`, 1274 // `virtualMachineAndDisks`, 1275 // `virtualDiskId`, 1276 // `virtualDiskUUID` 1277 PlacementSubjectRef *PbmServerObjectRef `xml:"placementSubjectRef,omitempty" json:"placementSubjectRef,omitempty"` 1278 // Requirements including the policy requirements, compute 1279 // requirements and capacity requirements. It is invalid to specify no requirements. It is also 1280 // invalid to specify duplicate requirements or multiple conflicting requirements such as 1281 // specifying both `PbmPlacementCapabilityConstraintsRequirement` and 1282 // `PbmPlacementCapabilityProfileRequirement`. 1283 PlacementSubjectRequirement []BasePbmPlacementRequirement `xml:"placementSubjectRequirement,omitempty,typeattr" json:"placementSubjectRequirement,omitempty"` 1284 } 1285 1286 func init() { 1287 types.Add("pbm:PbmCheckRequirementsRequestType", reflect.TypeOf((*PbmCheckRequirementsRequestType)(nil)).Elem()) 1288 } 1289 1290 type PbmCheckRequirementsResponse struct { 1291 Returnval []PbmPlacementCompatibilityResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 1292 } 1293 1294 type PbmCheckRollupCompliance PbmCheckRollupComplianceRequestType 1295 1296 func init() { 1297 types.Add("pbm:PbmCheckRollupCompliance", reflect.TypeOf((*PbmCheckRollupCompliance)(nil)).Elem()) 1298 } 1299 1300 // The parameters of `PbmComplianceManager.PbmCheckRollupCompliance`. 1301 // 1302 // This structure may be used only with operations rendered under `/pbm`. 1303 type PbmCheckRollupComplianceRequestType struct { 1304 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1305 // One or more references to virtual machines. 1306 // A maximum of 1000 virtual machines can be specified 1307 // in a call. The results of calling the checkRollupCompliance API with 1308 // more than a 1000 entities is undefined. 1309 Entity []PbmServerObjectRef `xml:"entity" json:"entity"` 1310 } 1311 1312 func init() { 1313 types.Add("pbm:PbmCheckRollupComplianceRequestType", reflect.TypeOf((*PbmCheckRollupComplianceRequestType)(nil)).Elem()) 1314 } 1315 1316 type PbmCheckRollupComplianceResponse struct { 1317 Returnval []PbmRollupComplianceResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 1318 } 1319 1320 // Super class for all compatibility check faults. 1321 // 1322 // This structure may be used only with operations rendered under `/pbm`. 1323 type PbmCompatibilityCheckFault struct { 1324 PbmFault 1325 1326 // Placement Hub 1327 Hub PbmPlacementHub `xml:"hub" json:"hub"` 1328 } 1329 1330 func init() { 1331 types.Add("pbm:PbmCompatibilityCheckFault", reflect.TypeOf((*PbmCompatibilityCheckFault)(nil)).Elem()) 1332 } 1333 1334 type PbmCompatibilityCheckFaultFault BasePbmCompatibilityCheckFault 1335 1336 func init() { 1337 types.Add("pbm:PbmCompatibilityCheckFaultFault", reflect.TypeOf((*PbmCompatibilityCheckFaultFault)(nil)).Elem()) 1338 } 1339 1340 // Additional information on the effects of backend resources and 1341 // operations on the storage object. 1342 // 1343 // This structure may be used only with operations rendered under `/pbm`. 1344 type PbmComplianceOperationalStatus struct { 1345 types.DynamicData 1346 1347 // Whether the object is currently affected by the failure of backend 1348 // storage resources. 1349 // 1350 // Optional property. 1351 Healthy *bool `xml:"healthy" json:"healthy,omitempty"` 1352 // Estimated completion time of a backend operation affecting the object. 1353 // 1354 // If set, then "transitional" will be true. 1355 // Optional property. 1356 OperationETA *time.Time `xml:"operationETA" json:"operationETA,omitempty"` 1357 // Percent progress of a backend operation affecting the object. 1358 // 1359 // If set, then "transitional" will be true. 1360 // Optional property. 1361 OperationProgress int64 `xml:"operationProgress,omitempty" json:"operationProgress,omitempty"` 1362 // Whether an object is undergoing a backend operation that may affect 1363 // its performance. 1364 // 1365 // This may be a rebalancing the resources of a healthy 1366 // object or recovery tasks for an unhealthy object. 1367 // Optional property. 1368 Transitional *bool `xml:"transitional" json:"transitional,omitempty"` 1369 } 1370 1371 func init() { 1372 types.Add("pbm:PbmComplianceOperationalStatus", reflect.TypeOf((*PbmComplianceOperationalStatus)(nil)).Elem()) 1373 } 1374 1375 // The `PbmCompliancePolicyStatus` data object provides information 1376 // when compliance checking produces non-compliant results. 1377 // 1378 // See 1379 // `PbmComplianceResult*.*PbmComplianceResult.violatedPolicies`. 1380 // 1381 // This structure may be used only with operations rendered under `/pbm`. 1382 type PbmCompliancePolicyStatus struct { 1383 types.DynamicData 1384 1385 // Expected storage capability values of profile policies defined 1386 // by a storage provider. 1387 ExpectedValue PbmCapabilityInstance `xml:"expectedValue" json:"expectedValue"` 1388 // Current storage requirement values of the profile policies 1389 // specified for the virtual machine or virtual disk. 1390 CurrentValue *PbmCapabilityInstance `xml:"currentValue,omitempty" json:"currentValue,omitempty"` 1391 } 1392 1393 func init() { 1394 types.Add("pbm:PbmCompliancePolicyStatus", reflect.TypeOf((*PbmCompliancePolicyStatus)(nil)).Elem()) 1395 } 1396 1397 // The `PbmComplianceResult` data object describes the results of profile compliance 1398 // checking for a virtual machine or virtual disk. 1399 // 1400 // This structure may be used only with operations rendered under `/pbm`. 1401 type PbmComplianceResult struct { 1402 types.DynamicData 1403 1404 // Time when the compliance was checked. 1405 CheckTime time.Time `xml:"checkTime" json:"checkTime"` 1406 // Virtual machine or virtual disk for which compliance was checked. 1407 Entity PbmServerObjectRef `xml:"entity" json:"entity"` 1408 // Requirement profile with which the compliance was checked. 1409 Profile *PbmProfileId `xml:"profile,omitempty" json:"profile,omitempty"` 1410 // Status of the current running compliance operation. 1411 // 1412 // If there is no 1413 // compliance check operation triggered, this indicates the last compliance 1414 // task status. <code>complianceTaskStatus</code> is a string value that 1415 // corresponds to one of the 1416 // `PbmComplianceResultComplianceTaskStatus_enum` values. 1417 ComplianceTaskStatus string `xml:"complianceTaskStatus,omitempty" json:"complianceTaskStatus,omitempty"` 1418 // Status of the compliance operation. 1419 // 1420 // <code>complianceStatus</code> is a 1421 // string value that corresponds to one of the 1422 // `PbmComplianceStatus_enum` values. 1423 // 1424 // When you perform compliance checking on an entity whose associated profile 1425 // contains more than one subprofile ( 1426 // `PbmCapabilityProfile` . 1427 // `PbmCapabilityProfile.constraints`), a compliant 1428 // result for any one of the subprofiles will produce a compliant result 1429 // for the operation. 1430 ComplianceStatus string `xml:"complianceStatus" json:"complianceStatus"` 1431 // Deprecated as of vSphere 2016, use 1432 // `PbmComplianceStatus_enum` to 1433 // know if a mismatch has occurred. If 1434 // `PbmComplianceResult.complianceStatus` value 1435 // is outOfDate, mismatch has occurred. 1436 // 1437 // Set to true if there is a profile version mismatch between the Storage 1438 // Profile Server and the storage provider. 1439 // 1440 // If you receive a result that 1441 // indicates a mismatch, you must use the vSphere API to update the profile 1442 // associated with the virtual machine or virtual disk. 1443 Mismatch bool `xml:"mismatch" json:"mismatch"` 1444 // Values for capabilities that are known to be non-compliant with the specified constraints. 1445 ViolatedPolicies []PbmCompliancePolicyStatus `xml:"violatedPolicies,omitempty" json:"violatedPolicies,omitempty"` 1446 // This property is set if the compliance task fails with errors. 1447 // 1448 // There can be 1449 // more than one error since a policy containing multiple blobs can return 1450 // multiple failures, one for each blob. 1451 ErrorCause []types.LocalizedMethodFault `xml:"errorCause,omitempty" json:"errorCause,omitempty"` 1452 // Additional information on the effects of backend resources and 1453 // operations on the storage object. 1454 OperationalStatus *PbmComplianceOperationalStatus `xml:"operationalStatus,omitempty" json:"operationalStatus,omitempty"` 1455 // Informational localized messages provided by the VASA provider in 1456 // addition to the <code>violatedPolicy</code>. 1457 Info *PbmExtendedElementDescription `xml:"info,omitempty" json:"info,omitempty"` 1458 } 1459 1460 func init() { 1461 types.Add("pbm:PbmComplianceResult", reflect.TypeOf((*PbmComplianceResult)(nil)).Elem()) 1462 } 1463 1464 type PbmCreate PbmCreateRequestType 1465 1466 func init() { 1467 types.Add("pbm:PbmCreate", reflect.TypeOf((*PbmCreate)(nil)).Elem()) 1468 } 1469 1470 // The parameters of `PbmProfileProfileManager.PbmCreate`. 1471 // 1472 // This structure may be used only with operations rendered under `/pbm`. 1473 type PbmCreateRequestType struct { 1474 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1475 // Capability-based profile specification. 1476 CreateSpec PbmCapabilityProfileCreateSpec `xml:"createSpec" json:"createSpec"` 1477 } 1478 1479 func init() { 1480 types.Add("pbm:PbmCreateRequestType", reflect.TypeOf((*PbmCreateRequestType)(nil)).Elem()) 1481 } 1482 1483 type PbmCreateResponse struct { 1484 Returnval PbmProfileId `xml:"returnval" json:"returnval"` 1485 } 1486 1487 // DataServiceToProfilesMap maps the data service policy to the parent storage policies 1488 // if referred. 1489 // 1490 // This is returned from the API call 1491 // `ProfileManager#queryParentStoragePolicies(ProfileId[])` 1492 // 1493 // This structure may be used only with operations rendered under `/pbm`. 1494 type PbmDataServiceToPoliciesMap struct { 1495 types.DynamicData 1496 1497 // Denotes a Data Service Policy Id. 1498 DataServicePolicy PbmProfileId `xml:"dataServicePolicy" json:"dataServicePolicy"` 1499 // Storage Policies that refer to the Data Service Policy given by 1500 // `PbmDataServiceToPoliciesMap.dataServicePolicy`. 1501 ParentStoragePolicies []PbmProfileId `xml:"parentStoragePolicies,omitempty" json:"parentStoragePolicies,omitempty"` 1502 // The fault is set in case of error conditions and this property will 1503 // have the reason. 1504 Fault *types.LocalizedMethodFault `xml:"fault,omitempty" json:"fault,omitempty"` 1505 } 1506 1507 func init() { 1508 types.Add("pbm:PbmDataServiceToPoliciesMap", reflect.TypeOf((*PbmDataServiceToPoliciesMap)(nil)).Elem()) 1509 } 1510 1511 // Space stats for datastore 1512 // 1513 // This structure may be used only with operations rendered under `/pbm`. 1514 type PbmDatastoreSpaceStatistics struct { 1515 types.DynamicData 1516 1517 // Capability profile id. 1518 // 1519 // It is null when the statistics are for the entire 1520 // datastore. 1521 ProfileId string `xml:"profileId,omitempty" json:"profileId,omitempty"` 1522 // Total physical space in MB. 1523 PhysicalTotalInMB int64 `xml:"physicalTotalInMB" json:"physicalTotalInMB"` 1524 // Total physical free space in MB. 1525 PhysicalFreeInMB int64 `xml:"physicalFreeInMB" json:"physicalFreeInMB"` 1526 // Used physical storage space in MB. 1527 PhysicalUsedInMB int64 `xml:"physicalUsedInMB" json:"physicalUsedInMB"` 1528 // Logical space limit set by the storage admin in MB. 1529 // 1530 // Omitted if there is no Logical space limit. 1531 LogicalLimitInMB int64 `xml:"logicalLimitInMB,omitempty" json:"logicalLimitInMB,omitempty"` 1532 // Free logical storage space in MB. 1533 LogicalFreeInMB int64 `xml:"logicalFreeInMB" json:"logicalFreeInMB"` 1534 // Used logical storage space in MB. 1535 LogicalUsedInMB int64 `xml:"logicalUsedInMB" json:"logicalUsedInMB"` 1536 } 1537 1538 func init() { 1539 types.Add("pbm:PbmDatastoreSpaceStatistics", reflect.TypeOf((*PbmDatastoreSpaceStatistics)(nil)).Elem()) 1540 } 1541 1542 // Not supported in this release. 1543 // 1544 // This structure may be used only with operations rendered under `/pbm`. 1545 type PbmDefaultCapabilityProfile struct { 1546 PbmCapabilityProfile 1547 1548 // Not supported in this release. 1549 VvolType []string `xml:"vvolType" json:"vvolType"` 1550 // Not supported in this release. 1551 ContainerId string `xml:"containerId" json:"containerId"` 1552 } 1553 1554 func init() { 1555 types.Add("pbm:PbmDefaultCapabilityProfile", reflect.TypeOf((*PbmDefaultCapabilityProfile)(nil)).Elem()) 1556 } 1557 1558 // Warning fault used to indicate that the vendor specific datastore matches the tag in the 1559 // requirements profile that does not have a vendor specific rule set. 1560 // 1561 // In such case, 1562 // an empty blob is sent to the vendor specific datastore and the default profile would apply. 1563 // 1564 // This structure may be used only with operations rendered under `/pbm`. 1565 type PbmDefaultProfileAppliesFault struct { 1566 PbmCompatibilityCheckFault 1567 } 1568 1569 func init() { 1570 types.Add("pbm:PbmDefaultProfileAppliesFault", reflect.TypeOf((*PbmDefaultProfileAppliesFault)(nil)).Elem()) 1571 } 1572 1573 type PbmDefaultProfileAppliesFaultFault PbmDefaultProfileAppliesFault 1574 1575 func init() { 1576 types.Add("pbm:PbmDefaultProfileAppliesFaultFault", reflect.TypeOf((*PbmDefaultProfileAppliesFaultFault)(nil)).Elem()) 1577 } 1578 1579 // Data structure that stores the default profile for datastores. 1580 // 1581 // This structure may be used only with operations rendered under `/pbm`. 1582 type PbmDefaultProfileInfo struct { 1583 types.DynamicData 1584 1585 // Datastores 1586 Datastores []PbmPlacementHub `xml:"datastores" json:"datastores"` 1587 // Default requirements profile. 1588 // 1589 // It is set to null if the datastores are not associated with any default profile. 1590 DefaultProfile BasePbmProfile `xml:"defaultProfile,omitempty,typeattr" json:"defaultProfile,omitempty"` 1591 // NoPermission fault if default profile is not permitted. 1592 MethodFault *types.LocalizedMethodFault `xml:"methodFault,omitempty" json:"methodFault,omitempty"` 1593 } 1594 1595 func init() { 1596 types.Add("pbm:PbmDefaultProfileInfo", reflect.TypeOf((*PbmDefaultProfileInfo)(nil)).Elem()) 1597 } 1598 1599 type PbmDelete PbmDeleteRequestType 1600 1601 func init() { 1602 types.Add("pbm:PbmDelete", reflect.TypeOf((*PbmDelete)(nil)).Elem()) 1603 } 1604 1605 // The parameters of `PbmProfileProfileManager.PbmDelete`. 1606 // 1607 // This structure may be used only with operations rendered under `/pbm`. 1608 type PbmDeleteRequestType struct { 1609 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1610 // Array of profile identifiers. 1611 ProfileId []PbmProfileId `xml:"profileId" json:"profileId"` 1612 } 1613 1614 func init() { 1615 types.Add("pbm:PbmDeleteRequestType", reflect.TypeOf((*PbmDeleteRequestType)(nil)).Elem()) 1616 } 1617 1618 type PbmDeleteResponse struct { 1619 Returnval []PbmProfileOperationOutcome `xml:"returnval,omitempty" json:"returnval,omitempty"` 1620 } 1621 1622 // A DuplicateName exception is thrown because a name already exists 1623 // in the same name space. 1624 // 1625 // This structure may be used only with operations rendered under `/pbm`. 1626 type PbmDuplicateName struct { 1627 PbmFault 1628 1629 // The name that is already bound in the name space. 1630 Name string `xml:"name" json:"name"` 1631 } 1632 1633 func init() { 1634 types.Add("pbm:PbmDuplicateName", reflect.TypeOf((*PbmDuplicateName)(nil)).Elem()) 1635 } 1636 1637 type PbmDuplicateNameFault PbmDuplicateName 1638 1639 func init() { 1640 types.Add("pbm:PbmDuplicateNameFault", reflect.TypeOf((*PbmDuplicateNameFault)(nil)).Elem()) 1641 } 1642 1643 // This structure may be used only with operations rendered under `/pbm`. 1644 type PbmExtendedElementDescription struct { 1645 types.DynamicData 1646 1647 // Display label. 1648 Label string `xml:"label" json:"label"` 1649 // Summary description. 1650 Summary string `xml:"summary" json:"summary"` 1651 // Enumeration or literal ID being described. 1652 Key string `xml:"key" json:"key"` 1653 // Key to the localized message string in the catalog. 1654 // 1655 // If the localized string contains parameters, values to the 1656 // parameters will be provided in #messageArg. 1657 // E.g: If the message in the catalog is 1658 // "IP address is {address}", value for "address" 1659 // will be provided by #messageArg. 1660 // Both summary and label in ElementDescription will have a corresponding 1661 // entry in the message catalog with the keys 1662 // <messageCatalogKeyPrefix>.summary and <messageCatalogKeyPrefix>.label 1663 // respectively. 1664 // ElementDescription.summary and ElementDescription.label will contain 1665 // the strings in server locale. 1666 MessageCatalogKeyPrefix string `xml:"messageCatalogKeyPrefix" json:"messageCatalogKeyPrefix"` 1667 // Provides named arguments that can be used to localize the 1668 // message in the catalog. 1669 MessageArg []types.KeyAnyValue `xml:"messageArg,omitempty" json:"messageArg,omitempty"` 1670 } 1671 1672 func init() { 1673 types.Add("pbm:PbmExtendedElementDescription", reflect.TypeOf((*PbmExtendedElementDescription)(nil)).Elem()) 1674 } 1675 1676 // The super class for all pbm faults. 1677 // 1678 // This structure may be used only with operations rendered under `/pbm`. 1679 type PbmFault struct { 1680 types.MethodFault 1681 } 1682 1683 func init() { 1684 types.Add("pbm:PbmFault", reflect.TypeOf((*PbmFault)(nil)).Elem()) 1685 } 1686 1687 type PbmFaultFault BasePbmFault 1688 1689 func init() { 1690 types.Add("pbm:PbmFaultFault", reflect.TypeOf((*PbmFaultFault)(nil)).Elem()) 1691 } 1692 1693 // Thrown when login fails due to token not provided or token could not be 1694 // validated. 1695 // 1696 // This structure may be used only with operations rendered under `/pbm`. 1697 type PbmFaultInvalidLogin struct { 1698 PbmFault 1699 } 1700 1701 func init() { 1702 types.Add("pbm:PbmFaultInvalidLogin", reflect.TypeOf((*PbmFaultInvalidLogin)(nil)).Elem()) 1703 } 1704 1705 type PbmFaultInvalidLoginFault PbmFaultInvalidLogin 1706 1707 func init() { 1708 types.Add("pbm:PbmFaultInvalidLoginFault", reflect.TypeOf((*PbmFaultInvalidLoginFault)(nil)).Elem()) 1709 } 1710 1711 // Thrown when an operation is denied because of a privilege 1712 // not held on a storage profile. 1713 // 1714 // This structure may be used only with operations rendered under `/pbm`. 1715 type PbmFaultNoPermission struct { 1716 types.SecurityError 1717 1718 // List of profile ids and missing privileges for each profile 1719 MissingPrivileges []PbmFaultNoPermissionEntityPrivileges `xml:"missingPrivileges,omitempty" json:"missingPrivileges,omitempty"` 1720 } 1721 1722 func init() { 1723 types.Add("pbm:PbmFaultNoPermission", reflect.TypeOf((*PbmFaultNoPermission)(nil)).Elem()) 1724 } 1725 1726 // This structure may be used only with operations rendered under `/pbm`. 1727 type PbmFaultNoPermissionEntityPrivileges struct { 1728 types.DynamicData 1729 1730 ProfileId *PbmProfileId `xml:"profileId,omitempty" json:"profileId,omitempty"` 1731 PrivilegeIds []string `xml:"privilegeIds,omitempty" json:"privilegeIds,omitempty"` 1732 } 1733 1734 func init() { 1735 types.Add("pbm:PbmFaultNoPermissionEntityPrivileges", reflect.TypeOf((*PbmFaultNoPermissionEntityPrivileges)(nil)).Elem()) 1736 } 1737 1738 type PbmFaultNoPermissionFault PbmFaultNoPermission 1739 1740 func init() { 1741 types.Add("pbm:PbmFaultNoPermissionFault", reflect.TypeOf((*PbmFaultNoPermissionFault)(nil)).Elem()) 1742 } 1743 1744 // A NotFound error occurs when a referenced component of a managed 1745 // object cannot be found. 1746 // 1747 // The referenced component can be a data 1748 // object type (such as a role or permission) or a primitive 1749 // (such as a string). 1750 // 1751 // For example, if the missing referenced component is a data object, such as 1752 // VirtualSwitch, the NotFound error is 1753 // thrown. The NotFound error is also thrown if the data object is found, but the referenced name 1754 // (for example, "vswitch0") is not. 1755 // 1756 // This structure may be used only with operations rendered under `/pbm`. 1757 type PbmFaultNotFound struct { 1758 PbmFault 1759 } 1760 1761 func init() { 1762 types.Add("pbm:PbmFaultNotFound", reflect.TypeOf((*PbmFaultNotFound)(nil)).Elem()) 1763 } 1764 1765 type PbmFaultNotFoundFault PbmFaultNotFound 1766 1767 func init() { 1768 types.Add("pbm:PbmFaultNotFoundFault", reflect.TypeOf((*PbmFaultNotFoundFault)(nil)).Elem()) 1769 } 1770 1771 // This structure may be used only with operations rendered under `/pbm`. 1772 type PbmFaultProfileStorageFault struct { 1773 PbmFault 1774 } 1775 1776 func init() { 1777 types.Add("pbm:PbmFaultProfileStorageFault", reflect.TypeOf((*PbmFaultProfileStorageFault)(nil)).Elem()) 1778 } 1779 1780 type PbmFaultProfileStorageFaultFault PbmFaultProfileStorageFault 1781 1782 func init() { 1783 types.Add("pbm:PbmFaultProfileStorageFaultFault", reflect.TypeOf((*PbmFaultProfileStorageFaultFault)(nil)).Elem()) 1784 } 1785 1786 type PbmFetchCapabilityMetadata PbmFetchCapabilityMetadataRequestType 1787 1788 func init() { 1789 types.Add("pbm:PbmFetchCapabilityMetadata", reflect.TypeOf((*PbmFetchCapabilityMetadata)(nil)).Elem()) 1790 } 1791 1792 // The parameters of `PbmProfileProfileManager.PbmFetchCapabilityMetadata`. 1793 // 1794 // This structure may be used only with operations rendered under `/pbm`. 1795 type PbmFetchCapabilityMetadataRequestType struct { 1796 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1797 // Type of profile resource. The Server supports the "STORAGE" resource 1798 // type only. If not specified, this method will return capability metadata for the storage 1799 // resources. Any other <code>resourceType</code> is considered invalid. 1800 ResourceType *PbmProfileResourceType `xml:"resourceType,omitempty" json:"resourceType,omitempty"` 1801 // Unique identifier for the vendor/owner of capability 1802 // metadata. The specified vendor ID must match 1803 // `PbmCapabilitySchemaVendorInfo*.*PbmCapabilitySchemaVendorInfo.vendorUuid`. 1804 // If omitted, the Server searchs all capability metadata registered with the system. If a 1805 // <code>vendorUuid</code> unknown to the Server is specified, empty results will be returned. 1806 VendorUuid string `xml:"vendorUuid,omitempty" json:"vendorUuid,omitempty"` 1807 } 1808 1809 func init() { 1810 types.Add("pbm:PbmFetchCapabilityMetadataRequestType", reflect.TypeOf((*PbmFetchCapabilityMetadataRequestType)(nil)).Elem()) 1811 } 1812 1813 type PbmFetchCapabilityMetadataResponse struct { 1814 Returnval []PbmCapabilityMetadataPerCategory `xml:"returnval,omitempty" json:"returnval,omitempty"` 1815 } 1816 1817 type PbmFetchCapabilitySchema PbmFetchCapabilitySchemaRequestType 1818 1819 func init() { 1820 types.Add("pbm:PbmFetchCapabilitySchema", reflect.TypeOf((*PbmFetchCapabilitySchema)(nil)).Elem()) 1821 } 1822 1823 // The parameters of `PbmProfileProfileManager.PbmFetchCapabilitySchema`. 1824 // 1825 // This structure may be used only with operations rendered under `/pbm`. 1826 type PbmFetchCapabilitySchemaRequestType struct { 1827 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1828 // Unique identifier for the vendor/owner of capability metadata. 1829 // If omitted, the server searchs all capability metadata registered 1830 // with the system. The specified vendor ID must match 1831 // `PbmCapabilitySchemaVendorInfo*.*PbmCapabilitySchemaVendorInfo.vendorUuid`. 1832 VendorUuid string `xml:"vendorUuid,omitempty" json:"vendorUuid,omitempty"` 1833 // Optional line of service that must match `PbmLineOfServiceInfoLineOfServiceEnum_enum`. 1834 // If specified, the capability schema objects 1835 // are returned for the given lineOfServices. If null, then all 1836 // capability schema objects that may or may not have data service capabilities 1837 // are returned. 1838 LineOfService []string `xml:"lineOfService,omitempty" json:"lineOfService,omitempty"` 1839 } 1840 1841 func init() { 1842 types.Add("pbm:PbmFetchCapabilitySchemaRequestType", reflect.TypeOf((*PbmFetchCapabilitySchemaRequestType)(nil)).Elem()) 1843 } 1844 1845 type PbmFetchCapabilitySchemaResponse struct { 1846 Returnval []PbmCapabilitySchema `xml:"returnval,omitempty" json:"returnval,omitempty"` 1847 } 1848 1849 type PbmFetchComplianceResult PbmFetchComplianceResultRequestType 1850 1851 func init() { 1852 types.Add("pbm:PbmFetchComplianceResult", reflect.TypeOf((*PbmFetchComplianceResult)(nil)).Elem()) 1853 } 1854 1855 // The parameters of `PbmComplianceManager.PbmFetchComplianceResult`. 1856 // 1857 // This structure may be used only with operations rendered under `/pbm`. 1858 type PbmFetchComplianceResultRequestType struct { 1859 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1860 // One or more references to storage entities. 1861 // A maximum of 1000 virtual machines and/or virtual disks can be specified 1862 // in a call. The results of calling the fetchComplianceResult API with 1863 // more than a 1000 entities is undefined. 1864 // - If the list of entities also contains datastores, the Server 1865 // will ignore the datastores. 1866 // - If the list contains valid and invalid entities, the Server ignores 1867 // the invalid entities and returns results for the valid entities. 1868 // Invalid entities are entities that are not in the vCenter inventory. 1869 // - If the list contains only datastores, the method throws 1870 // an <code>InvalidArgument</code> fault. 1871 Entities []PbmServerObjectRef `xml:"entities" json:"entities"` 1872 // Not used. if specified, the Server ignores the value. 1873 // The Server uses the profiles associated with the specified entities. 1874 Profile *PbmProfileId `xml:"profile,omitempty" json:"profile,omitempty"` 1875 } 1876 1877 func init() { 1878 types.Add("pbm:PbmFetchComplianceResultRequestType", reflect.TypeOf((*PbmFetchComplianceResultRequestType)(nil)).Elem()) 1879 } 1880 1881 type PbmFetchComplianceResultResponse struct { 1882 Returnval []PbmComplianceResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 1883 } 1884 1885 // The `PbmFetchEntityHealthStatusSpec` data object contains 1886 // the arguments required for 1887 // `PbmComplianceManager.PbmFetchEntityHealthStatusExt`. 1888 // 1889 // This structure may be used only with operations rendered under `/pbm`. 1890 type PbmFetchEntityHealthStatusSpec struct { 1891 types.DynamicData 1892 1893 // `PbmServerObjectRef` for which the healthStatus is required 1894 ObjectRef PbmServerObjectRef `xml:"objectRef" json:"objectRef"` 1895 // BackingId for the ServerObjectRef 1896 // BackingId is mandatory for FCD on vSAN 1897 BackingId string `xml:"backingId,omitempty" json:"backingId,omitempty"` 1898 } 1899 1900 func init() { 1901 types.Add("pbm:PbmFetchEntityHealthStatusSpec", reflect.TypeOf((*PbmFetchEntityHealthStatusSpec)(nil)).Elem()) 1902 } 1903 1904 type PbmFetchResourceType PbmFetchResourceTypeRequestType 1905 1906 func init() { 1907 types.Add("pbm:PbmFetchResourceType", reflect.TypeOf((*PbmFetchResourceType)(nil)).Elem()) 1908 } 1909 1910 type PbmFetchResourceTypeRequestType struct { 1911 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1912 } 1913 1914 func init() { 1915 types.Add("pbm:PbmFetchResourceTypeRequestType", reflect.TypeOf((*PbmFetchResourceTypeRequestType)(nil)).Elem()) 1916 } 1917 1918 type PbmFetchResourceTypeResponse struct { 1919 Returnval []PbmProfileResourceType `xml:"returnval,omitempty" json:"returnval,omitempty"` 1920 } 1921 1922 type PbmFetchRollupComplianceResult PbmFetchRollupComplianceResultRequestType 1923 1924 func init() { 1925 types.Add("pbm:PbmFetchRollupComplianceResult", reflect.TypeOf((*PbmFetchRollupComplianceResult)(nil)).Elem()) 1926 } 1927 1928 // The parameters of `PbmComplianceManager.PbmFetchRollupComplianceResult`. 1929 // 1930 // This structure may be used only with operations rendered under `/pbm`. 1931 type PbmFetchRollupComplianceResultRequestType struct { 1932 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1933 // One or more virtual machines. 1934 // A maximum of 1000 virtual machines can be specified 1935 // in a call. The results of calling the fetchRollupComplianceResult API with 1936 // more than a 1000 entity objects is undefined. 1937 Entity []PbmServerObjectRef `xml:"entity" json:"entity"` 1938 } 1939 1940 func init() { 1941 types.Add("pbm:PbmFetchRollupComplianceResultRequestType", reflect.TypeOf((*PbmFetchRollupComplianceResultRequestType)(nil)).Elem()) 1942 } 1943 1944 type PbmFetchRollupComplianceResultResponse struct { 1945 Returnval []PbmRollupComplianceResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 1946 } 1947 1948 type PbmFetchVendorInfo PbmFetchVendorInfoRequestType 1949 1950 func init() { 1951 types.Add("pbm:PbmFetchVendorInfo", reflect.TypeOf((*PbmFetchVendorInfo)(nil)).Elem()) 1952 } 1953 1954 // The parameters of `PbmProfileProfileManager.PbmFetchVendorInfo`. 1955 // 1956 // This structure may be used only with operations rendered under `/pbm`. 1957 type PbmFetchVendorInfoRequestType struct { 1958 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1959 // Specifies the resource type. The Server supports the STORAGE resource 1960 // type only. If not specified, server defaults to STORAGE resource type. Any other 1961 // <code>resourceType</code> is considered invalid. 1962 ResourceType *PbmProfileResourceType `xml:"resourceType,omitempty" json:"resourceType,omitempty"` 1963 } 1964 1965 func init() { 1966 types.Add("pbm:PbmFetchVendorInfoRequestType", reflect.TypeOf((*PbmFetchVendorInfoRequestType)(nil)).Elem()) 1967 } 1968 1969 type PbmFetchVendorInfoResponse struct { 1970 Returnval []PbmCapabilityVendorResourceTypeInfo `xml:"returnval,omitempty" json:"returnval,omitempty"` 1971 } 1972 1973 type PbmFindApplicableDefaultProfile PbmFindApplicableDefaultProfileRequestType 1974 1975 func init() { 1976 types.Add("pbm:PbmFindApplicableDefaultProfile", reflect.TypeOf((*PbmFindApplicableDefaultProfile)(nil)).Elem()) 1977 } 1978 1979 // The parameters of `PbmProfileProfileManager.PbmFindApplicableDefaultProfile`. 1980 // 1981 // This structure may be used only with operations rendered under `/pbm`. 1982 type PbmFindApplicableDefaultProfileRequestType struct { 1983 This types.ManagedObjectReference `xml:"_this" json:"_this"` 1984 // Datastores for which the default profile is found out. Note that 1985 // the datastore pods/clusters are not supported. 1986 Datastores []PbmPlacementHub `xml:"datastores" json:"datastores"` 1987 } 1988 1989 func init() { 1990 types.Add("pbm:PbmFindApplicableDefaultProfileRequestType", reflect.TypeOf((*PbmFindApplicableDefaultProfileRequestType)(nil)).Elem()) 1991 } 1992 1993 type PbmFindApplicableDefaultProfileResponse struct { 1994 Returnval []BasePbmProfile `xml:"returnval,omitempty,typeattr" json:"returnval,omitempty"` 1995 } 1996 1997 // Warning fault used to indicate that the vendor specific datastore matches the tag in the 1998 // requirements profile but doesnt match the vendor specific rule set in the requirements profile. 1999 // 2000 // This structure may be used only with operations rendered under `/pbm`. 2001 type PbmIncompatibleVendorSpecificRuleSet struct { 2002 PbmCapabilityProfilePropertyMismatchFault 2003 } 2004 2005 func init() { 2006 types.Add("pbm:PbmIncompatibleVendorSpecificRuleSet", reflect.TypeOf((*PbmIncompatibleVendorSpecificRuleSet)(nil)).Elem()) 2007 } 2008 2009 type PbmIncompatibleVendorSpecificRuleSetFault PbmIncompatibleVendorSpecificRuleSet 2010 2011 func init() { 2012 types.Add("pbm:PbmIncompatibleVendorSpecificRuleSetFault", reflect.TypeOf((*PbmIncompatibleVendorSpecificRuleSetFault)(nil)).Elem()) 2013 } 2014 2015 // LegacyHubsNotSupported fault is thrown to indicate the legacy hubs that are not supported. 2016 // 2017 // For storage, legacy hubs or datastores are VMFS and NFS datastores. 2018 // 2019 // This structure may be used only with operations rendered under `/pbm`. 2020 type PbmLegacyHubsNotSupported struct { 2021 PbmFault 2022 2023 // Legacy hubs that are not supported. 2024 // 2025 // Only datastores will be populated in this fault. Datastore clusters 2026 // are not allowed. 2027 Hubs []PbmPlacementHub `xml:"hubs" json:"hubs"` 2028 } 2029 2030 func init() { 2031 types.Add("pbm:PbmLegacyHubsNotSupported", reflect.TypeOf((*PbmLegacyHubsNotSupported)(nil)).Elem()) 2032 } 2033 2034 type PbmLegacyHubsNotSupportedFault PbmLegacyHubsNotSupported 2035 2036 func init() { 2037 types.Add("pbm:PbmLegacyHubsNotSupportedFault", reflect.TypeOf((*PbmLegacyHubsNotSupportedFault)(nil)).Elem()) 2038 } 2039 2040 // Describes Line of Service of a capability provider. 2041 // 2042 // This structure may be used only with operations rendered under `/pbm`. 2043 type PbmLineOfServiceInfo struct { 2044 types.DynamicData 2045 2046 // `PbmLineOfServiceInfoLineOfServiceEnum_enum` - must be one of the values 2047 // for enum `PbmLineOfServiceInfoLineOfServiceEnum_enum`. 2048 LineOfService string `xml:"lineOfService" json:"lineOfService"` 2049 // Name of the service - for informational 2050 // purposes only. 2051 Name PbmExtendedElementDescription `xml:"name" json:"name"` 2052 // Description of the service - for informational 2053 // purposes only. 2054 Description *PbmExtendedElementDescription `xml:"description,omitempty" json:"description,omitempty"` 2055 } 2056 2057 func init() { 2058 types.Add("pbm:PbmLineOfServiceInfo", reflect.TypeOf((*PbmLineOfServiceInfo)(nil)).Elem()) 2059 } 2060 2061 // This structure may be used only with operations rendered under `/pbm`. 2062 type PbmLoggingConfiguration struct { 2063 types.DynamicData 2064 2065 Component string `xml:"component" json:"component"` 2066 LogLevel string `xml:"logLevel" json:"logLevel"` 2067 } 2068 2069 func init() { 2070 types.Add("pbm:PbmLoggingConfiguration", reflect.TypeOf((*PbmLoggingConfiguration)(nil)).Elem()) 2071 } 2072 2073 // NonExistentHubs is thrown to indicate that some non existent datastores are used. 2074 // 2075 // This structure may be used only with operations rendered under `/pbm`. 2076 type PbmNonExistentHubs struct { 2077 PbmFault 2078 2079 // Legacy hubs that do not exist. 2080 Hubs []PbmPlacementHub `xml:"hubs" json:"hubs"` 2081 } 2082 2083 func init() { 2084 types.Add("pbm:PbmNonExistentHubs", reflect.TypeOf((*PbmNonExistentHubs)(nil)).Elem()) 2085 } 2086 2087 type PbmNonExistentHubsFault PbmNonExistentHubs 2088 2089 func init() { 2090 types.Add("pbm:PbmNonExistentHubsFault", reflect.TypeOf((*PbmNonExistentHubsFault)(nil)).Elem()) 2091 } 2092 2093 // Describes the data services provided by the storage arrays. 2094 // 2095 // In addition to storing bits, some VASA providers may also want to separate 2096 // their capabilities into lines of service to let vSphere manage finer grain 2097 // policies. For example an array may support replication natively, and may 2098 // want vSphere policies to be defined for the replication aspect separately 2099 // and compose them with persistence related policies. 2100 // 2101 // This structure may be used only with operations rendered under `/pbm`. 2102 type PbmPersistenceBasedDataServiceInfo struct { 2103 PbmLineOfServiceInfo 2104 2105 // This property should be set with compatible schema namespaces exposed by 2106 // the vendor provider. 2107 // 2108 // If not specified, vSphere assumes all Data Service 2109 // provider schemas are compatible with all persistence provider namespaces 2110 // advertised by the VASA provider. 2111 CompatiblePersistenceSchemaNamespace []string `xml:"compatiblePersistenceSchemaNamespace,omitempty" json:"compatiblePersistenceSchemaNamespace,omitempty"` 2112 } 2113 2114 func init() { 2115 types.Add("pbm:PbmPersistenceBasedDataServiceInfo", reflect.TypeOf((*PbmPersistenceBasedDataServiceInfo)(nil)).Elem()) 2116 } 2117 2118 // Requirement type containing capability constraints 2119 // 2120 // This structure may be used only with operations rendered under `/pbm`. 2121 type PbmPlacementCapabilityConstraintsRequirement struct { 2122 PbmPlacementRequirement 2123 2124 // Capability constraints 2125 Constraints BasePbmCapabilityConstraints `xml:"constraints,typeattr" json:"constraints"` 2126 } 2127 2128 func init() { 2129 types.Add("pbm:PbmPlacementCapabilityConstraintsRequirement", reflect.TypeOf((*PbmPlacementCapabilityConstraintsRequirement)(nil)).Elem()) 2130 } 2131 2132 // A Requirement for a particular `PbmCapabilityProfile`. 2133 // 2134 // This structure may be used only with operations rendered under `/pbm`. 2135 type PbmPlacementCapabilityProfileRequirement struct { 2136 PbmPlacementRequirement 2137 2138 // Reference to the capability profile being used as a requirement 2139 ProfileId PbmProfileId `xml:"profileId" json:"profileId"` 2140 } 2141 2142 func init() { 2143 types.Add("pbm:PbmPlacementCapabilityProfileRequirement", reflect.TypeOf((*PbmPlacementCapabilityProfileRequirement)(nil)).Elem()) 2144 } 2145 2146 // The `PbmPlacementCompatibilityResult` data object 2147 // contains the compatibility result of a placement request. 2148 // 2149 // This structure may be used only with operations rendered under `/pbm`. 2150 type PbmPlacementCompatibilityResult struct { 2151 types.DynamicData 2152 2153 // The <code>Datastore</code> or <code>StoragePod</code> under consideration 2154 // as a location for virtual machine files. 2155 Hub PbmPlacementHub `xml:"hub" json:"hub"` 2156 // Resources that match the policy. 2157 // 2158 // If populated, signifies that there are 2159 // specific resources that match the policy for `PbmPlacementCompatibilityResult.hub`. If null, 2160 // signifies that all resources (for example, hosts connected to the 2161 // datastore or storage pod) are compatible. 2162 MatchingResources []BasePbmPlacementMatchingResources `xml:"matchingResources,omitempty,typeattr" json:"matchingResources,omitempty"` 2163 // How many objects of the kind requested can be provisioned on this 2164 // `PbmPlacementCompatibilityResult.hub`. 2165 HowMany int64 `xml:"howMany,omitempty" json:"howMany,omitempty"` 2166 // This field is not populated if there is no size in the query, i.e. 2167 // 2168 // if the request carries only policy and no size requirements, this 2169 // will not be populated. 2170 Utilization []PbmPlacementResourceUtilization `xml:"utilization,omitempty" json:"utilization,omitempty"` 2171 // Array of faults that describe issues that may affect profile compatibility. 2172 // 2173 // Users should consider these issues before using this <code>Datastore</code> 2174 // or <code>StoragePod</code> and a connected <code>Host</code>s. 2175 Warning []types.LocalizedMethodFault `xml:"warning,omitempty" json:"warning,omitempty"` 2176 // Array of faults that prevent this datastore or storage pod from being compatible with the 2177 // specified profile, including if no host connected to this `PbmPlacementCompatibilityResult.hub` is compatible. 2178 Error []types.LocalizedMethodFault `xml:"error,omitempty" json:"error,omitempty"` 2179 } 2180 2181 func init() { 2182 types.Add("pbm:PbmPlacementCompatibilityResult", reflect.TypeOf((*PbmPlacementCompatibilityResult)(nil)).Elem()) 2183 } 2184 2185 // A `PbmPlacementHub` data object identifies a storage location 2186 // where virtual machine files can be placed. 2187 // 2188 // This structure may be used only with operations rendered under `/pbm`. 2189 type PbmPlacementHub struct { 2190 types.DynamicData 2191 2192 // Type of the hub. 2193 // 2194 // Currently ManagedObject is the only supported type. 2195 HubType string `xml:"hubType" json:"hubType"` 2196 // Hub identifier; a ManagedObjectReference to a datastore or a storage pod. 2197 HubId string `xml:"hubId" json:"hubId"` 2198 } 2199 2200 func init() { 2201 types.Add("pbm:PbmPlacementHub", reflect.TypeOf((*PbmPlacementHub)(nil)).Elem()) 2202 } 2203 2204 // Describes the collection of replication related resources that satisfy a 2205 // policy, for a specific datastore. 2206 // 2207 // This class is returned only when the policy contains replication capabilities. 2208 // For a storage pod, only those replication groups that are common across 2209 // all datastores in the storage pod are considered compatible. 2210 // 2211 // This structure may be used only with operations rendered under `/pbm`. 2212 type PbmPlacementMatchingReplicationResources struct { 2213 PbmPlacementMatchingResources 2214 2215 // Replication groups that match the policy. 2216 ReplicationGroup []types.ReplicationGroupId `xml:"replicationGroup,omitempty" json:"replicationGroup,omitempty"` 2217 } 2218 2219 func init() { 2220 types.Add("pbm:PbmPlacementMatchingReplicationResources", reflect.TypeOf((*PbmPlacementMatchingReplicationResources)(nil)).Elem()) 2221 } 2222 2223 // Describes the collection of resources (for example, hosts) that satisfy a 2224 // policy, for a specific datastore. 2225 // 2226 // This structure may be used only with operations rendered under `/pbm`. 2227 type PbmPlacementMatchingResources struct { 2228 types.DynamicData 2229 } 2230 2231 func init() { 2232 types.Add("pbm:PbmPlacementMatchingResources", reflect.TypeOf((*PbmPlacementMatchingResources)(nil)).Elem()) 2233 } 2234 2235 // Defines a constraint for placing objects onto `PbmPlacementHub`s. 2236 // 2237 // This structure may be used only with operations rendered under `/pbm`. 2238 type PbmPlacementRequirement struct { 2239 types.DynamicData 2240 } 2241 2242 func init() { 2243 types.Add("pbm:PbmPlacementRequirement", reflect.TypeOf((*PbmPlacementRequirement)(nil)).Elem()) 2244 } 2245 2246 // Describes the resource utilization metrics of a datastore. 2247 // 2248 // These results are not to be treated as a guaranteed availability, 2249 // they are useful to estimate the effects of a change of policy 2250 // or the effects of a provisioning action. 2251 // 2252 // This structure may be used only with operations rendered under `/pbm`. 2253 type PbmPlacementResourceUtilization struct { 2254 types.DynamicData 2255 2256 // Name of the resource. 2257 Name PbmExtendedElementDescription `xml:"name" json:"name"` 2258 // Description of the resource. 2259 Description PbmExtendedElementDescription `xml:"description" json:"description"` 2260 // Currently available (i.e. 2261 // 2262 // before the provisioning step). 2263 AvailableBefore int64 `xml:"availableBefore,omitempty" json:"availableBefore,omitempty"` 2264 // Available after the provisioning step. 2265 AvailableAfter int64 `xml:"availableAfter,omitempty" json:"availableAfter,omitempty"` 2266 // Total resource availability 2267 Total int64 `xml:"total,omitempty" json:"total,omitempty"` 2268 } 2269 2270 func init() { 2271 types.Add("pbm:PbmPlacementResourceUtilization", reflect.TypeOf((*PbmPlacementResourceUtilization)(nil)).Elem()) 2272 } 2273 2274 // The `PbmProfile` data object is the base object 2275 // for storage capability profiles. 2276 // 2277 // This object defines metadata 2278 // for the profile. The derived capability profile represents the 2279 // user's intent for selection and configuration of storage resources 2280 // and/or services that support deployment of virtual machines 2281 // and virtual disks. 2282 // 2283 // This structure may be used only with operations rendered under `/pbm`. 2284 type PbmProfile struct { 2285 types.DynamicData 2286 2287 // Unique identifier for the profile. 2288 ProfileId PbmProfileId `xml:"profileId" json:"profileId"` 2289 Name string `xml:"name" json:"name"` 2290 // Profile description. 2291 Description string `xml:"description,omitempty" json:"description,omitempty"` 2292 // Time stamp of profile creation. 2293 CreationTime time.Time `xml:"creationTime" json:"creationTime"` 2294 // User name of the profile creator. 2295 // 2296 // Set during creation time. 2297 CreatedBy string `xml:"createdBy" json:"createdBy"` 2298 // Time stamp of latest modification to the profile. 2299 LastUpdatedTime time.Time `xml:"lastUpdatedTime" json:"lastUpdatedTime"` 2300 // Name of the user performing the latest modification of the profile. 2301 LastUpdatedBy string `xml:"lastUpdatedBy" json:"lastUpdatedBy"` 2302 } 2303 2304 func init() { 2305 types.Add("pbm:PbmProfile", reflect.TypeOf((*PbmProfile)(nil)).Elem()) 2306 } 2307 2308 // Profile unique identifier. 2309 // 2310 // This structure may be used only with operations rendered under `/pbm`. 2311 type PbmProfileId struct { 2312 types.DynamicData 2313 2314 // Unique identifier of the profile. 2315 UniqueId string `xml:"uniqueId" json:"uniqueId"` 2316 } 2317 2318 func init() { 2319 types.Add("pbm:PbmProfileId", reflect.TypeOf((*PbmProfileId)(nil)).Elem()) 2320 } 2321 2322 // The `PbmProfileOperationOutcome` data object describes the result 2323 // of a `PbmProfileProfileManager` operation. 2324 // 2325 // If there was an 2326 // error during the operation, the object identifies the fault. 2327 // 2328 // This structure may be used only with operations rendered under `/pbm`. 2329 type PbmProfileOperationOutcome struct { 2330 types.DynamicData 2331 2332 // Identifies the profile specified for the operation. 2333 ProfileId PbmProfileId `xml:"profileId" json:"profileId"` 2334 // One of the `PbmFault` objects. 2335 Fault *types.LocalizedMethodFault `xml:"fault,omitempty" json:"fault,omitempty"` 2336 } 2337 2338 func init() { 2339 types.Add("pbm:PbmProfileOperationOutcome", reflect.TypeOf((*PbmProfileOperationOutcome)(nil)).Elem()) 2340 } 2341 2342 // The `PbmProfileResourceType` data object defines the vSphere resource type 2343 // that is supported for profile management. 2344 // 2345 // This structure may be used only with operations rendered under `/pbm`. 2346 type PbmProfileResourceType struct { 2347 types.DynamicData 2348 2349 // Type of resource to which capability information applies. 2350 // 2351 // <code>resourceType</code> is a string value that corresponds to 2352 // a `PbmProfileResourceTypeEnum_enum` enumeration value. 2353 // Only the STORAGE resource type is supported. 2354 ResourceType string `xml:"resourceType" json:"resourceType"` 2355 } 2356 2357 func init() { 2358 types.Add("pbm:PbmProfileResourceType", reflect.TypeOf((*PbmProfileResourceType)(nil)).Elem()) 2359 } 2360 2361 // The `PbmProfileType` identifier is defined by storage providers 2362 // to distinguish between different types of profiles plugged into the system. 2363 // 2364 // An example of a system supported profile type is "CapabilityBasedProfileType" 2365 // which will be the type used for all capability-based profiles created by 2366 // the system using capability metadata information published to the system. 2367 // 2368 // For internal use only. 2369 // 2370 // This structure may be used only with operations rendered under `/pbm`. 2371 type PbmProfileType struct { 2372 types.DynamicData 2373 2374 // Unique type identifier for this profile type. 2375 // 2376 // eg "CapabilityBased", or other. 2377 UniqueId string `xml:"uniqueId" json:"uniqueId"` 2378 } 2379 2380 func init() { 2381 types.Add("pbm:PbmProfileType", reflect.TypeOf((*PbmProfileType)(nil)).Elem()) 2382 } 2383 2384 // Fault used to indicate which property instance in requirements profile that does not 2385 // match. 2386 // 2387 // This structure may be used only with operations rendered under `/pbm`. 2388 type PbmPropertyMismatchFault struct { 2389 PbmCompatibilityCheckFault 2390 2391 // Id of the CapabilityInstance in requirements profile that 2392 // does not match. 2393 CapabilityInstanceId PbmCapabilityMetadataUniqueId `xml:"capabilityInstanceId" json:"capabilityInstanceId"` 2394 // The property instance in requirement profile that does not match. 2395 RequirementPropertyInstance PbmCapabilityPropertyInstance `xml:"requirementPropertyInstance" json:"requirementPropertyInstance"` 2396 } 2397 2398 func init() { 2399 types.Add("pbm:PbmPropertyMismatchFault", reflect.TypeOf((*PbmPropertyMismatchFault)(nil)).Elem()) 2400 } 2401 2402 type PbmPropertyMismatchFaultFault BasePbmPropertyMismatchFault 2403 2404 func init() { 2405 types.Add("pbm:PbmPropertyMismatchFaultFault", reflect.TypeOf((*PbmPropertyMismatchFaultFault)(nil)).Elem()) 2406 } 2407 2408 type PbmQueryAssociatedEntities PbmQueryAssociatedEntitiesRequestType 2409 2410 func init() { 2411 types.Add("pbm:PbmQueryAssociatedEntities", reflect.TypeOf((*PbmQueryAssociatedEntities)(nil)).Elem()) 2412 } 2413 2414 // The parameters of `PbmProfileProfileManager.PbmQueryAssociatedEntities`. 2415 // 2416 // This structure may be used only with operations rendered under `/pbm`. 2417 type PbmQueryAssociatedEntitiesRequestType struct { 2418 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2419 // Storage policy array. 2420 Profiles []PbmProfileId `xml:"profiles,omitempty" json:"profiles,omitempty"` 2421 } 2422 2423 func init() { 2424 types.Add("pbm:PbmQueryAssociatedEntitiesRequestType", reflect.TypeOf((*PbmQueryAssociatedEntitiesRequestType)(nil)).Elem()) 2425 } 2426 2427 type PbmQueryAssociatedEntitiesResponse struct { 2428 Returnval []PbmQueryProfileResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 2429 } 2430 2431 type PbmQueryAssociatedEntity PbmQueryAssociatedEntityRequestType 2432 2433 func init() { 2434 types.Add("pbm:PbmQueryAssociatedEntity", reflect.TypeOf((*PbmQueryAssociatedEntity)(nil)).Elem()) 2435 } 2436 2437 // The parameters of `PbmProfileProfileManager.PbmQueryAssociatedEntity`. 2438 // 2439 // This structure may be used only with operations rendered under `/pbm`. 2440 type PbmQueryAssociatedEntityRequestType struct { 2441 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2442 // Profile identifier. 2443 Profile PbmProfileId `xml:"profile" json:"profile"` 2444 // If specified, the method returns only those entities 2445 // which match the type. The <code>entityType</code> string value must match 2446 // one of the `PbmObjectType_enum` values. 2447 // If not specified, the method returns all entities associated with the profile. 2448 EntityType string `xml:"entityType,omitempty" json:"entityType,omitempty"` 2449 } 2450 2451 func init() { 2452 types.Add("pbm:PbmQueryAssociatedEntityRequestType", reflect.TypeOf((*PbmQueryAssociatedEntityRequestType)(nil)).Elem()) 2453 } 2454 2455 type PbmQueryAssociatedEntityResponse struct { 2456 Returnval []PbmServerObjectRef `xml:"returnval,omitempty" json:"returnval,omitempty"` 2457 } 2458 2459 type PbmQueryAssociatedProfile PbmQueryAssociatedProfileRequestType 2460 2461 func init() { 2462 types.Add("pbm:PbmQueryAssociatedProfile", reflect.TypeOf((*PbmQueryAssociatedProfile)(nil)).Elem()) 2463 } 2464 2465 // The parameters of `PbmProfileProfileManager.PbmQueryAssociatedProfile`. 2466 // 2467 // This structure may be used only with operations rendered under `/pbm`. 2468 type PbmQueryAssociatedProfileRequestType struct { 2469 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2470 // Reference to a virtual machine, virtual disk, or datastore. 2471 Entity PbmServerObjectRef `xml:"entity" json:"entity"` 2472 } 2473 2474 func init() { 2475 types.Add("pbm:PbmQueryAssociatedProfileRequestType", reflect.TypeOf((*PbmQueryAssociatedProfileRequestType)(nil)).Elem()) 2476 } 2477 2478 type PbmQueryAssociatedProfileResponse struct { 2479 Returnval []PbmProfileId `xml:"returnval,omitempty" json:"returnval,omitempty"` 2480 } 2481 2482 type PbmQueryAssociatedProfiles PbmQueryAssociatedProfilesRequestType 2483 2484 func init() { 2485 types.Add("pbm:PbmQueryAssociatedProfiles", reflect.TypeOf((*PbmQueryAssociatedProfiles)(nil)).Elem()) 2486 } 2487 2488 // The parameters of `PbmProfileProfileManager.PbmQueryAssociatedProfiles`. 2489 // 2490 // This structure may be used only with operations rendered under `/pbm`. 2491 type PbmQueryAssociatedProfilesRequestType struct { 2492 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2493 // Array of server object references. 2494 Entities []PbmServerObjectRef `xml:"entities" json:"entities"` 2495 } 2496 2497 func init() { 2498 types.Add("pbm:PbmQueryAssociatedProfilesRequestType", reflect.TypeOf((*PbmQueryAssociatedProfilesRequestType)(nil)).Elem()) 2499 } 2500 2501 type PbmQueryAssociatedProfilesResponse struct { 2502 Returnval []PbmQueryProfileResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 2503 } 2504 2505 type PbmQueryByRollupComplianceStatus PbmQueryByRollupComplianceStatusRequestType 2506 2507 func init() { 2508 types.Add("pbm:PbmQueryByRollupComplianceStatus", reflect.TypeOf((*PbmQueryByRollupComplianceStatus)(nil)).Elem()) 2509 } 2510 2511 // The parameters of `PbmComplianceManager.PbmQueryByRollupComplianceStatus`. 2512 // 2513 // This structure may be used only with operations rendered under `/pbm`. 2514 type PbmQueryByRollupComplianceStatusRequestType struct { 2515 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2516 // `PbmComplianceStatus_enum` 2517 Status string `xml:"status" json:"status"` 2518 } 2519 2520 func init() { 2521 types.Add("pbm:PbmQueryByRollupComplianceStatusRequestType", reflect.TypeOf((*PbmQueryByRollupComplianceStatusRequestType)(nil)).Elem()) 2522 } 2523 2524 type PbmQueryByRollupComplianceStatusResponse struct { 2525 Returnval []PbmServerObjectRef `xml:"returnval,omitempty" json:"returnval,omitempty"` 2526 } 2527 2528 type PbmQueryDefaultRequirementProfile PbmQueryDefaultRequirementProfileRequestType 2529 2530 func init() { 2531 types.Add("pbm:PbmQueryDefaultRequirementProfile", reflect.TypeOf((*PbmQueryDefaultRequirementProfile)(nil)).Elem()) 2532 } 2533 2534 // The parameters of `PbmProfileProfileManager.PbmQueryDefaultRequirementProfile`. 2535 // 2536 // This structure may be used only with operations rendered under `/pbm`. 2537 type PbmQueryDefaultRequirementProfileRequestType struct { 2538 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2539 // Placement hub (i.e. datastore). 2540 Hub PbmPlacementHub `xml:"hub" json:"hub"` 2541 } 2542 2543 func init() { 2544 types.Add("pbm:PbmQueryDefaultRequirementProfileRequestType", reflect.TypeOf((*PbmQueryDefaultRequirementProfileRequestType)(nil)).Elem()) 2545 } 2546 2547 type PbmQueryDefaultRequirementProfileResponse struct { 2548 Returnval *PbmProfileId `xml:"returnval,omitempty" json:"returnval,omitempty"` 2549 } 2550 2551 type PbmQueryDefaultRequirementProfiles PbmQueryDefaultRequirementProfilesRequestType 2552 2553 func init() { 2554 types.Add("pbm:PbmQueryDefaultRequirementProfiles", reflect.TypeOf((*PbmQueryDefaultRequirementProfiles)(nil)).Elem()) 2555 } 2556 2557 // The parameters of `PbmProfileProfileManager.PbmQueryDefaultRequirementProfiles`. 2558 // 2559 // This structure may be used only with operations rendered under `/pbm`. 2560 type PbmQueryDefaultRequirementProfilesRequestType struct { 2561 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2562 // The datastores for which the default profiles are requested. For 2563 // legacy datastores we set 2564 // `DefaultProfileInfo.defaultProfile` to `null`. 2565 Datastores []PbmPlacementHub `xml:"datastores" json:"datastores"` 2566 } 2567 2568 func init() { 2569 types.Add("pbm:PbmQueryDefaultRequirementProfilesRequestType", reflect.TypeOf((*PbmQueryDefaultRequirementProfilesRequestType)(nil)).Elem()) 2570 } 2571 2572 type PbmQueryDefaultRequirementProfilesResponse struct { 2573 Returnval []PbmDefaultProfileInfo `xml:"returnval" json:"returnval"` 2574 } 2575 2576 type PbmQueryMatchingHub PbmQueryMatchingHubRequestType 2577 2578 func init() { 2579 types.Add("pbm:PbmQueryMatchingHub", reflect.TypeOf((*PbmQueryMatchingHub)(nil)).Elem()) 2580 } 2581 2582 // The parameters of `PbmPlacementSolver.PbmQueryMatchingHub`. 2583 // 2584 // This structure may be used only with operations rendered under `/pbm`. 2585 type PbmQueryMatchingHubRequestType struct { 2586 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2587 // Candidate list of hubs, either datastores or storage pods or a 2588 // mix. If this parameter is not specified, the Server uses all 2589 // of the datastores and storage pods. 2590 HubsToSearch []PbmPlacementHub `xml:"hubsToSearch,omitempty" json:"hubsToSearch,omitempty"` 2591 // Storage requirement profile. 2592 Profile PbmProfileId `xml:"profile" json:"profile"` 2593 } 2594 2595 func init() { 2596 types.Add("pbm:PbmQueryMatchingHubRequestType", reflect.TypeOf((*PbmQueryMatchingHubRequestType)(nil)).Elem()) 2597 } 2598 2599 type PbmQueryMatchingHubResponse struct { 2600 Returnval []PbmPlacementHub `xml:"returnval,omitempty" json:"returnval,omitempty"` 2601 } 2602 2603 type PbmQueryMatchingHubWithSpec PbmQueryMatchingHubWithSpecRequestType 2604 2605 func init() { 2606 types.Add("pbm:PbmQueryMatchingHubWithSpec", reflect.TypeOf((*PbmQueryMatchingHubWithSpec)(nil)).Elem()) 2607 } 2608 2609 // The parameters of `PbmPlacementSolver.PbmQueryMatchingHubWithSpec`. 2610 // 2611 // This structure may be used only with operations rendered under `/pbm`. 2612 type PbmQueryMatchingHubWithSpecRequestType struct { 2613 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2614 // Candidate list of hubs, either datastores or storage 2615 // pods or a mix. If this parameter is not specified, the Server uses 2616 // all of the datastores and storage pods for placement compatibility checking. 2617 HubsToSearch []PbmPlacementHub `xml:"hubsToSearch,omitempty" json:"hubsToSearch,omitempty"` 2618 // Storage profile creation specification. 2619 CreateSpec PbmCapabilityProfileCreateSpec `xml:"createSpec" json:"createSpec"` 2620 } 2621 2622 func init() { 2623 types.Add("pbm:PbmQueryMatchingHubWithSpecRequestType", reflect.TypeOf((*PbmQueryMatchingHubWithSpecRequestType)(nil)).Elem()) 2624 } 2625 2626 type PbmQueryMatchingHubWithSpecResponse struct { 2627 Returnval []PbmPlacementHub `xml:"returnval,omitempty" json:"returnval,omitempty"` 2628 } 2629 2630 type PbmQueryProfile PbmQueryProfileRequestType 2631 2632 func init() { 2633 types.Add("pbm:PbmQueryProfile", reflect.TypeOf((*PbmQueryProfile)(nil)).Elem()) 2634 } 2635 2636 // The parameters of `PbmProfileProfileManager.PbmQueryProfile`. 2637 // 2638 // This structure may be used only with operations rendered under `/pbm`. 2639 type PbmQueryProfileRequestType struct { 2640 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2641 // Type of resource. You can specify only STORAGE. 2642 ResourceType PbmProfileResourceType `xml:"resourceType" json:"resourceType"` 2643 // Profile category. The string value must correspond 2644 // to one of the `PbmProfileCategoryEnum_enum` values. 2645 // If you do not specify a profile category, the method returns profiles in all 2646 // categories. 2647 ProfileCategory string `xml:"profileCategory,omitempty" json:"profileCategory,omitempty"` 2648 } 2649 2650 func init() { 2651 types.Add("pbm:PbmQueryProfileRequestType", reflect.TypeOf((*PbmQueryProfileRequestType)(nil)).Elem()) 2652 } 2653 2654 type PbmQueryProfileResponse struct { 2655 Returnval []PbmProfileId `xml:"returnval,omitempty" json:"returnval,omitempty"` 2656 } 2657 2658 // The `PbmQueryProfileResult` data object 2659 // identifies a virtual machine, virtual disk, or datastore 2660 // and it lists the identifier(s) for the associated profile(s). 2661 // 2662 // This structure may be used only with operations rendered under `/pbm`. 2663 type PbmQueryProfileResult struct { 2664 types.DynamicData 2665 2666 // Reference to the virtual machine, virtual disk, or 2667 // datastore on which the query was performed. 2668 Object PbmServerObjectRef `xml:"object" json:"object"` 2669 // Array of identifiers for profiles which are associated with <code>object</code>. 2670 ProfileId []PbmProfileId `xml:"profileId,omitempty" json:"profileId,omitempty"` 2671 // Fault associated with the query, if there is one. 2672 Fault *types.LocalizedMethodFault `xml:"fault,omitempty" json:"fault,omitempty"` 2673 } 2674 2675 func init() { 2676 types.Add("pbm:PbmQueryProfileResult", reflect.TypeOf((*PbmQueryProfileResult)(nil)).Elem()) 2677 } 2678 2679 // The `PbmQueryReplicationGroupResult` data object 2680 // identifies a virtual machine, or a virtual disk and lists the identifier(s) for the associated 2681 // replication group. 2682 // 2683 // This structure may be used only with operations rendered under `/pbm`. 2684 type PbmQueryReplicationGroupResult struct { 2685 types.DynamicData 2686 2687 // Reference to the virtual machine or virtual disk on which the query was performed. 2688 // 2689 // If the 2690 // query was performed for a virtual machine and all it's disks, this will reference each disk 2691 // and the virtual machine config individually. 2692 Object PbmServerObjectRef `xml:"object" json:"object"` 2693 // Replication group identifier which is associated with <code>object</code>. 2694 ReplicationGroupId *types.ReplicationGroupId `xml:"replicationGroupId,omitempty" json:"replicationGroupId,omitempty"` 2695 // Fault associated with the query, if there is one. 2696 Fault *types.LocalizedMethodFault `xml:"fault,omitempty" json:"fault,omitempty"` 2697 } 2698 2699 func init() { 2700 types.Add("pbm:PbmQueryReplicationGroupResult", reflect.TypeOf((*PbmQueryReplicationGroupResult)(nil)).Elem()) 2701 } 2702 2703 type PbmQueryReplicationGroups PbmQueryReplicationGroupsRequestType 2704 2705 func init() { 2706 types.Add("pbm:PbmQueryReplicationGroups", reflect.TypeOf((*PbmQueryReplicationGroups)(nil)).Elem()) 2707 } 2708 2709 // The parameters of `PbmReplicationManager.PbmQueryReplicationGroups`. 2710 // 2711 // This structure may be used only with operations rendered under `/pbm`. 2712 type PbmQueryReplicationGroupsRequestType struct { 2713 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2714 // Array of server object references. Valid types are 2715 // `virtualMachine`, 2716 // `virtualMachineAndDisks`, 2717 // `virtualDiskId`, 2718 // `virtualDiskUUID` 2719 Entities []PbmServerObjectRef `xml:"entities,omitempty" json:"entities,omitempty"` 2720 } 2721 2722 func init() { 2723 types.Add("pbm:PbmQueryReplicationGroupsRequestType", reflect.TypeOf((*PbmQueryReplicationGroupsRequestType)(nil)).Elem()) 2724 } 2725 2726 type PbmQueryReplicationGroupsResponse struct { 2727 Returnval []PbmQueryReplicationGroupResult `xml:"returnval,omitempty" json:"returnval,omitempty"` 2728 } 2729 2730 type PbmQuerySpaceStatsForStorageContainer PbmQuerySpaceStatsForStorageContainerRequestType 2731 2732 func init() { 2733 types.Add("pbm:PbmQuerySpaceStatsForStorageContainer", reflect.TypeOf((*PbmQuerySpaceStatsForStorageContainer)(nil)).Elem()) 2734 } 2735 2736 // The parameters of `PbmProfileProfileManager.PbmQuerySpaceStatsForStorageContainer`. 2737 // 2738 // This structure may be used only with operations rendered under `/pbm`. 2739 type PbmQuerySpaceStatsForStorageContainerRequestType struct { 2740 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2741 // Entity for which space statistics are being requested i.e datastore. 2742 Datastore PbmServerObjectRef `xml:"datastore" json:"datastore"` 2743 // \- capability profile Ids. 2744 // If omitted, the statistics for the container 2745 // as a whole would be returned. 2746 CapabilityProfileId []PbmProfileId `xml:"capabilityProfileId,omitempty" json:"capabilityProfileId,omitempty"` 2747 } 2748 2749 func init() { 2750 types.Add("pbm:PbmQuerySpaceStatsForStorageContainerRequestType", reflect.TypeOf((*PbmQuerySpaceStatsForStorageContainerRequestType)(nil)).Elem()) 2751 } 2752 2753 type PbmQuerySpaceStatsForStorageContainerResponse struct { 2754 Returnval []PbmDatastoreSpaceStatistics `xml:"returnval,omitempty" json:"returnval,omitempty"` 2755 } 2756 2757 type PbmResetDefaultRequirementProfile PbmResetDefaultRequirementProfileRequestType 2758 2759 func init() { 2760 types.Add("pbm:PbmResetDefaultRequirementProfile", reflect.TypeOf((*PbmResetDefaultRequirementProfile)(nil)).Elem()) 2761 } 2762 2763 // The parameters of `PbmProfileProfileManager.PbmResetDefaultRequirementProfile`. 2764 // 2765 // This structure may be used only with operations rendered under `/pbm`. 2766 type PbmResetDefaultRequirementProfileRequestType struct { 2767 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2768 // Profile to reset. 2769 Profile *PbmProfileId `xml:"profile,omitempty" json:"profile,omitempty"` 2770 } 2771 2772 func init() { 2773 types.Add("pbm:PbmResetDefaultRequirementProfileRequestType", reflect.TypeOf((*PbmResetDefaultRequirementProfileRequestType)(nil)).Elem()) 2774 } 2775 2776 type PbmResetDefaultRequirementProfileResponse struct { 2777 } 2778 2779 type PbmResetVSanDefaultProfile PbmResetVSanDefaultProfileRequestType 2780 2781 func init() { 2782 types.Add("pbm:PbmResetVSanDefaultProfile", reflect.TypeOf((*PbmResetVSanDefaultProfile)(nil)).Elem()) 2783 } 2784 2785 type PbmResetVSanDefaultProfileRequestType struct { 2786 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2787 } 2788 2789 func init() { 2790 types.Add("pbm:PbmResetVSanDefaultProfileRequestType", reflect.TypeOf((*PbmResetVSanDefaultProfileRequestType)(nil)).Elem()) 2791 } 2792 2793 type PbmResetVSanDefaultProfileResponse struct { 2794 } 2795 2796 // A ResourceInUse fault indicating that some error has occurred because a 2797 // resource was in use. 2798 // 2799 // Information about the resource that is in use may 2800 // be supplied. 2801 // 2802 // This structure may be used only with operations rendered under `/pbm`. 2803 type PbmResourceInUse struct { 2804 PbmFault 2805 2806 // Type of resource that is in use. 2807 Type string `xml:"type,omitempty" json:"type,omitempty"` 2808 // Name of the instance of the resource that is in use. 2809 Name string `xml:"name,omitempty" json:"name,omitempty"` 2810 } 2811 2812 func init() { 2813 types.Add("pbm:PbmResourceInUse", reflect.TypeOf((*PbmResourceInUse)(nil)).Elem()) 2814 } 2815 2816 type PbmResourceInUseFault PbmResourceInUse 2817 2818 func init() { 2819 types.Add("pbm:PbmResourceInUseFault", reflect.TypeOf((*PbmResourceInUseFault)(nil)).Elem()) 2820 } 2821 2822 type PbmRetrieveContent PbmRetrieveContentRequestType 2823 2824 func init() { 2825 types.Add("pbm:PbmRetrieveContent", reflect.TypeOf((*PbmRetrieveContent)(nil)).Elem()) 2826 } 2827 2828 // The parameters of `PbmProfileProfileManager.PbmRetrieveContent`. 2829 // 2830 // This structure may be used only with operations rendered under `/pbm`. 2831 type PbmRetrieveContentRequestType struct { 2832 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2833 // Array of storage profile identifiers. 2834 ProfileIds []PbmProfileId `xml:"profileIds" json:"profileIds"` 2835 } 2836 2837 func init() { 2838 types.Add("pbm:PbmRetrieveContentRequestType", reflect.TypeOf((*PbmRetrieveContentRequestType)(nil)).Elem()) 2839 } 2840 2841 type PbmRetrieveContentResponse struct { 2842 Returnval []BasePbmProfile `xml:"returnval,typeattr" json:"returnval"` 2843 } 2844 2845 type PbmRetrieveServiceContent PbmRetrieveServiceContentRequestType 2846 2847 func init() { 2848 types.Add("pbm:PbmRetrieveServiceContent", reflect.TypeOf((*PbmRetrieveServiceContent)(nil)).Elem()) 2849 } 2850 2851 type PbmRetrieveServiceContentRequestType struct { 2852 This types.ManagedObjectReference `xml:"_this" json:"_this"` 2853 } 2854 2855 func init() { 2856 types.Add("pbm:PbmRetrieveServiceContentRequestType", reflect.TypeOf((*PbmRetrieveServiceContentRequestType)(nil)).Elem()) 2857 } 2858 2859 type PbmRetrieveServiceContentResponse struct { 2860 Returnval PbmServiceInstanceContent `xml:"returnval" json:"returnval"` 2861 } 2862 2863 // The `PbmRollupComplianceResult` data object identifies the virtual machine 2864 // for which rollup compliance was checked, and it contains the overall status 2865 // and a list of compliance result objects. 2866 // 2867 // This structure may be used only with operations rendered under `/pbm`. 2868 type PbmRollupComplianceResult struct { 2869 types.DynamicData 2870 2871 // Indicates the earliest time that compliance was checked for any 2872 // of the entities in the rollup compliance check. 2873 // 2874 // The compliance 2875 // check time for a single entity is represented in the 2876 // `PbmComplianceResult*.*PbmComplianceResult.checkTime` 2877 // property. If the `PbmComplianceResult.checkTime` 2878 // property is unset for any of the objects in the <code>results</code> 2879 // array, the <code>oldestCheckTime</code> property will be unset. 2880 OldestCheckTime time.Time `xml:"oldestCheckTime" json:"oldestCheckTime"` 2881 // Virtual machine for which the rollup compliance was checked. 2882 Entity PbmServerObjectRef `xml:"entity" json:"entity"` 2883 // Overall compliance status of the virtual machine and its virtual disks. 2884 // 2885 // <code>overallComplianceStatus</code> is a string value that 2886 // corresponds to one of the 2887 // `PbmComplianceResult*.*PbmComplianceResult.complianceStatus` 2888 // values. 2889 // 2890 // The overall compliance status is determined by the following rules, applied in the order 2891 // listed: 2892 // - If all the entities are <code>compliant</code>, the overall status is 2893 // <code>compliant</code>. 2894 // - Else if any entity's status is <code>outOfDate</code>, the overall status is 2895 // <code>outOfDate</code>. 2896 // - Else if any entity's status is <code>nonCompliant</code>, the overall status is 2897 // <code>nonCompliant</code>. 2898 // - Else if any entity's status is <code>unknown</code>, the overall status is 2899 // <code>unknown</code>. 2900 // - Else if any entity's status is <code>notApplicable</code>, the overall status is 2901 // <code>notApplicable</code>. 2902 OverallComplianceStatus string `xml:"overallComplianceStatus" json:"overallComplianceStatus"` 2903 // Overall compliance task status of the virtual machine and its virtual 2904 // disks. 2905 // 2906 // <code>overallComplianceTaskStatus</code> is a string value that 2907 // corresponds to one of the `PbmComplianceResult`. 2908 // `PbmComplianceResult.complianceTaskStatus` values. 2909 OverallComplianceTaskStatus string `xml:"overallComplianceTaskStatus,omitempty" json:"overallComplianceTaskStatus,omitempty"` 2910 // Individual compliance results that make up the rollup. 2911 Result []PbmComplianceResult `xml:"result,omitempty" json:"result,omitempty"` 2912 // This property is set if the overall compliance task fails with some error. 2913 // 2914 // This 2915 // property indicates the causes of error. If there are multiple failures, it stores 2916 // these failure in this array. 2917 ErrorCause []types.LocalizedMethodFault `xml:"errorCause,omitempty" json:"errorCause,omitempty"` 2918 // Deprecated as of vSphere 2016, use 2919 // `PbmRollupComplianceResult.overallComplianceStatus` 2920 // to know if profile mismatch has occurred. If 2921 // overallComplianceStatus value is outOfDate, it means 2922 // profileMismatch has occurred. 2923 // 2924 // True if and only if `PbmComplianceResult`. 2925 // 2926 // `PbmComplianceResult.mismatch` is true for at least one 2927 // entity in the rollup compliance check. 2928 ProfileMismatch bool `xml:"profileMismatch" json:"profileMismatch"` 2929 } 2930 2931 func init() { 2932 types.Add("pbm:PbmRollupComplianceResult", reflect.TypeOf((*PbmRollupComplianceResult)(nil)).Elem()) 2933 } 2934 2935 // The `PbmServerObjectRef` data object identifies 2936 // a virtual machine, 2937 // virtual disk attached to a virtual machine, 2938 // a first class storage object 2939 // or a datastore. 2940 // 2941 // This structure may be used only with operations rendered under `/pbm`. 2942 type PbmServerObjectRef struct { 2943 types.DynamicData 2944 2945 // Type of vSphere Server object. 2946 // 2947 // The value of the <code>objectType</code> string 2948 // corresponds to one of the `PbmObjectType_enum` 2949 // enumerated type values. 2950 ObjectType string `xml:"objectType" json:"objectType"` 2951 // Unique identifier for the object. 2952 // 2953 // The value of <code>key</code> depends 2954 // on the <code>objectType</code>. 2955 // 2956 // <table border="1"cellpadding="5"> 2957 // <tr><td>`*PbmObjectType**</td><td>*`key value**</td></tr> 2958 // <tr><td>virtualMachine</td><td>_virtual-machine-MOR_</td></tr> 2959 // <tr><td>virtualDiskId</td> 2960 // <td>_virtual-disk-MOR_:_VirtualDisk.key_</td></tr> 2961 // <tr><td>datastore</td><td>_datastore-MOR_</td></tr> 2962 // <tr><td colspan="2"align="right">MOR = ManagedObjectReference</td></tr> 2963 // </table> 2964 Key string `xml:"key" json:"key"` 2965 // vCenter Server UUID; the <code>ServiceContent.about.instanceUuid</code> 2966 // property in the vSphere API. 2967 ServerUuid string `xml:"serverUuid,omitempty" json:"serverUuid,omitempty"` 2968 } 2969 2970 func init() { 2971 types.Add("pbm:PbmServerObjectRef", reflect.TypeOf((*PbmServerObjectRef)(nil)).Elem()) 2972 } 2973 2974 // The `PbmServiceInstanceContent` data object defines properties for the 2975 // `PbmServiceInstance` managed object. 2976 // 2977 // This structure may be used only with operations rendered under `/pbm`. 2978 type PbmServiceInstanceContent struct { 2979 types.DynamicData 2980 2981 // Contains information that identifies the Storage Policy service. 2982 AboutInfo PbmAboutInfo `xml:"aboutInfo" json:"aboutInfo"` 2983 // For internal use. 2984 // 2985 // Refers instance of `PbmSessionManager`. 2986 SessionManager types.ManagedObjectReference `xml:"sessionManager" json:"sessionManager"` 2987 // For internal use. 2988 // 2989 // Refers instance of `PbmCapabilityMetadataManager`. 2990 CapabilityMetadataManager types.ManagedObjectReference `xml:"capabilityMetadataManager" json:"capabilityMetadataManager"` 2991 // Provides access to the Storage Policy ProfileManager. 2992 // 2993 // Refers instance of `PbmProfileProfileManager`. 2994 ProfileManager types.ManagedObjectReference `xml:"profileManager" json:"profileManager"` 2995 // Provides access to the Storage Policy ComplianceManager. 2996 // 2997 // Refers instance of `PbmComplianceManager`. 2998 ComplianceManager types.ManagedObjectReference `xml:"complianceManager" json:"complianceManager"` 2999 // Provides access to the Storage Policy PlacementSolver. 3000 // 3001 // Refers instance of `PbmPlacementSolver`. 3002 PlacementSolver types.ManagedObjectReference `xml:"placementSolver" json:"placementSolver"` 3003 // Provides access to the Storage Policy ReplicationManager. 3004 // 3005 // Refers instance of `PbmReplicationManager`. 3006 ReplicationManager *types.ManagedObjectReference `xml:"replicationManager,omitempty" json:"replicationManager,omitempty"` 3007 } 3008 3009 func init() { 3010 types.Add("pbm:PbmServiceInstanceContent", reflect.TypeOf((*PbmServiceInstanceContent)(nil)).Elem()) 3011 } 3012 3013 type PbmUpdate PbmUpdateRequestType 3014 3015 func init() { 3016 types.Add("pbm:PbmUpdate", reflect.TypeOf((*PbmUpdate)(nil)).Elem()) 3017 } 3018 3019 // The parameters of `PbmProfileProfileManager.PbmUpdate`. 3020 // 3021 // This structure may be used only with operations rendered under `/pbm`. 3022 type PbmUpdateRequestType struct { 3023 This types.ManagedObjectReference `xml:"_this" json:"_this"` 3024 // Profile identifier. 3025 ProfileId PbmProfileId `xml:"profileId" json:"profileId"` 3026 // Capability-based update specification. 3027 UpdateSpec PbmCapabilityProfileUpdateSpec `xml:"updateSpec" json:"updateSpec"` 3028 } 3029 3030 func init() { 3031 types.Add("pbm:PbmUpdateRequestType", reflect.TypeOf((*PbmUpdateRequestType)(nil)).Elem()) 3032 } 3033 3034 type PbmUpdateResponse struct { 3035 } 3036 3037 // Information about a supported data service provided using 3038 // vSphere APIs for IO Filtering (VAIO) data service provider. 3039 // 3040 // This structure may be used only with operations rendered under `/pbm`. 3041 type PbmVaioDataServiceInfo struct { 3042 PbmLineOfServiceInfo 3043 } 3044 3045 func init() { 3046 types.Add("pbm:PbmVaioDataServiceInfo", reflect.TypeOf((*PbmVaioDataServiceInfo)(nil)).Elem()) 3047 } 3048 3049 type VersionURI string 3050 3051 func init() { 3052 types.Add("pbm:versionURI", reflect.TypeOf((*VersionURI)(nil)).Elem()) 3053 }