Skip to main content

CVMs

Base URL

https://prism.ultraviolet.rs/backends


Create CVM

Endpoint

POST /{domainID}/cvms/{provider}/{vcpu}/{cc_platform}

The url parameters are as follows:

  • <workspace_id>: The ID of the workspace where the CVM will be created.
  • <provider>: The backend provider to use for the CVM (supported are azure, gcp, external and ultraviolet).
  • <vcpu>: The number of virtual CPUs to allocate for the CVM.
  • <ccPlatform>: The cloud platform to use for the CVM, currently supported values are Intel TDX and `SEV SNP

Body

{
"name": "example-cvm",
"agent_log_level": "info"
}

cURL Example

curl -X POST "https://prism.ultraviolet.rs/backends/c1adf32-3dac-4aad-bead-ae96fe071239/cvms/aws/2/sev-snp?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"name":"example-cvm", "agent_log_level":"info"}'

Response

201 Created

List CVMs

Endpoint

GET /{domainID}/cvms

Optional Query Parameters

  • limit, offset, name, status, days, cc_platform

cURL Example

curl -X GET "https://prism.ultraviolet.rs/backends/c1adf32-3dac-4aad-bead-ae96fe071239/cvms?domainID=c1adf32-3dac-4aad-bead-ae96fe071239&limit=10" \
-H "Authorization: Bearer <token>"

Sample Response

{
"cvms": [
{
"id": "cvm-123",
"name": "example-cvm",
"cvm_id": "cvm-123",
"agent_url": "https://agent.example.com",
"status": "running",
"state": "provisioned",
"created_at": "2025-07-17T09:00:00Z",
"deleted_at": "0001-01-01T00:00:00Z",
"provider": "aws",
"vcpus": 2,
"attestation": "base64-blob",
"attestation_token": "base64-token",
"agent_log_level": "info",
"monthly_cost_estimate": "$12.34",
"cc_platform": "sev-snp"
}
],
"total": 1,
"limit": 10,
"offset": 0
}

View CVM

Endpoint

GET /{domainID}/cvms/{id}

cURL Example

curl -X GET "https://prism.ultraviolet.rs/backends/c1adf32-3dac-4aad-bead-ae96fe071239/cvms/cvm-123?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Sample Response

{
"id": "cvm-123",
"name": "example-cvm",
"cvm_id": "cvm-123",
"agent_url": "https://agent.example.com",
"status": "running",
"state": "provisioned",
"created_at": "2025-07-17T09:00:00Z",
"deleted_at": "0001-01-01T00:00:00Z",
"provider": "aws",
"vcpus": 2,
"attestation": "base64-blob",
"attestation_token": "base64-token",
"agent_log_level": "info",
"monthly_cost_estimate": "$12.34",
"cc_platform": "sev-snp"
}

Delete CVM

Endpoint

DELETE /{domainID}/cvms/{id}

cURL Example

curl -X DELETE "https://prism.ultraviolet.rs/backends/c1adf32-3dac-4aad-bead-ae96fe071239/cvms/cvm-123?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Response

204 No Content

View CVM Statistics

Endpoint

GET /{domainID}/cvms/{id}/statistics

Query Parameters

  • days: duration window to retrieve stats

cURL Example

curl -X GET "https://prism.ultraviolet.rs/backends/c1adf32-3dac-4aad-bead-ae96fe071239/cvms/cvm-123/statistics?domainID=c1adf32-3dac-4aad-bead-ae96fe071239&days=7" \
-H "Authorization: Bearer <token>"

Sample Response

{
"cvm_stats": [
{
"id": "stat-1",
"cvm_id": "cvm-123",
"timestamp": "2025-07-17T08:00:00Z",
"status": true
},
{
"id": "stat-2",
"cvm_id": "cvm-123",
"timestamp": "2025-07-16T08:00:00Z",
"status": false
}
]
}

Fetch Attestation Policy

Endpoint

GET /{domainID}/cvms/{id}/attestation_policy

cURL Example

curl -X GET "https://prism.ultraviolet.rs/backends/c1adf32-3dac-4aad-bead-ae96fe071239/cvms/cvm-123/attestation_policy?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Sample Response

{
"attestation_policy": "base64-policy-blob"
}