> For the complete documentation index, see [llms.txt](https://docs.cedana.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cedana.ai/references/api/cloud-bursting.md).

# Cloud Bursting

Cedana API for cloud bursting

## GET /v1/instances

> List instances

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for cloud bursting","name":"Cloud Bursting"}],"paths":{"/v1/instances":{"get":{"operationId":"list_instances","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/InstanceInfo"},"type":"array"}}},"description":"List of instances"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Internal server error"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"List instances","tags":["Cloud Bursting"]}}},"components":{"schemas":{"InstanceInfo":{"properties":{"cloud_provider":{"type":"string"},"created_at":{"type":["string","null"]},"id":{"type":"string"},"instance_type":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"}},"required":["id","name","status","cloud_provider","region","instance_type"],"type":"object"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}}}
```

## POST /v1/instances

> Create instance

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for cloud bursting","name":"Cloud Bursting"}],"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"scheme":"bearer","type":"http"}},"schemas":{"CreateInstanceRequest":{"properties":{"alert":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Alert"}]},"auto_delete":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AutoDelete"}]},"cloud":{"type":"string"},"envs":{"items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":["array","null"]},"launch_configuration":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LaunchConfiguration"}]},"name":{"type":"string"},"os":{"type":["string","null"]},"region":{"type":"string"},"shade_cloud":{"type":"boolean"},"shade_instance_type":{"type":"string"},"ssh_key_id":{"type":["string","null"]},"tags":{"items":{"type":"string"},"type":["array","null"]},"template_id":{"type":["string","null"]},"volume_ids":{"items":{"type":"string"},"type":["array","null"]},"volume_mount":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/VolumeMount"}]}},"required":["cloud","region","shade_instance_type","shade_cloud","name"],"type":"object"},"Alert":{"properties":{"date_threshold":{"type":["string","null"]},"spend_threshold":{"type":["string","null"]}},"type":"object"},"AutoDelete":{"properties":{"date_threshold":{"type":["string","null"]},"spend_threshold":{"type":["string","null"]}},"type":"object"},"EnvironmentVariable":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"LaunchConfiguration":{"properties":{"docker_configuration":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DockerConfiguration"}]},"script_configuration":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ScriptConfiguration"}]},"type":{"type":"string"}},"required":["type"],"type":"object"},"DockerConfiguration":{"properties":{"args":{"type":["string","null"]},"envs":{"items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":["array","null"]},"image":{"type":"string"},"port_mappings":{"items":{"$ref":"#/components/schemas/PortMapping"},"type":["array","null"]},"registry_credentials":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RegistryCredentials"}]},"shared_memory_in_gb":{"format":"int32","type":["integer","null"]},"volume_mounts":{"items":{"$ref":"#/components/schemas/VolumeMapping"},"type":["array","null"]}},"required":["image"],"type":"object"},"PortMapping":{"properties":{"container_port":{"format":"int32","type":"integer"},"host_port":{"format":"int32","type":"integer"}},"required":["host_port","container_port"],"type":"object"},"RegistryCredentials":{"properties":{"password":{"type":"string"},"username":{"type":"string"}},"required":["username","password"],"type":"object"},"VolumeMapping":{"properties":{"container_path":{"type":"string"},"host_path":{"type":"string"}},"required":["host_path","container_path"],"type":"object"},"ScriptConfiguration":{"properties":{"base64_script":{"type":"string"}},"required":["base64_script"],"type":"object"},"VolumeMount":{"properties":{"auto":{"type":["boolean","null"]}},"type":"object"},"CreateInstanceResponse":{"properties":{"cloud_provider":{"type":"string"},"instance_id":{"type":"string"},"instance_type":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"}},"required":["instance_id","status","cloud_provider","region","instance_type"],"type":"object"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}},"paths":{"/v1/instances":{"post":{"operationId":"create_instance","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInstanceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInstanceResponse"}}},"description":"Instance created successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid request"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Internal server error"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Create instance","tags":["Cloud Bursting"]}}}}
```

## GET /v1/instances/bursting-status

> Get configuration status

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for cloud bursting","name":"Cloud Bursting"}],"paths":{"/v1/instances/bursting-status":{"get":{"operationId":"get_bursting_status","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BurstingStatus"}}},"description":"Bursting configuration status"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Get configuration status","tags":["Cloud Bursting"]}}},"components":{"schemas":{"BurstingStatus":{"properties":{"can_use_bursting":{"type":"boolean"},"message":{"type":"string"},"status":{"$ref":"#/components/schemas/BurstingConfigStatus"}},"required":["status","message","can_use_bursting"],"type":"object"},"BurstingConfigStatus":{"enum":["not_configured","configured","invalid"],"type":"string"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}}}
```

## GET /v1/instances/types

> Get available instance types

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for cloud bursting","name":"Cloud Bursting"}],"paths":{"/v1/instances/types":{"get":{"operationId":"get_instance_types","parameters":[{"description":"Filter by number of GPUs","in":"query","name":"num_gpus","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter by GPU type","in":"query","name":"gpu_type","required":false,"schema":{"type":"string"}},{"description":"Sort results (e.g., 'price')","in":"query","name":"sort","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/InstanceType"},"type":"array"}}},"description":"Available instance types"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Internal server error"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Get available instance types","tags":["Cloud Bursting"]}}},"components":{"schemas":{"InstanceType":{"properties":{"availability":{"items":{"$ref":"#/components/schemas/InstanceTypeAvailability"},"type":"array"},"boot_time":{"$ref":"#/components/schemas/InstanceTypeBootTime"},"cloud":{"type":"string"},"cloud_instance_type":{"type":"string"},"configuration":{"$ref":"#/components/schemas/InstanceTypeConfiguration"},"deployment_type":{"type":"string"},"hourly_price":{"format":"int32","type":"integer"},"shade_instance_type":{"type":"string"}},"required":["cloud","shade_instance_type","cloud_instance_type","configuration","hourly_price","deployment_type","availability","boot_time"],"type":"object"},"InstanceTypeAvailability":{"properties":{"available":{"type":"boolean"},"display_name":{"type":"string"},"region":{"type":"string"}},"required":["region","available","display_name"],"type":"object"},"InstanceTypeBootTime":{"properties":{"max_boot_in_sec":{"format":"int32","type":"integer"},"min_boot_in_sec":{"format":"int32","type":"integer"}},"required":["min_boot_in_sec","max_boot_in_sec"],"type":"object"},"InstanceTypeConfiguration":{"properties":{"gpu_type":{"type":"string"},"interconnect":{"type":"string"},"memory_in_gb":{"format":"int32","type":"integer"},"num_gpus":{"format":"int32","type":"integer"},"nvlink":{"type":"boolean"},"os_options":{"items":{"type":"string"},"type":"array"},"storage_in_gb":{"format":"int32","type":"integer"},"vcpus":{"format":"int32","type":"integer"},"vram_per_gpu_in_gb":{"format":"int32","type":"integer"}},"required":["memory_in_gb","storage_in_gb","vcpus","num_gpus","gpu_type","interconnect","nvlink","vram_per_gpu_in_gb","os_options"],"type":"object"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}}}
```

## DELETE /v1/instances/{instance\_id}

> Delete instance

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for cloud bursting","name":"Cloud Bursting"}],"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"scheme":"bearer","type":"http"}},"schemas":{"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}},"paths":{"/v1/instances/{instance_id}":{"delete":{"operationId":"delete_instance","parameters":[{"description":"Instance ID to delete","in":"path","name":"instance_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"Instance deleted successfully"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to delete instance"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Delete instance","tags":["Cloud Bursting"]}}}}
```

## GET /v1/instances/{instance\_id}/status

> Get instance status

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for cloud bursting","name":"Cloud Bursting"}],"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"scheme":"bearer","type":"http"}},"schemas":{"InstanceStatus":{"properties":{"created_at":{"type":["string","null"]},"instance_id":{"type":"string"},"ip_address":{"type":["string","null"]},"metadata":{},"ssh_port":{"format":"int32","type":["integer","null"]},"ssh_user":{"type":["string","null"]},"status":{"type":"string"}},"required":["instance_id","status","metadata"],"type":"object"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}},"paths":{"/v1/instances/{instance_id}/status":{"get":{"operationId":"get_instance_status","parameters":[{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceStatus"}}},"description":"Instance status"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Instance not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to get status"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Get instance status","tags":["Cloud Bursting"]}}}}
```
