Bare Metal

API reference for Bare Metal on CUDO Compute.

Reference
GET
/v1/machines-types

List machine types

List machine types that can be ordered

Path attributes

  • Name
    pageNumber
    Type
    integer
    Description
  • Name
    pageSize
    Type
    integer
    Description
Request
GET
/v1/machines-types
    
    curl 'https://rest.compute.cudo.org/v1/machines-types' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {
  "machineTypes": [
    {
      "dataCenterId": "string",
      "id": "string",
      "architecture": "string",
      "cpuCores": "integer",
      "cpuSpeedMhz": "integer",
      "cpuModel": "string",
      "memoryGib": "integer",
      "disks": "integer",
      "diskSizeGib": "integer",
      "gpus": "integer",
      "gpuModelId": "string",
      "prices": [
        {
          "dataCenterId": "string",
          "machineTypeId": "string",
          "commitmentTerm": "string",
          "priceHr": {
            "value": "string"
          },
          "ipv4PriceHr": {
            "value": "string"
          }
        }
      ],
      "available": "boolean"
    }
  ],
  "totalCount": "integer",
  "pageNumber": "integer",
  "pageSize": "integer"
}

    
  

GET
/v1/machines/operating-systems

List operating systems

List operating systems that can be deployed to machine instances

Request
GET
/v1/machines/operating-systems
    
    curl 'https://rest.compute.cudo.org/v1/machines/operating-systems' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {
  "images": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "displayName": "string",
      "platform": "string",
      "sizeGib": "integer",
      "installedPackages": [
        {
          "name": "string",
          "description": "string",
          "version": "string"
        }
      ]
    }
  ]
}

    
  

POST
/v1/projects/{machineInstance.projectId}/machine-instances

Create a machine instance

Order a machine for a project

Body attributes

  • Name
    id
    Type
    string
    Description
  • Name
    dataCenterId
    Type
    string
    Description
  • Name
    machineTypeId
    Type
    string
    Description
  • Name
    powerState
    Type
    string
    Description
  • Name
    commitmentTerm
    Type
    string
    Description
  • Name
    os
    Type
    string
    Description
  • Name
    userData
    Type
    string
    Description

Path attributes

  • Name
    machineInstance.projectId
    Type
    string
    Description
Request
POST
/v1/projects/{machineInstance.projectId}/machine-instances
    
    curl 'https://rest.compute.cudo.org/v1/projects/{machineInstance.projectId}/machine-instances' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
    "id": "string",
    "dataCenterId": "string",
    "machineTypeId": "string",
    "powerState": "string",
    "commitmentTerm": "string",
    "os": "string",
    "userData": "string"
}'

    
  
Response
    
    {
  "projectId": "string",
  "id": "string",
  "dataCenterId": "string",
  "machineTypeId": "string",
  "machine": {
    "dataCenterId": "string",
    "id": "string",
    "machineTypeId": "string",
    "architecture": "string",
    "cpuCores": "integer",
    "cpuSpeedMhz": "integer",
    "cpuModel": "string",
    "memoryGib": "integer",
    "disks": "integer",
    "diskSizeGib": "integer",
    "gpus": "integer",
    "gpuModelId": "string",
    "state": "string",
    "powerState": "string",
    "os": "string",
    "hostname": "string",
    "externalIpAddresses": [
      "string"
    ],
    "installationOutput": "string"
  },
  "createTime": "string",
  "createBy": "string",
  "powerState": "string",
  "commitmentTerm": "string",
  "priceHr": {
    "value": "string"
  },
  "ipv4Addresses": "integer",
  "ipv4PriceHr": {
    "value": "string"
  },
  "totalPriceHr": {
    "value": "string"
  },
  "os": "string",
  "userData": "string"
}

    
  

PATCH
/v1/projects/{machineInstance.projectId}/machine-instances/{machineInstance.id}

Update a machine instance

Update a machine instance in a project

Body attributes

  • Name
    dataCenterId
    Type
    string
    Description
  • Name
    machineTypeId
    Type
    string
    Description
  • Name
    powerState
    Type
    string
    Description
  • Name
    commitmentTerm
    Type
    string
    Description
  • Name
    os
    Type
    string
    Description
  • Name
    userData
    Type
    string
    Description

Path attributes

  • Name
    machineInstance.projectId
    Type
    string
    Description
  • Name
    machineInstance.id
    Type
    string
    Description
Request
PATCH
/v1/projects/{machineInstance.projectId}/machine-instances/{machineInstance.id}
    
    curl 'https://rest.compute.cudo.org/v1/projects/{machineInstance.projectId}/machine-instances/{machineInstance.id}' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
    "dataCenterId": "string",
    "machineTypeId": "string",
    "powerState": "string",
    "commitmentTerm": "string",
    "os": "string",
    "userData": "string"
}'

    
  
Response
    
    {
  "projectId": "string",
  "id": "string",
  "dataCenterId": "string",
  "machineTypeId": "string",
  "machine": {
    "dataCenterId": "string",
    "id": "string",
    "machineTypeId": "string",
    "architecture": "string",
    "cpuCores": "integer",
    "cpuSpeedMhz": "integer",
    "cpuModel": "string",
    "memoryGib": "integer",
    "disks": "integer",
    "diskSizeGib": "integer",
    "gpus": "integer",
    "gpuModelId": "string",
    "state": "string",
    "powerState": "string",
    "os": "string",
    "hostname": "string",
    "externalIpAddresses": [
      "string"
    ],
    "installationOutput": "string"
  },
  "createTime": "string",
  "createBy": "string",
  "powerState": "string",
  "commitmentTerm": "string",
  "priceHr": {
    "value": "string"
  },
  "ipv4Addresses": "integer",
  "ipv4PriceHr": {
    "value": "string"
  },
  "totalPriceHr": {
    "value": "string"
  },
  "os": "string",
  "userData": "string"
}

    
  

GET
/v1/projects/{projectId}/machine-instances

List machine instances

List machine instances in a project

Path attributes

  • Name
    projectId
    Type
    string
    Description
  • Name
    pageNumber
    Type
    integer
    Description
  • Name
    pageSize
    Type
    integer
    Description
Request
GET
/v1/projects/{projectId}/machine-instances
    
    curl 'https://rest.compute.cudo.org/v1/projects/{projectId}/machine-instances' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {
  "machineInstances": [
    {
      "projectId": "string",
      "id": "string",
      "dataCenterId": "string",
      "machineTypeId": "string",
      "machine": {
        "dataCenterId": "string",
        "id": "string",
        "machineTypeId": "string",
        "architecture": "string",
        "cpuCores": "integer",
        "cpuSpeedMhz": "integer",
        "cpuModel": "string",
        "memoryGib": "integer",
        "disks": "integer",
        "diskSizeGib": "integer",
        "gpus": "integer",
        "gpuModelId": "string",
        "state": "string",
        "powerState": "string",
        "os": "string",
        "hostname": "string",
        "externalIpAddresses": [
          "string"
        ],
        "installationOutput": "string"
      },
      "createTime": "string",
      "createBy": "string",
      "powerState": "string",
      "commitmentTerm": "string",
      "priceHr": {
        "value": "string"
      },
      "ipv4Addresses": "integer",
      "ipv4PriceHr": {
        "value": "string"
      },
      "totalPriceHr": {
        "value": "string"
      },
      "os": "string",
      "userData": "string"
    }
  ],
  "totalCount": "integer",
  "pageNumber": "integer",
  "pageSize": "integer"
}

    
  

GET
/v1/projects/{projectId}/machine-instances/{id}

Get a machine instance

Get the details of a machine instance

Path attributes

  • Name
    projectId
    Type
    string
    Description
  • Name
    id
    Type
    string
    Description
Request
GET
/v1/projects/{projectId}/machine-instances/{id}
    
    curl 'https://rest.compute.cudo.org/v1/projects/{projectId}/machine-instances/{id}' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {
  "projectId": "string",
  "id": "string",
  "dataCenterId": "string",
  "machineTypeId": "string",
  "machine": {
    "dataCenterId": "string",
    "id": "string",
    "machineTypeId": "string",
    "architecture": "string",
    "cpuCores": "integer",
    "cpuSpeedMhz": "integer",
    "cpuModel": "string",
    "memoryGib": "integer",
    "disks": "integer",
    "diskSizeGib": "integer",
    "gpus": "integer",
    "gpuModelId": "string",
    "state": "string",
    "powerState": "string",
    "os": "string",
    "hostname": "string",
    "externalIpAddresses": [
      "string"
    ],
    "installationOutput": "string"
  },
  "createTime": "string",
  "createBy": "string",
  "powerState": "string",
  "commitmentTerm": "string",
  "priceHr": {
    "value": "string"
  },
  "ipv4Addresses": "integer",
  "ipv4PriceHr": {
    "value": "string"
  },
  "totalPriceHr": {
    "value": "string"
  },
  "os": "string",
  "userData": "string"
}

    
  

DELETE
/v1/projects/{projectId}/machine-instances/{id}

Delete a machine instance

Delete a machine instance from a project. Machine instances that are still within a commitment term cannot be deleted.

Path attributes

  • Name
    projectId
    Type
    string
    Description
  • Name
    id
    Type
    string
    Description
Request
DELETE
/v1/projects/{projectId}/machine-instances/{id}
    
    curl 'https://rest.compute.cudo.org/v1/projects/{projectId}/machine-instances/{id}' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {}

    
  

POST
/v1/projects/{projectId}/machines/{id}/deploy

Deploy operating system

Deploy an operating system onto a machine instance

Path attributes

  • Name
    projectId
    Type
    string
    Description
  • Name
    id
    Type
    string
    Description
  • Name
    os
    Type
    string
    Description
  • Name
    userData
    Type
    string
    Description
Request
POST
/v1/projects/{projectId}/machines/{id}/deploy
    
    curl 'https://rest.compute.cudo.org/v1/projects/{projectId}/machines/{id}/deploy' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {}

    
  

POST
/v1/projects/{projectId}/machines/{id}/erase

Erase machine instance disks

Erase all disks in a machine instance

Path attributes

  • Name
    projectId
    Type
    string
    Description
  • Name
    id
    Type
    string
    Description
Request
POST
/v1/projects/{projectId}/machines/{id}/erase
    
    curl 'https://rest.compute.cudo.org/v1/projects/{projectId}/machines/{id}/erase' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {}

    
  

POST
/v1/projects/{projectId}/machines/{id}/power-off

Power off a machine instance

Power off a machine instance in a project

Path attributes

  • Name
    projectId
    Type
    string
    Description
  • Name
    id
    Type
    string
    Description
  • Name
    force
    Type
    boolean
    Description
Request
POST
/v1/projects/{projectId}/machines/{id}/power-off
    
    curl 'https://rest.compute.cudo.org/v1/projects/{projectId}/machines/{id}/power-off' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {}

    
  

POST
/v1/projects/{projectId}/machines/{id}/power-on

Power on a machine instance

Power on a machine instance in a project

Path attributes

  • Name
    projectId
    Type
    string
    Description
  • Name
    id
    Type
    string
    Description
  • Name
    userData
    Type
    string
    Description
Request
POST
/v1/projects/{projectId}/machines/{id}/power-on
    
    curl 'https://rest.compute.cudo.org/v1/projects/{projectId}/machines/{id}/power-on' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {}

    
  

POST
/v1/projects/{projectId}/machines/{id}/undeploy

Release machine

Releases a machine instance allowing subsequent deployment of a new OS

Path attributes

  • Name
    projectId
    Type
    string
    Description
  • Name
    id
    Type
    string
    Description
Request
POST
/v1/projects/{projectId}/machines/{id}/undeploy
    
    curl 'https://rest.compute.cudo.org/v1/projects/{projectId}/machines/{id}/undeploy' \
-H 'Authorization: bearer <YOUR-API-KEY>'\
-H 'Accept: application/json'

    
  
Response
    
    {}