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

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