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: &lt;capability\_unique\_identifier&gt;.&lt;property\_id&gt;
   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&lt;int&gt;, range&lt;long&gt;, or range&lt;timespan&gt;.
   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 &lt;--&gt; 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  	// &lt;messageCatalogKeyPrefix&gt;.summary and &lt;messageCatalogKeyPrefix&gt;.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  }