Personalities APIs

Personalities APIs

APIs for managing Personalities

Table of Contents

1. Upload a Personality with RAW mode.

Used when the vSphere cluster image/personality is to be exported to LCM from non VCF deployed vCenter.

1.1. Prerequisites

The following data is required:

  • vSphere exported software spec json file path

  • vSphere exported cluster settings json file path

  • vSphere exported cluster image zip file path

  • vSphere exported cluster image iso file path

Tip : Refer to: PersonalityUploadSpec.

1.2. Steps

  • Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "uploadMode" : "RAW",
  "uploadSpecRawMode" : {
    "personalityInfoJSONFilePath" : "/home/vcf/personality/info.json",
    "personalityJSONFilePath" : "/home/vcf/personality/spec.json",
    "personalityZIPFilePath" : "/home/vcf/personality/offline.zip",
    "personalityISOFilePath" : "/home/vcf/personality/bundle.iso"
  },
  "name" : "Sample Raw Personality"
}'

HTTP Request

POST /v1/personalities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 366
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "uploadMode" : "RAW",
  "uploadSpecRawMode" : {
    "personalityInfoJSONFilePath" : "/home/vcf/personality/info.json",
    "personalityJSONFilePath" : "/home/vcf/personality/spec.json",
    "personalityZIPFilePath" : "/home/vcf/personality/offline.zip",
    "personalityISOFilePath" : "/home/vcf/personality/bundle.iso"
  },
  "name" : "Sample Raw Personality"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/21d18c5d-b0b4-43cc-bdfe-6a9a75939b4a
Content-Length: 318

{
  "id" : "21d18c5d-b0b4-43cc-bdfe-6a9a75939b4a",
  "name" : "vSphere Lifecycle Manager Image Upload vSphere7.0-Dell-SystemAdmin",
  "type" : "PERSONALITY_UPLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2025-03-21T09:42:55.663Z",
  "resources" : [ ],
  "isCancellable" : false,
  "isRetryable" : false
}
  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip : Refer to: Get a Task.

Upload a Personality with REFERRED mode. Get a cluster image/personality by Id Get a cluster image/personality by name Get all the Personalities/cluster images by base version [_gettasks] API [_gettask] API

2. Get Images from vCenter Image Library.

2.1. Initiate vCenter Image Library Query

API is used to initiate a query to fetch images from the image library of vCenters

Prerequisites

The following data is required

  • List of IDs of vCenters
Steps
  • Invoke the API to initiate the query to fetch images from the image library of vCenters

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vcenters/repository-images/queries' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "vCenterIds" : [ "6fdd5ec0-de8e-4e67-9930-51a4d302ed45" ]
}'

HTTP Request

POST /v1/vcenters/repository-images/queries HTTP/1.1
Content-Type: application/json
Content-Length: 63
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "vCenterIds" : [ "6fdd5ec0-de8e-4e67-9930-51a4d302ed45" ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/vcenters/repository-images/queries/793949ae-9e3a-4772-988f-5c4cf5eaa9ee
Content-Type: application/json
Content-Length: 242

{
  "errors" : [ ],
  "queryInfo" : {
    "status" : "IN_PROGRESS",
    "queryId" : "793949ae-9e3a-4772-988f-5c4cf5eaa9ee",
    "completed" : false,
    "processing" : true,
    "failure" : false
  },
  "result" : {
    "elements" : [ ]
  }
}

Tip : Poll until "status" is not "IN_PROGRESS" using the "id" from the response using the API to get vCenter Image Library Query Response. If the "status" is "SUCCESSFUL", the query response is completed successfully.

2.2. Get vCenter Image Library Query Response

API is used to get the response to the submitted query for images from the image library of vCenters

Prerequisites

The following data is required:

  • ID of the Query
Steps
  • Invoke the API to get the response to the submitted query for images from the image library of vCenters

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vcenters/repository-images/queries/793949ae-9e3a-4772-988f-5c4cf5eaa9ee' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vcenters/repository-images/queries/793949ae-9e3a-4772-988f-5c4cf5eaa9ee HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 789

{
  "errors" : [ ],
  "queryInfo" : {
    "status" : "COMPLETED",
    "queryId" : "793949ae-9e3a-4772-988f-5c4cf5eaa9ee",
    "completed" : true,
    "processing" : false,
    "failure" : false
  },
  "result" : {
    "elements" : [ {
      "name" : "Personality-01",
      "repositoryImageId" : {
        "vCenterImageId" : "repo-img-id-1",
        "vCenterId" : "6fdd5ec0-de8e-4e67-9930-51a4d302ed45"
      },
      "creationTime" : "2024-10-29T00:00:00.000Z",
      "modifiedTime" : "2024-10-29T00:00:00.000Z",
      "repositoryImageSoftware" : {
        "baseImage" : {
          "version" : "9.0.0.0.24376576",
          "displayName" : "ESXi",
          "displayVersion" : "9.0 GA - 24376576",
          "releaseTimestamp" : "2024-10-29T00:00:00.000Z"
        }
      }
    } ]
  }
}

3. Upload a Personality with REFERRED mode.

Used when the vSphere cluster image/personality is to be exported to LCM from SDDC deployed vCenter

3.1. Export from Cluster using Cluster Id

Prerequisites

The following data is required:

  • vCenter Id

  • Name of the personality

  • Cluster Id

Steps
  • Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "uploadMode" : "REFERRED",
  "uploadSpecReferredMode" : {
    "vCenterId" : "6b4c3a21-e405-4513-ab8c-4a990f245853",
    "clusterId" : "a43708e7-19ac-43cb-adba-4be419aa9b4a"
  },
  "name" : "vSphere7.0-Dell-SystemAdmin"
}'

HTTP Request

POST /v1/personalities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 224
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "uploadMode" : "REFERRED",
  "uploadSpecReferredMode" : {
    "vCenterId" : "6b4c3a21-e405-4513-ab8c-4a990f245853",
    "clusterId" : "a43708e7-19ac-43cb-adba-4be419aa9b4a"
  },
  "name" : "vSphere7.0-Dell-SystemAdmin"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/21d18c5d-b0b4-43cc-bdfe-6a9a75939b4a
Content-Length: 318

{
  "id" : "21d18c5d-b0b4-43cc-bdfe-6a9a75939b4a",
  "name" : "vSphere Lifecycle Manager Image Upload vSphere7.0-Dell-SystemAdmin",
  "type" : "PERSONALITY_UPLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2025-03-21T09:42:55.748Z",
  "resources" : [ ],
  "isCancellable" : false,
  "isRetryable" : false
}

Tip : Refer to: PersonalityUploadSpec.

  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip : Refer to: Get a Task.

3.2. Export from Cluster using Cluster MOR Id

Prerequisites

The following data is required:

  • vCenter Id

  • Name of the personality

  • Cluster MOR Id

Steps
  • Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "uploadMode" : "REFERRED",
  "uploadSpecReferredMode" : {
    "vCenterId" : "35f549eb-a2b5-4215-a0ef-2c874dc1bbcf",
    "clusterMorId" : "domain-c8"
  },
  "name" : "vSphere7.0-Dell-SystemAdmin"
}'

HTTP Request

POST /v1/personalities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 200
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "uploadMode" : "REFERRED",
  "uploadSpecReferredMode" : {
    "vCenterId" : "35f549eb-a2b5-4215-a0ef-2c874dc1bbcf",
    "clusterMorId" : "domain-c8"
  },
  "name" : "vSphere7.0-Dell-SystemAdmin"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/21d18c5d-b0b4-43cc-bdfe-6a9a75939b4a
Content-Length: 318

{
  "id" : "21d18c5d-b0b4-43cc-bdfe-6a9a75939b4a",
  "name" : "vSphere Lifecycle Manager Image Upload vSphere7.0-Dell-SystemAdmin",
  "type" : "PERSONALITY_UPLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2025-03-21T09:42:55.291Z",
  "resources" : [ ],
  "isCancellable" : false,
  "isRetryable" : false
}

Tip : Refer to: PersonalityUploadSpec.

  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip : Refer to: Get a Task.

3.3. Export from vCenter Image Library

Prerequisites
  • vCenter Id

  • Name of the personality

  • Source ID of the image in vCenter

Tip : To obtain the Source ID of the images in the vCenter Image Library, Refer to: Get Images from vCenter Image Library. |

Note : The name of the personality must be the same as the image name in the vCenter Image Library.

Steps
  • Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "uploadMode" : "REFERRED",
  "uploadSpecReferredMode" : {
    "vCenterId" : "102d0a93-64a9-444a-be66-3c7ed9c51b38",
    "vCenterImageId" : "software-spec-01"
  },
  "name" : "Personality-01"
}'

HTTP Request

POST /v1/personalities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 196
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "uploadMode" : "REFERRED",
  "uploadSpecReferredMode" : {
    "vCenterId" : "102d0a93-64a9-444a-be66-3c7ed9c51b38",
    "vCenterImageId" : "software-spec-01"
  },
  "name" : "Personality-01"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/21d18c5d-b0b4-43cc-bdfe-6a9a75939b4a
Content-Length: 318

{
  "id" : "21d18c5d-b0b4-43cc-bdfe-6a9a75939b4a",
  "name" : "vSphere Lifecycle Manager Image Upload vSphere7.0-Dell-SystemAdmin",
  "type" : "PERSONALITY_UPLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2025-03-21T09:42:56.040Z",
  "resources" : [ ],
  "isCancellable" : false,
  "isRetryable" : false
}

Tip : Refer to: PersonalityUploadSpec.

  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip : Refer to: Get a Task.

Get Images from vCenter Image Library. Upload a Personality with RAW mode. Get a cluster image/personality by Id Get a cluster image/personality by name Get all the Personalities/cluster images by base version

4. Get a cluster image/personality by name

  • Get Personalities By Id API is used to get a specific vSphere cluster image by the name.

4.1. Prerequisites

The following data is required:

  • Name of the cluster image

4.2. Steps

  • Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities?personalityName=esx-personality' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/personalities?personalityName=esx-personality HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1650

{
  "elements" : [ {
    "version" : "1",
    "personalityId" : "bbd38966-8537-46f1-9a54-06fbfe7079c6",
    "personalityName" : "test-display-name",
    "description" : "test-desc",
    "createdBy" : "USER",
    "imageChecksum" : "test-checksum",
    "vsphereExportedZipPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.zip",
    "vsphereExportedIsoPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.iso",
    "vsphereExportedJsonPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.json",
    "displayName" : "test-display-name",
    "importTimestamp" : "2025-03-21T09:42:55.100Z",
    "tags" : [ ],
    "softwareInfo" : {
      "baseImage" : {
        "version" : "7.0.0-0.0.30340198"
      },
      "removedComponents" : {
        "vnic-enablement-component" : {
          "version" : "700.2.10.10-1",
          "details" : {
            "vendor" : "Hewlett Packard Enterprise",
            "displayName" : "Virtual NIC Enablement Bundle"
          }
        }
      },
      "alternativeImages" : {
        "image-1" : {
          "baseImage" : {
            "version" : "9.0.0.0.24225756"
          },
          "selectionCriteria" : {
            "selectionType" : "HOST_HARDWARE_SPEC"
          },
          "displayName" : "DellImage"
        }
      }
    },
    "type" : "COMPOSITE"
  } ],
  "pageMetadata" : {
    "pageNumber" : 1,
    "pageSize" : 2000,
    "totalElements" : 1,
    "totalPages" : 1
  }
}

Upload a Personality with RAW mode. Upload a Personality with REFERRED mode. Get a cluster image/personality by Id Get all the Personalities/cluster images by base version

5. Get a cluster image/personality by Id

  • Get Personalities By Id API is used to get a specific vSphere cluster image by the Id.

5.1. Prerequisites

The following data is required:

  • Id of the cluster image

5.2. Steps

  • Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities/80083758-52db-4571-af20-567a76e33943' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/personalities/80083758-52db-4571-af20-567a76e33943 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1432

{
  "version" : "1",
  "personalityId" : "bbd38966-8537-46f1-9a54-06fbfe7079c6",
  "personalityName" : "test-display-name",
  "description" : "test-desc",
  "createdBy" : "USER",
  "imageChecksum" : "test-checksum",
  "vsphereExportedZipPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.zip",
  "vsphereExportedIsoPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.iso",
  "vsphereExportedJsonPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.json",
  "displayName" : "test-display-name",
  "importTimestamp" : "2025-03-21T09:42:55.736Z",
  "tags" : [ ],
  "softwareInfo" : {
    "baseImage" : {
      "version" : "7.0.0-0.0.30340198"
    },
    "removedComponents" : {
      "vnic-enablement-component" : {
        "version" : "700.2.10.10-1",
        "details" : {
          "vendor" : "Hewlett Packard Enterprise",
          "displayName" : "Virtual NIC Enablement Bundle"
        }
      }
    },
    "alternativeImages" : {
      "image-1" : {
        "baseImage" : {
          "version" : "9.0.0.0.24225756"
        },
        "selectionCriteria" : {
          "selectionType" : "HOST_HARDWARE_SPEC"
        },
        "displayName" : "DellImage"
      }
    }
  },
  "type" : "COMPOSITE"
}

Upload a Personality with RAW mode. Upload a Personality with REFERRED mode. Get a cluster image/personality by name Get all the Personalities/cluster images by base version

6. Get all the Personalities/cluster images by base version

  • Get the Personalities API is used to get all the personalities by the base version. Similarly the api can be used for filtering based on the other Personality attributes such as addOnName, addOnVendorName, componentName and componentVendorNames.

6.1. Prerequisites

The following data is required:

  • Base Version of the Personality

6.2. Steps

  • Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities?baseOSVersion=6.7.0-15160138' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/personalities?baseOSVersion=6.7.0-15160138 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1650

{
  "elements" : [ {
    "version" : "1",
    "personalityId" : "bbd38966-8537-46f1-9a54-06fbfe7079c6",
    "personalityName" : "test-display-name",
    "description" : "test-desc",
    "createdBy" : "USER",
    "imageChecksum" : "test-checksum",
    "vsphereExportedZipPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.zip",
    "vsphereExportedIsoPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.iso",
    "vsphereExportedJsonPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.json",
    "displayName" : "test-display-name",
    "importTimestamp" : "2025-03-21T09:42:56.202Z",
    "tags" : [ ],
    "softwareInfo" : {
      "baseImage" : {
        "version" : "7.0.0-0.0.30340198"
      },
      "removedComponents" : {
        "vnic-enablement-component" : {
          "version" : "700.2.10.10-1",
          "details" : {
            "vendor" : "Hewlett Packard Enterprise",
            "displayName" : "Virtual NIC Enablement Bundle"
          }
        }
      },
      "alternativeImages" : {
        "image-1" : {
          "baseImage" : {
            "version" : "9.0.0.0.24225756"
          },
          "selectionCriteria" : {
            "selectionType" : "HOST_HARDWARE_SPEC"
          },
          "displayName" : "DellImage"
        }
      }
    },
    "type" : "COMPOSITE"
  } ],
  "pageMetadata" : {
    "pageNumber" : 1,
    "pageSize" : 2000,
    "totalElements" : 1,
    "totalPages" : 1
  }
}

Upload a Personality with RAW mode. Upload a Personality with REFERRED mode. Get a cluster image/personality by Id Get a cluster image/personality by name
Last updated 2025-03-21 15:13:04 +0530

Operations
PUT
Upload Personality Files
Upload personality files to SDDC Manager
GET
Get Personalities
Get the Personalities
POST
Upload Personality
Upload a Personality
DELETE
Delete Personality
Delete the personality based on either name or id
GET
Get Personality
Get a Personality by its id