You can use the REST API reservation service to display information about available resources for a vSphere reservation, such as storage and network information.

Overview

This example illustrates how to get a permissible value list for the resourcePool field. You can use the generated output as input for creating or updating a vSphere reservation.

Table 1. Extension Fields Supported in vSphere Reservations

Field ID

Data Type

Type Class

Permissible Value

Depends on Field

reservationNetworks

Complex Type

reservationNetwork

Yes

computeResource

reservationVCNSTransportZone

Entity Reference

NetworkScopes

Yes

computeResource

reservationVCNSSecurityGroups

Entity Reference

SecurityGroups

Yes

computeResource

reservationMemory

Complex Type

reservationMemory

Yes

computeResource

computeResource

Entity Reference

ComputeResource

Yes

NA

machineQuota

Integer

N/A

No

NA

reservationStorages

Complex Type

reservationStorage

Yes

computeResource

resourcePool

Entity Reference

ResourcePools

Yes

computeResource

reservationVCNSRoutedGateways

Complex Type

reservationVCNSRoutedGateway

Yes

computeResource

Note:

The information in the table is subject to change. Call the data and schema service to retrieve the latest field information.

For related information, see Syntax for Displaying a Schema Definition for a vSphere Reservation.

Input

Use the supported input parameters to control the command output.

Input

Description

URL

https://$host/reservation-service/api/data-service/schema/$schemaclassid/default/$fieldid/values

Method

Post

$host

Specifies the host name and fully qualified domain name or IP address of the vRealize Automation identity server.

$token

Specifies a valid HTTP bearer token with necessary credentials.

$schemaclassid

Specifies the schema class ID.

This example illustrates how to use the resourcePool field of a vSphere reservation type as an example. The schema class ID of a vSphere reservation is Infrastructure.Reservation.Virtual.vSphere. For this example, the input value for $schemaclassid is Infrastructure.Reservation.Virtual.vSphere.

$fieldId

Specifies the field ID of the resource.

For example, the field ID for the resource pool is resourcePool. For this example, the input value for $fieldId is resourcePool.

HTTP body

Contains information about dependencies.

Because the dependency of this permissible value field is computeResource, you must provide a dependency definition in the HTTP body.

Output

The command output contains property names and values based on the command input parameters.

Property

Description

values

An array of data rows, each of which represents one of the resource pool objects returned in a pageable list. Each resource pool object contains an underlyingValue and label entry.

underlyingValue

JSON string representing one permissible value for a field:

  • type -- data type of entityRef, complexRef, or primary

  • component ID -- componentID

  • classId -- schema class ID of current data type

  • id -- unique resource pool ID

  • label -- resource pool label

label

Specifies the resource pool label. This value matches the underlyingValue value.

curl Command

The following example command returns vSphere reservation storage information.

curl --insecure -H "Accept:application/json" 
-H "Authorization: Bearer $token" 
https://$host/reservation-service/api/data-service/schema/Infrastructure.Reservation.Virtual.vSphere/default/resourcePool/values  -d “{
  "text": "",
  "dependencyValues": {
    "entries": [{
      "key": "computeResource",
      "value": {
        "type": "entityRef",
        "componentId": null,
        "classId": "ComputeResource",
        "id": " cc254a84-95b8-434a-874d-bdfef8e8ad2c "
      }
    }]
  }
}”

JSON Output

The following JSON output is returned based on the command input.

In the following example output, the CoreDev resource pool is shown. Copy the output underlyingValue section into an XML editor and use it as input to create or update a reservation. Note that other REST calls can be used such as reservationNetworks and reservationStorages to get other resources for the reservation.

{
  "values": [{
    "underlyingValue": {
      "type": "entityRef",
      "componentId": null,
      "classId": "ResourcePools",
      "id": " 4e51fabc-19e8-4e79-b413-d52309b3bb62",
      "label": " CoreDev"
    },
    "label": " CoreDev"
  },
  {
    "underlyingValue": {
      "type": "entityRef",
      "componentId": null,
      "classId": "ResourcePools",
      "id": "1186b5cc-cdef-4afb-8653-0ad41a36c194",
      "label": "Documentation"
    },
    "label": "Documentation"
  },
  //Omit other resource pool list
	]
}