ResourceConfigSpec

ResourceConfigSpec
ResourceConfigSpec

This data object type is a specification for a set of resources allocated to a virtual machine or a resource pool.

AllOf
This class requires all of the following:
JSON Example
{
    "_typeName": "string",
    "entity": {
        "_typeName": "string",
        "type": "string",
        "value": "string"
    },
    "changeVersion": "string",
    "lastModified": "string",
    "cpuAllocation": {
        "_typeName": "string",
        "reservation": 0,
        "expandableReservation": false,
        "limit": 0,
        "shares": {
            "_typeName": "string",
            "shares": 0,
            "level": "string"
        },
        "overheadLimit": 0
    },
    "memoryAllocation": {
        "_typeName": "string",
        "reservation": 0,
        "expandableReservation": false,
        "limit": 0,
        "shares": {
            "_typeName": "string",
            "shares": 0,
            "level": "string"
        },
        "overheadLimit": 0
    },
    "scaleDescendantsShares": "string"
}
entity
Optional

Reference to an instance of the ManagedEntity managed object.

string
changeVersion
Optional

The changeVersion is a unique identifier for a given version of the configuration.

Each change to the configuration will update this value. This is typically implemented as an ever increasing count or a time-stamp. However, a client should always treat this as an opaque string.

If specified when updating the resource config., the changes will only be applied if the current changeVersion matches the specified changeVersion. This field can be used to guard against updates that has happened between the configInfo was read and until it is applied.

string As date-time As date-time
lastModified
Optional

Timestamp when the resources were last modified.

This is ignored when the object is used to update a configuration.

cpuAllocation
Required

The ResourceAllocationInfo data object specifies the reserved resource requirement as well as the limit (maximum allowed usage) for a given kind of resource.

This is specified for both memory allocation (specified in MB) and CPU allocation (specified in MHz).

For a ResourcePool, the ResourceAllocationInfo object describes both the guaranteed amount of the resource (reservation) and whether or not it is expandable (expandableReservation). If expandableReservation is true, then the resource pool can grow its reservation dynamically by borrowing unreserved resources from its parent resource pool. For the methods CreateResourcePool, CreateVApp and ImportVApp, you must provide values for all properties except overheadLimit; they are not optional. (Currently, overheadLimit is for vCenter Server use only.)

If the limit is configured, it must be greater than or equal to the reservation.

memoryAllocation
Required

The ResourceAllocationInfo data object specifies the reserved resource requirement as well as the limit (maximum allowed usage) for a given kind of resource.

This is specified for both memory allocation (specified in MB) and CPU allocation (specified in MHz).

For a ResourcePool, the ResourceAllocationInfo object describes both the guaranteed amount of the resource (reservation) and whether or not it is expandable (expandableReservation). If expandableReservation is true, then the resource pool can grow its reservation dynamically by borrowing unreserved resources from its parent resource pool. For the methods CreateResourcePool, CreateVApp and ImportVApp, you must provide values for all properties except overheadLimit; they are not optional. (Currently, overheadLimit is for vCenter Server use only.)

If the limit is configured, it must be greater than or equal to the reservation.

string
scaleDescendantsShares
Optional

Specifies the scaling behavior of the shares of all descendant resource pools under a given resource pool.

See ResourceConfigSpecScaleSharesBehaviorEnum for possible values. If any scaling behavior other than disabled is specified, the system will scale the CPU and memory shares allocated to each descendant resource pool with the total shares of all powered on virtual machines under each respective pool. The system will also use the SharesInfo set on each descendant resource pool as a multiplier for the scale. If a resource pool's shares are already scalable through the ResourceConfigSpec.scaleDescendantsShares setting on an ancestor resource pool, the system will not allow ResourceConfigSpec.scaleDescendantsShares to be set on the resource pool. The ResourcePoolRuntimeInfo.sharesScalable property indicates whether or not a resource pool's shares are scalable. This property does not apply to virtual machines.