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

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