PbmCapabilityProfile

PbmCapabilityProfile
PbmCapabilityProfile

The PbmCapabilityProfile data object defines capability-based profiles.

A capability-based profile is derived from tag-based storage capabilities or from vSAN storage capabilities.

This structure may be used only with operations rendered under /pbm.

AllOf
This class requires all of the following:
JSON Example
{
    "_typeName": "string",
    "profileId": {
        "_typeName": "string",
        "uniqueId": "string"
    },
    "name": "string",
    "description": "string",
    "creationTime": "string",
    "createdBy": "string",
    "lastUpdatedTime": "string",
    "lastUpdatedBy": "string",
    "profileCategory": "string",
    "resourceType": {
        "_typeName": "string",
        "resourceType": "string"
    },
    "constraints": {
        "_typeName": "string"
    },
    "generationId": 0,
    "isDefault": false,
    "systemCreatedProfileType": "string",
    "lineOfService": "string",
    "k8sCompliantName": "string",
    "otherK8sCompliantNames": [
        "string"
    ]
}
string
profileCategory
Required

Indicates whether the profile is requirement profile, a resource profile or a data service profile.

The profileCategory is a string value that corresponds to one of the PbmProfileCategoryEnumEnum values.

  • REQUIREMENT profile - Defines the storage constraints applied to virtual machine placement. Requirements are defined by the user and can be associated with virtual machines and virtual disks. During provisioning, you can use a requirements profile for compliance and placement checking to support selection and configuration of resources.
  • RESOURCE profile - Specifies system-defined storage capabilities. You cannot modify a resource profile. You cannot associate a resource profile with vSphere entities, use it during provisioning, or target entities for resource selection or configuration. This type of profile gives the user visibility into the capabilities supported by the storage provider.
  • DATA_SERVICE_POLICY - Indicates a data service policy that can be embedded into another storage policy. Policies of this type can't be assigned to Virtual Machines or Virtual Disks. This policy cannot be used for compliance checking.
resourceType
Required

Type of the target resource to which the capability information applies.

A fixed enum that defines resource types for which capabilities can be defined see PbmProfileResourceType, PbmProfileResourceTypeEnumEnum

constraints
Required

Subprofiles that describe storage requirements or storage provider capabilities, depending on the profile category (REQUIREMENT or RESOURCE).

integer As int64 As int64
generationId
Optional

Generation ID is used to communicate the current version of the profile to VASA providers.

It is only applicable to REQUIREMENT profile types. Every time a requirement profile is edited, the Server will increment the generationId. You do not need to set the generationID. When an object is created (or reconfigured), the Server will send the requirement profile content, profile ID and the generationID to VASA provider.

boolean
isDefault
Required

Deprecated since it is not supported.

Not supported in this release.

string
systemCreatedProfileType
Optional

Indicates the type of system pre-created default profile.

This will be set only for system pre-created default profiles. And this is not set for RESOURCE profiles.

string
lineOfService
Optional

This property is set only for data service policy.

Indicates the line of service PbmLineOfServiceInfoLineOfServiceEnumEnum of the data service policy.

string
k8sCompliantName
Optional

Indicates compliant name to be used as K8s StorageClass name when this policy is used for K8s workloads.

It essentially maps Storage Policy to corresponding StorageClass name across Supervisor clusters within a vCenter server. When this policy is assigned to a K8s Namespace, then a StorageClass with name #K8sCompliantName and optionally a WaitForFirstConsumer(WFFC) StorageClass with the name '#K8sCompliantName-latebinding' gets created. Duplicating both K8s compliant name and latebinding K8s compliant name across storage profiles in a vCenter is not allowed, i.e. it shouldn't match with k8sCompliantName and otherK8sCompliantNames of any other profile. Once the value for this field is set, it can't be changed. This name is RFC 1123 compliant. For new storage policy being created, compliant name will automatically be generated and populated based on policy name if it's not provided in the profile createSpec. For pre-existing storage policies in the Brownfield setup, K8s compliant name would be set during the vCenter upgrade.

array of string
otherK8sCompliantNames
Optional

Indicates the reserved K8s compliant names other than k8sCompliantName for a profile.

These names shouldn't be used as a K8s StorageClass's name associated with any other profiles. Note that, it doesn't indicate that StorageClass with following names actually exists, i.e. it's not a profile-K8s StorageClass association data. These are used to keep track of all the reserved K8s compliant names which can't be used for any other profile and used to avoid any K8s compliant name collision when a profile is being created. It can include the following: 1. K8s compliant name to be used for a WaitForFirstConsumer(WFFC) StorageClass which is in the format 'k8sCompliantName-latebinding'. 2. Name of all the StorageClasss except the one set in k8sCompliantName if it's a Brownfield profile associated with multiple K8s StorageClasss. For a new storage policy being created, WFFC StorageClass name is automatically generated and populated here. So a newly created profile will always have 'k8sCompliantName -latebinding' as a otherK8sCompliantNames. Whereas for a Brownfield profile, WFFC StorageClass name is reserved only if it's not already taken by a different profile.