Authentication

When accessing Rafay's REST APIs you must provide the following header in your request. Each request must contain the access key ID of the identity (user) you are using to send your request.

This can be obtained from the Rafay admin console for the user under Managed Keys.

API Versioning

API VersionHeader
v1 / v2X-RAFAY-API-KEYID
v3X-API-KEY

Default API Endpoint

https://console.<your_domain>.ai/
For partners, the API endpoint must be substituted with their own FQDN.

Project Management APIs

List Projects

Retrieves a list of all projects accessible to the authenticated user, with support for pagination and sorting.

GET/auth/v1/projects/

Base URL

https://api.<your-domain>.com

Authentication

HeaderValue
x-api-key<YOUR_API_KEY>

Query Parameters

ParameterTypeDescription
limitoptionalintegerMaximum number of projects to return
orderoptionalstringASC or DESC
orderbyoptionalstringField used for sorting (e.g., name)

Error Responses

HTTP CodeMeaningDescription
400Bad RequestInvalid query parameters
401UnauthorizedMissing or invalid API key
403ForbiddenAccess denied
500Internal Server ErrorUnexpected system error
cURL
curl -X GET \
  "https://api.<your-domain>.com/auth/v1/projects/?limit=1000&order=ASC&orderby=name" \
  -H "Accept: application/json" \
  -H "x-api-key: <YOUR_API_KEY>"
Response — 200 OK
{
  "count": 2,
  "items": [
    {
      "id": "qkolyjk",
      "name": "batch-batch-7180s",
      "description": "Batch processing project",
      "createdAt": "2025-11-10T06:22:18Z",
      "modifiedAt": "2025-12-01T04:15:42Z"
    }
  ]
}

User Management APIs

List Users

Returns a list of available local users.

GET/auth/v1/users/

Authentication

HeaderDescription
x-api-keyAPI key issued to the customer

Query Parameters

ParameterTypeDescription
limitoptionalintegerNumber of users to return
offsetoptionalintegerPagination offset
orderByoptionalstringSort field
orderoptionalstringASC or DESC
qoptionalstringQuery parameter

Error Responses

HTTP StatusDescription
400Bad request
401Missing or invalid API key
403Returned when the user does not have permission to access the resource
Response — 200 OK
{
  "users": [
    {
      "account": {
        "id": "7dkgjkx",
        "username": "user@domain.co",
        "first_name": "User",
        "last_name": "Domain",
        "user_type": "CONSOLE",
        "active": true
      }
    }
  ],
  "count": 1,
  "offset": 0,
  "limit": 0
}

Create User

Creates a new local user.

POST/auth/v1/users/

Authentication

HeaderDescription
x-api-keyCustomer API key

Request Body — Required Fields

FieldTypeDescription
usernamerequiredstringEmail of the user
first_namerequiredstringFirst name
last_namerequiredstringLast name
passwordrequiredstringPassword
user_typerequiredobjectCONSOLE or API

Error Responses

HTTP StatusDescription
400Bad request
401Missing or invalid API key
403Permission denied
Request Body
{
  "account": {
    "username": "user@domain.co",
    "first_name": "User",
    "last_name": "Domain",
    "password": "test0123",
    "user_type": "CONSOLE"
  }
}
Response — 201 Created
{
  "account": {
    "id": "dk3lekn",
    "username": "user@domain.co",
    "first_name": "User",
    "last_name": "Domain",
    "user_type": "CONSOLE"
  },
  "sso_account": null,
  "is_sso": false
}

Delete User

Deletes a local user.

DELETE/auth/v1/users/{accountId}/

Authentication

HeaderDescription
x-api-keyCustomer API key

Path Parameters

ParameterTypeDescription
accountIdrequiredstringAccount ID of the user (e.g., dk3lekn)

Error Responses

HTTP StatusDescription
400Bad request
401Missing or invalid API key
403Permission denied
Response — 204 Deleted
// No response body returned

Assign User to Group(s)

Assign a user to one or more groups.

POST/auth/v1/users/{accountId}/addtogroups/

Authentication

HeaderDescription
x-api-keyCustomer API key

Path Parameters

ParameterTypeDescription
accountIdrequiredstringAccount ID of the user

Request Body — Required Fields

FieldTypeDescription
idrequiredstringID of the group
namerequiredstringName of the group
typerequiredstringSYSTEM

Error Responses

HTTP StatusDescription
400Bad request
401Missing or invalid API key
403Permission denied
Request Body
[{ "id": "lk557ke", "type": "SYSTEM", "name": "DemoAdmin" }]
Response — 200 OK
// Successful assignment of user to group(s)

Remove User from Group(s)

Remove a user from one or more groups.

POST/auth/v1/users/{accountId}/removefromgroups/

Authentication

HeaderDescription
x-api-keyCustomer API key

Path Parameters

ParameterTypeDescription
accountIdrequiredstringAccount ID of the user

Request Body — Required Fields

FieldTypeDescription
idrequiredstringID of the group
namerequiredstringName of the group
typerequiredstringSYSTEM

Error Responses

HTTP StatusDescription
400Bad request
401Missing or invalid API key
403Permission denied
Request Body
[{ "id": "lk557ke", "type": "SYSTEM", "name": "DemoAdmin" }]
Response — 200 OK
// Successful removal of user from group(s)

Assign User to Project

Assign a user to a project with one or more roles.

POST/auth/v1/users/{accountId}/assigntoproject/

Authentication

HeaderDescription
x-api-keyCustomer API key

Path Parameters

ParameterTypeDescription
accountIdrequiredstringAccount ID of the user

Request Body — Required Fields

FieldTypeDescription
rolesrequiredarrayOne or more roles
role.idrequiredstringRole ID
role.namerequiredstringRole name
role.scoperequiredstringPROJECT
role.role_typerequiredstringBASE or CUSTOM
project.idrequiredstringID of the project
project.namerequiredstringName of the project

Error Responses

HTTP StatusDescription
400Bad request
401Missing or invalid API key
403Permission denied
Request Body
{
  "roles": [{ "id": "gdk6g21", "name": "PROJECT_ADMIN", "scope": "PROJECT" }],
  "project": { "id": "lk5rw2e", "name": "defaultproject" }
}
Response — 200 OK
// Successful assignment of user to the project

Unassign User from Project

Unassign a user from a project with one or more roles.

POST/auth/v1/users/{accountId}/unassignfromproject/

Authentication

HeaderDescription
x-api-keyCustomer API key

Path Parameters

ParameterTypeDescription
accountIdrequiredstringAccount ID of the user

Error Responses

HTTP StatusDescription
400Bad request
401Missing or invalid API key
403Permission denied
Request Body
{
  "project": { "id": "2wxr66m", "name": "actions" },
  "roles": [{ "role": { "id": "w2lrn2p", "scope": "PROJECT" } }]
}
Response — 200 OK
// Successful unassignment of user from the project

Virtual Private Network Management APIs

VPC Service API

The VPC Service API enables customers to create and manage a Virtual Private Cloud (VPC) within a project. A VPC provides isolated networking with configurable subnets, gateways, and optional public IP support. Once deployed, the VPC can be used to provision compute resources such as virtual machines.

Base URL

https://<base-url>/apis/paas.envmgmt.io/v1

Authentication

HeaderValue
x-api-key<YOUR_API_KEY>

Create (Provision) VPC Service

Creates a VPC service under a specified project. The service is created in a not_deployed state and must be deployed before it can be used for compute workloads.

POST/projects/{projectName}/services

Path Parameters

NameTypeDescription
projectNamerequiredstringName of the project

VPC Configuration Variables

Variable NameDescriptionExample
Default VPC NameName of the VPCdefault
Default Subnet CIDRSubnet CIDR range192.168.16.0
Default Subnet GatewaySubnet gateway IP192.168.16.254
Public IP EnabledEnable public IP assignmentTrue / False

Service Lifecycle States

StateDescription
not_deployedService created but not active
deployingDeployment in progress
deployedVPC ready for compute
failedDeployment failed

Error Codes

HTTP CodeMeaning
400Invalid request
401Invalid or missing API key
403Access denied
409Service already exists
500Internal server error
cURL
curl -X POST \
  https://api.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/system-catalog/services \
  -H "Content-Type: application/json" \
  -H "x-api-key: <YOUR_API_KEY>" \
  -d '{
    "apiVersion": "paas.envmgmt.io/v1",
    "kind": "Service",
    "metadata": { "name": "vpc-test-1", "project": "system-catalog" },
    "spec": {
      "serviceProfile": { "name": "vpc", "systemCatalog": true },
      "variables": [
        { "name": "Default Subnet CIDR", "value": "192.168.16.0" },
        { "name": "Default Subnet Gateway", "value": "192.168.16.254" },
        { "name": "Public IP Enabled", "value": "True" }
      ],
      "serviceType": "custom"
    },
    "status": { "status": "not_deployed" }
  }'
Response — 201 Created
{
  "metadata": { "name": "vpc-test-1", "project": "system-catalog" },
  "status": { "status": "not_deployed" }
}

Deploy (Publish) VPC Service

Activates the service and provisions the underlying VPC infrastructure. Once deployment is complete, the VPC becomes available for compute (VM) provisioning.

POST/projects/{projectName}/services/{serviceName}/publish

Path Parameters

NameTypeDescription
projectNamerequiredstringProject containing the VPC service
serviceNamerequiredstringName of the VPC service to deploy

Error Codes

HTTP CodeDescription
400Invalid request body
401Missing or invalid API key
404Service not found
409Service already deployed
500Internal server error
cURL
curl -X POST \
  https://api.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/system-catalog/services/vpc-test-1/publish \
  -H "x-api-key: <YOUR_API_KEY>"
Response — 202 Accepted
{
  "metadata": { "name": "vpc-test-1", "project": "system-catalog" },
  "status": { "status": "deploying" }
}

End-to-End Workflow

Follow these steps to provision and use a VPC for compute workloads.

1
Create VPC Service
POST /projects/{projectName}/services
2
Deploy (Publish) VPC Service
POST /projects/{projectName}/services/{serviceName}/publish
3
Provision Compute Resources
Using the deployed VPC

Workspaces

List Workspaces

Retrieves a list of all workspaces within a specified project.

GET/apis/paas.envmgmt.io/v1/projects/{projectName}/workspaces

Authentication

HeaderValue
X-API-KEY<apiKey>

Query Parameters

ParameterTypeDescription
limitoptionalintegerNumber greater than zero. Default: 50
offsetoptionalintegerNumber greater than zero. Default: 0
orderoptionalenumASC or DESC. Default: DESC
orderByoptionalenumSet to createdAt. Default: createdAt
cURL
curl --location \
  'https://api.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/vm-project/workspaces?limit=1000&offset=0&order=DESC&orderBy=createdAt' \
  --header 'x-api-key: <YOUR_API_KEY>'
Response — 200 OK
{
  "apiVersion": "paas.envmgmt.io/v1",
  "kind": "WorkspaceList",
  "metadata": { "count": 1, "limit": 50 },
  "items": [{
    "kind": "Workspace",
    "metadata": {
      "name": "dev",
      "project": "vm-project",
      "id": "0199dfc7-9552-70e0-a20e-0fc9bfab1b19",
      "createdAt": "2025-10-13T22:53:43.122049Z"
    }
  }]
}

Create / Update Workspace

The same API can be used for both create and update operations.

POST/apis/paas.envmgmt.io/v1/projects/{projectName}/workspaces

Authentication

HeaderValue
X-API-KEY<apiKey>

Query Parameters

ParameterTypeDescription
fail-on-existsoptionalbooleanWhether the API should fail if the object already exists

Request Body

FieldTypeDescription
metadata.namerequiredstringName of the workspace
metadata.projectrequiredstringName of the project
metadata.displayNameoptionalstringDisplay name
metadata.descriptionoptionalstringDescription
cURL
curl --location \
  'https://api.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/vm-project/workspaces?fail-on-exists=true' \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <YOUR_API_KEY>' \
  --data '{
    "apiVersion": "paas.envmgmt.io/v1",
    "kind": "Workspace",
    "metadata": { "name": "dev", "project": "vm-project" }
  }'
Response — 200 OK
{
  "apiVersion": "paas.envmgmt.io/v1",
  "kind": "Workspace",
  "metadata": {
    "name": "dev1",
    "project": "vm-project",
    "createdAt": "2025-10-14T18:14:03.687874Z"
  }
}

Get Workspace

Retrieves details of a specific workspace by name.

GET/apis/paas.envmgmt.io/v1/projects/{projectName}/workspaces/{workspaceName}

Authentication

HeaderValue
X-API-KEY<apiKey>

Path Parameters

ParameterTypeDescription
projectNamerequiredstringName of the project
workspaceNamerequiredstringName of the workspace
cURL
curl --location \
  'https://api.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/vm-project/workspaces/dev1' \
  --header 'x-api-key: <YOUR_API_KEY>'
Response — 200 OK
{
  "apiVersion": "paas.envmgmt.io/v1",
  "kind": "Workspace",
  "metadata": {
    "name": "dev",
    "project": "vm-project",
    "createdAt": "2025-10-13T22:53:43.122049Z"
  }
}

Delete Workspace

Deletes a specified workspace from a project.

DELETE/apis/paas.envmgmt.io/v1/projects/{projectName}/workspaces/{workspaceName}

Authentication

HeaderValue
X-API-KEY<apiKey>

Path Parameters

ParameterTypeDescription
projectNamerequiredstringName of the project
workspaceNamerequiredstringName of the workspace to delete
cURL
curl --location --request DELETE \
  'https://portal.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/vm-project/workspaces/dev1' \
  --header 'x-api-key: <YOUR_API_KEY>'
Response — 200 OK
null

Baremetal Instances

Create Baremetal Instance

Creates a new Baremetal compute instance under a specified project and workspace.

POST/apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>
Content-Typeapplication/json

Path Parameters

NameRequiredDescription
projectrequiredProject name (e.g., defaultproject)
workspacerequiredWorkspace name (e.g., dev1)

Query Parameters

NameRequiredDescription
fail-on-existsoptionalIf true, the request fails when a compute instance with the same name already exists

spec Fields

NameTypeRequiredDescription
computeTypestringrequiredbaremetal
computeProfilestringrequiredbmaas-l40s (L40S) or bmaas-h100 (H100)

Key Configuration Options (variables)

NameDescriptionExample
assign_public_ipAssign a public IPtrue
node_os_imageOperating system imagedefault-image (Ubuntu 22.04)
Contract TermBilling duration in months1, 6, 12, 24
Security PoliciesFirewall rules as JSON[{"source_cidr":"any","action":"allow","application":"ssh","port":22,"protocol":"tcp"}]
hss_storageAttach high-speed storageOptional
object_storageAttach object storageOptional
Infiniband ConfigurationEnable InfiniBand interconnecttrue
NVAIE LicenseEnable NVIDIA AI Enterprise licensefalse

Common Errors

Status CodeDescription
400Invalid request or missing fields
401Unauthorized or invalid token
409Compute instance already exists
500Internal server error
Bare metal provisioning can take several minutes. Some hardware values (CPU, GPU, memory) are pre-defined by the selected compute profile. Deleting an instance before the contract term ends may still incur charges.
Request Body
{
  "apiVersion": "paas.envmgmt.io/v1",
  "kind": "ComputeInstance",
  "metadata": { "name": "create-bm-api", "project": "system-catalog", "workspace": "dev1" },
  "spec": {
    "computeType": "baremetal",
    "computeProfile": { "name": "bmaas-h100", "systemCatalog": true },
    "variables": [
      { "name": "assign_public_ip", "valueType": "text", "value": "false" },
      { "name": "node_os_image", "valueType": "text", "value": "default-image" },
      { "name": "Contract Term", "valueType": "text", "value": "1" },
      { "name": "NVAIE License", "valueType": "text", "value": "false" },
      { "name": "hss_storage", "valueType": "text", "value": "hss-storage-1" },
      { "name": "object_storage", "valueType": "text", "value": "object-storage-1" },
      { "name": "Security Policies", "valueType": "json", "value": "[{\"source_cidr\":\"any\",\"action\":\"allow\",\"application\":\"ssh\",\"port\":22,\"protocol\":\"tcp\"}]" },
      { "name": "Infiniband Configuration", "valueType": "text", "value": "true" }
    ]
  }
}
cURL
curl -X POST \
  'https://portal.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/defaultproject/workspaces/dev1/computeinstances?fail-on-exists=true' \
  -H 'x-api-key: <api-key>' \
  -H 'Content-Type: application/json' \
  -d '<request-body>'
Response — 201 Created
{
  "status": "Success",
  "message": "Compute instance created successfully",
  "name": "baremetal-l40s"
}

Update Baremetal Instance

Updates an existing Baremetal compute instance. Uses the same endpoint as Create — the existing instance is identified by metadata.name.

POST/apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>
Content-Typeapplication/json

Path Parameters

NameRequiredDescription
projectrequiredProject name
workspacerequiredWorkspace name

Query Parameters

NameRequiredDescription
fail-on-existsoptionalIf true, fails when instance with same name already exists
Request Body
{
  "apiVersion": "paas.envmgmt.io/v1",
  "kind": "ComputeInstance",
  "metadata": { "name": "create-bm-api", "project": "techproject", "workspace": "techproject" },
  "spec": {
    "computeType": "baremetal",
    "computeProfile": { "name": "bmaas-h100", "systemCatalog": true },
    "variables": [
      { "name": "assign_public_ip", "valueType": "text", "value": "true" },
      { "name": "node_os_image", "valueType": "text", "value": "default-image" },
      { "name": "Contract Term", "valueType": "text", "value": "1" },
      { "name": "NVAIE License", "valueType": "text", "value": "true" },
      { "name": "Infiniband Configuration", "valueType": "text", "value": "true" }
    ]
  }
}

Deploy (Publish) Baremetal Instance

Activates and provisions a Baremetal instance that has been created.

POST/apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instanceName}/publish

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>

Path Parameters

NameRequiredDescription
projectrequiredProject name
workspacerequiredWorkspace name
instanceNamerequiredName of the bare metal instance
cURL
curl -X POST \
  'https://portal.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/<project>/workspaces/<workspace>/computeinstances/<instanceName>/publish' \
  -H 'x-api-key: <api-key>'
Response — 202 Accepted
// Deployment initiated successfully

Get Baremetal Instance

Retrieves details of a specific Baremetal compute instance.

GET/apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instanceName}?computeType=baremetal

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>

Path Parameters

NameRequiredDescription
projectrequiredProject name
workspacerequiredWorkspace name
instanceNamerequiredName of the bare metal instance
cURL
curl -X GET \
  'https://portal.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/<project>/workspaces/<workspace>/computeinstances/<instanceName>?computeType=baremetal' \
  -H 'x-api-key: <api-key>'
Response — 200 OK
{
  "apiVersion": "paas.envmgmt.io/v1",
  "kind": "ComputeInstance",
  "metadata": {
    "name": "h100-demo-10",
    "id": "019c6665-205e-784f-b9bc-fc6c5f8aff7c",
    "project": "defaultproject",
    "workspace": "default",
    "createdAt": "2026-02-16T12:20:29.406538Z"
  },
  "spec": {
    "computeProfile": { "name": "bmaas-h100", "systemCatalog": true },
    "computeType": "baremetal"
  },
  "status": {
    "status": "success",
    "output": {
      "ip_address": { "value": "10.75.8.20" },
      "public_ip_address": { "value": "103.207.150.128" },
      "node_login_username": { "value": "ubuntu" },
      "node_login_password": { "value": "********" }
    }
  }
}

List All Baremetal Instances

Retrieves a list of all Baremetal compute instances within a project.

GET/apis/paas.envmgmt.io/v1/projects/{project}/computeinstances?computeType=baremetal

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>

Path Parameters

NameRequiredDescription
projectrequiredProject name
workspacerequiredWorkspace name

Query Parameters

ParameterTypeDescription
limitoptionalintegerMax results to return
offsetoptionalintegerPagination offset
orderoptionalstringASC or DESC
orderByoptionalstringcreatedAt
computeTyperequiredstringbaremetal
cURL
curl -X GET \
  'https://portal.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/defaultproject/computeinstances?limit=10&offset=0&order=DESC&orderBy=createdAt&computeType=baremetal' \
  -H 'x-api-key: <api-key>'
Response — 200 OK
{
  "apiVersion": "paas.envmgmt.io/v1",
  "kind": "ComputeInstanceList",
  "metadata": { "count": 2, "limit": 10 },
  "items": [
    {
      "kind": "ComputeInstance",
      "metadata": { "name": "h100-demo-10", "project": "defaultproject", "workspace": "default" },
      "status": { "status": "success" }
    }
  ]
}

Power Actions on Baremetal Instance

Use this API to perform a power action on an existing Bare Metal compute instance.

⚠️ A power reset is equivalent to forcibly rebooting the machine. Any unsaved work may be lost.

Endpoints

ActionEndpoint
Power ON/computeinstances/{instanceName}/action/start
Power OFF/computeinstances/{instanceName}/action/stop
Power Reset/computeinstances/{instanceName}/action/Power%20reset
Power Cycle/computeinstances/{instanceName}/action/Power%20cycle

The action name must be URL-encoded: Power%20reset / start / stop / Power%20cycle

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>
Content-Typeapplication/json

Path Parameters

NameRequiredDescription
projectrequiredProject name
workspacerequiredWorkspace name
instanceNamerequiredName of the bare metal instance

Request Body

No request body required. Send an empty JSON object: {}

Common Errors

Status CodeDescription
400Invalid request or unsupported action
401Unauthorized
404Compute instance not found
409Operation not allowed in current state
500Internal server error
cURL — Power Reset
curl -X POST \
  'https://portal.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/defaultproject/workspaces/dev1/computeinstances/baremetal-l40s/action/Power%20reset' \
  -H 'x-api-key: <api-key>' \
  -H 'Content-Type: application/json' \
  -d '{}'
Response — 200 OK
{
  "status": "Success",
  "message": "Power reset initiated successfully"
}

Delete Baremetal Instance

Deletes an existing Baremetal compute instance and releases associated resources.

DELETE/apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instanceName}

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>

Path Parameters

NameRequiredDescription
projectrequiredProject name
workspacerequiredWorkspace name
instanceNamerequiredName of the bare metal instance

Common Errors

Status CodeDescription
401Unauthorized
404Compute instance not found
500Internal server error
Deletion is an asynchronous operation. The 202 Accepted status indicates the deletion process has started. Deleting before the contract term ends may still incur charges.
cURL
curl -X DELETE \
  'https://portal.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/defaultproject/workspaces/dev1/computeinstances/baremetal-l40s' \
  -H 'x-api-key: <api-key>'
Response — 202 Accepted
{
  "status": "Success",
  "message": "Compute instance deletion initiated"
}

GPU Kubernetes Clusters

Create GPU Kubernetes Cluster Instance

Creates a new GPU Kubernetes cluster instance under a specified project and workspace.

POST/apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>
Content-Typeapplication/json

Path Parameters

NameRequiredDescription
projectrequiredProject name
workspacerequiredWorkspace name

Key Configuration Options (variables)

NameDescriptionExample
Cluster Kubernetes VersionK8s versionv1.34.1
H100 Worker NodesNumber of H100 worker nodes1
L40 Worker NodesNumber of L40 worker nodes1
Master Node SKUMaster node SKUvm-8x-cpu
Master NodesNumber of master nodes3
OSOperating systemUbuntu 22.04
Contract TermBilling duration in months1, 6, 12, 24
Enable Infiniband ConfigurationEnable InfiniBand interconnecttrue
Enable NVAIE LicenseEnable NVIDIA AI Enterprise licensetrue
Kubernetes provisioning can take several minutes. Deleting an instance before the contract term ends may still incur charges.
Request Body
{
  "apiVersion": "paas.envmgmt.io/v1",
  "kind": "ComputeInstance",
  "metadata": { "name": "rafay-test", "workspace": "dev1", "project": "system-catalog" },
  "spec": {
    "computeType": "k8s",
    "computeProfile": { "name": "k8s-v4-1", "systemCatalog": true },
    "variables": [
      { "name": "Cluster Kubernetes Version", "value": "v1.34.1" },
      { "name": "Master Node SKU", "value": "vm-8x-cpu" },
      { "name": "Master Nodes", "value": "1" },
      { "name": "H100 Worker Nodes", "value": "0" },
      { "name": "L40 Worker Nodes", "value": "1" },
      { "name": "OS", "value": "Ubuntu 22.04" },
      { "name": "Enable Infiniband Configuration", "value": "true" },
      { "name": "Enable NVAIE License", "value": "true" }
    ]
  }
}
Response — 201 Created
{
  "status": "Success",
  "message": "Compute instance created successfully",
  "name": "rafay-test"
}

Deploy (Publish) Kubernetes Cluster Instance

Activates and provisions a Kubernetes cluster instance that has been created.

POST/apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instanceName}/publish

Base URL

https://portal.<your-domain>.ai

Authentication

HeaderValue
x-api-key<api-key>

Path Parameters

NameRequiredDescription
projectrequiredProject name
workspacerequiredWorkspace name
instanceNamerequiredName of the Kubernetes cluster instance
cURL
curl -X POST \
  'https://portal.<your-domain>.ai/apis/paas.envmgmt.io/v1/projects/<project>/workspaces/<workspace>/computeinstances/<instanceName>/publish' \
  -H 'x-api-key: <api-key>'
Response — 202 Accepted
// Deployment initiated successfully