> 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/models.md).

# Models

## The AckOutbox object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"AckOutbox":{"properties":{"consumer_id":{"type":"string"},"event_id":{"format":"int64","type":"integer"}},"required":["consumer_id","event_id"],"type":"object"}}}}
```

## The Action object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Action":{"properties":{"action_id":{"format":"uuid","type":"string"},"action_timestamp":{"format":"date-time","type":["string","null"]},"checkpoint_completed_timestamp":{"format":"date-time","type":["string","null"]},"checkpoint_id":{"format":"uuid","type":"string"},"checkpoint_name":{"description":"The checkpoint's CEDANA_CHECKPOINT name (the env value it restores from),\nused to group automatic/named checkpoints. Null for unnamed checkpoints.","type":["string","null"]},"delta":{"description":"Whether the checkpoint is a (GPU delta) increment. Authoritative even\nwhen parent_checkpoint_id is null (malformed id at ingest, parent deleted)","type":["boolean","null"]},"details":{},"gpu":{"type":"string"},"node_name":{"type":["string","null"]},"parent_checkpoint_id":{"description":"Checkpoint this one is an increment of; null for full checkpoints and\nfor deltas whose parent is unknown or deleted","format":"uuid","type":["string","null"]},"platform":{"type":"string"},"reason":{"type":["string","null"]},"status":{"type":"string"},"total_duration":{"format":"int64","type":["integer","null"]},"total_io":{"format":"int64","type":["integer","null"]},"type":{"type":"string"},"workload_kind":{"description":"Owning workload kind of the checkpointed pod: \"DynamoGraphDeployment\" when\nthe pod belongs to a Dynamo deployment, else the pod's immediate\nownerReferences kind (ReplicaSet/Job/StatefulSet…). Null if unknown.","type":["string","null"]}},"required":["action_id","checkpoint_id","status","type","details","gpu","platform"],"type":"object"}}}}
```

## The ActionDetails object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ActionDetails":{"description":"Action details response for a single action","properties":{"action_id":{"description":"The action ID","format":"uuid","type":"string"},"action_timestamp":{"description":"When the action was created","format":"date-time","type":["string","null"]},"checkpoint_completed_timestamp":{"description":"When checkpoint completed (if any)","format":"date-time","type":["string","null"]},"checkpoint_id":{"description":"Associated checkpoint ID (if any)","format":"uuid","type":["string","null"]},"checkpoint_info":{"description":"Full checkpoint profiling info (JSON)"},"checkpoint_name":{"description":"Checkpoint name/image","type":["string","null"]},"checkpoint_size":{"description":"Checkpoint size in bytes","format":"int64","type":["integer","null"]},"details":{"description":"Original request details (JSONB)"},"gpu":{"description":"GPU type used","type":["string","null"]},"node_name":{"description":"Node where the pod was running","type":["string","null"]},"platform":{"description":"Platform (e.g., containerd)","type":["string","null"]},"reason":{"description":"Reason for the action (heartbeat, manual, nodeTermination, etc.)","type":["string","null"]},"restore_path":{"description":"Restore path for the checkpoint","type":["string","null"]},"status":{"description":"Current status of the action","type":"string"},"total_duration":{"description":"Checkpoint duration in nanoseconds (from profiling)","format":"int64","type":["integer","null"]},"total_io":{"description":"Total I/O in bytes (from profiling)","format":"int64","type":["integer","null"]},"type":{"description":"Action type (checkpoint_pod, restore_pod, heartbeat)","type":"string"}},"required":["action_id","type","status","details"],"type":"object"}}}}
```

## The ActivationReport object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ActivationReport":{"properties":{"desired_state":{"type":"string"},"endpoint":{"type":["string","null"]},"observed_generation":{"format":"int64","type":"integer"},"phase":{"type":"string"},"profile_id":{"type":"string"},"ready":{"type":"boolean"}},"required":["profile_id","desired_state","phase","ready"],"type":"object"}}}}
```

## The Alert object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Alert":{"properties":{"date_threshold":{"type":["string","null"]},"spend_threshold":{"type":["string","null"]}},"type":"object"}}}}
```

## The ArtifactRef object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ArtifactRef":{"properties":{"artifact_id":{"type":"string"},"checkpoint_mode":{"type":"string"},"status":{"type":"string"}},"required":["artifact_id","checkpoint_mode","status"],"type":"object"}}}}
```

## The ArtifactResidency object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ArtifactResidency":{"description":"Whether an artefact can still be restored from, and why. status is only what the\ncontrol plane last recorded, which a reboot does not update.","properties":{"artifact_boot_id":{"description":"Boot id recorded when the checkpoint was taken.","type":["string","null"]},"boot_tied":{"description":"True when the storage tier ties the artefact to a single boot of a\nsingle node (`memory`, `local`). Durable tiers survive reboots.","type":"boolean"},"flags_verified":{"description":"Whether the engine flags still match what the next worker would start with. The\ncompatibility key does not cover them.","type":["boolean","null"]},"node_boot_id":{"description":"Boot id the node is reporting now, per the latest cluster sync.","type":["string","null"]},"node_last_sync":{"format":"date-time","type":["string","null"]},"node_name":{"type":["string","null"]},"node_status":{"type":["string","null"]},"reason":{"description":"One sentence an operator can act on, naming the evidence.","type":"string"},"state":{"description":"restorable when every check in the controller's rejectArtifact passes; otherwise\nthe value names the check that failed.","type":"string"}},"required":["state","reason","boot_tied"],"type":"object"}}}}
```

## The AuthorizeRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"AuthorizeRequest":{"properties":{"estimated_prompt_tokens":{"format":"int64","type":"integer"},"logical_model":{"type":"string"},"request_id":{"type":"string"}},"required":["request_id","logical_model"],"type":"object"}}}}
```

## The AuthorizeResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"AuthorizeResponse":{"properties":{"authorization_id":{"format":"uuid","type":"string"},"expires_at":{"format":"date-time","type":"string"},"route_generation":{"format":"int64","type":"integer"}},"required":["authorization_id","route_generation","expires_at"],"type":"object"}}}}
```

## The AutoDelete object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"AutoDelete":{"properties":{"date_threshold":{"type":["string","null"]},"spend_threshold":{"type":["string","null"]}},"type":"object"}}}}
```

## The AutoRestorePolicyInfo object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"AutoRestorePolicyInfo":{"description":"Auto-restore policy info - represents pods/jobs with CEDANA_CHECKPOINT env var","properties":{"checkpoint_id":{"description":"The CEDANA_CHECKPOINT value (checkpoint name)","type":"string"},"cluster_id":{"description":"Cluster ID","type":"string"},"created_at":{"description":"When the resource was created","type":["string","null"]},"id":{"description":"Virtual ID based on the job/pod ID","type":"string"},"name":{"description":"The job or pod name","type":"string"},"namespace":{"description":"Namespace of the resource","type":"string"},"pod_count":{"description":"Number of pods (1 for pods, count for jobs)","format":"int32","type":"integer"},"policy_status":{"description":"Mapped policy status: \"active\", \"completed\", or \"disabled\"","type":"string"},"resource_type":{"description":"Type of resource: \"job\" or \"pod\"","type":"string"},"status":{"description":"Original job/pod status","type":"string"}},"required":["id","name","namespace","cluster_id","resource_type","checkpoint_id","pod_count","status","policy_status"],"type":"object"}}}}
```

## The AvailableFilters object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"AvailableFilters":{"properties":{"namespaces":{"items":{"type":"string"},"type":"array"},"statuses":{"items":{"type":"string"},"type":"array"}},"required":["statuses","namespaces"],"type":"object"}}}}
```

## The BurstingConfigStatus object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"BurstingConfigStatus":{"enum":["not_configured","configured","invalid"],"type":"string"}}}}
```

## The BurstingStatus object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"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"}}}}
```

## The CapacityIntent object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CapacityIntent":{"properties":{"created_at":{"description":"When this intent row was first created. Not when the request it currently\ndescribes was made: the row is reused for a repeated ask. Use requested_at for that.","format":"date-time","type":"string"},"deadline":{"format":"date-time","type":["string","null"]},"desired_replicas":{"format":"int32","type":"integer"},"desired_state":{"type":"string"},"generation":{"format":"int64","type":"integer"},"id":{"format":"uuid","type":"string"},"profile_id":{"type":"string"},"requested_at":{"description":"When a caller last asked for this exact state and replica count, so it orders\nrequests as they were made rather than as the row happened to change.","format":"date-time","type":"string"},"status":{"type":"string"},"updated_at":{"description":"When this row last changed for any reason, including the expiry sweep. Not an\nordering key for what a caller asked for.","format":"date-time","type":"string"}},"required":["id","profile_id","desired_state","desired_replicas","status","generation","created_at","updated_at"],"type":"object"}}}}
```

## The CedanaJobCheckpoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CedanaJobCheckpoint":{"properties":{"ID":{"type":"string"},"JID":{"type":"string"},"Path":{"type":"string"},"Size":{"format":"int64","type":"integer"},"Time":{"format":"int64","type":"integer"}},"required":["JID","Path","Time","Size"],"type":"object"}}}}
```

## The Checkpoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Checkpoint":{"description":"Checkpoint is basic unit for cedana service operation\nit stores all the information regarding the snapshot we can use to save and then restore state","properties":{"checksum":{"type":["string","null"]},"delta":{"description":"Whether this checkpoint is a (GPU delta) increment. Authoritative even\nwhen parent_checkpoint_id is null (malformed id at ingest, parent deleted)","type":"boolean"},"gpu":{"type":"string"},"id":{"format":"uuid","type":"string"},"info":{},"name":{"type":["string","null"]},"parent_checkpoint_id":{"description":"Checkpoint this one is an increment of; null for full checkpoints and\nfor deltas whose parent is unknown or deleted","format":"uuid","type":["string","null"]},"platform":{"type":"string"},"status":{"$ref":"#/components/schemas/CheckpointStatus"}},"required":["id","status","gpu","platform","delta"],"type":"object"},"CheckpointStatus":{"enum":["initializing","updated_info","possibly_uploaded","ready","deprecated"],"type":"string"}}}}
```

## The CheckpointActionConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointActionConfig":{"properties":{"kind":{"type":"string"},"runc_root":{"type":["string","null"]}},"required":["kind"],"type":"object"}}}}
```

## The CheckpointArtifactView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointArtifactView":{"properties":{"artifact_id":{"type":"string"},"checkpoint_mode":{"type":"string"},"checksum":{"type":["string","null"]},"compatibility_key":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"exact_model":{"type":"string"},"hosting_mode":{"type":"string"},"last_restored_at":{"description":"When a worker last became ready from this artefact.","format":"date-time","type":["string","null"]},"logical_bytes":{"format":"int64","type":["integer","null"]},"logical_model":{"type":"string"},"metadata":{},"observed_restore_attempts":{"description":"Worker pods started from this artefact, ready or not. The gap against\nobserved_restores is the interesting part.","format":"int64","type":["integer","null"]},"observed_restores":{"description":"Worker pods started from this artefact that went on to serve. Counted from the\npods that ran, so it answers how many times the checkpoint was actually used.","format":"int64","type":["integer","null"]},"parent_artifact_id":{"type":["string","null"]},"physical_bytes":{"format":"int64","type":["integer","null"]},"profile_id":{"type":"string"},"residency":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ArtifactResidency","description":"Whether the bytes this artefact names are still there. Filled in after\nthe row is read (see `annotate_artifacts`); never selected from SQL."}]},"restore_count":{"description":"Unmaintained; do not display. Only restore_count_increment on the artifact PATCH\nwrites it, and no caller sends that. Use observed_restores.","format":"int64","type":"integer"},"reused_bytes":{"format":"int64","type":["integer","null"]},"source":{"type":"string"},"status":{"type":"string"},"storage_tier":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"uri":{"type":"string"},"written_bytes":{"format":"int64","type":["integer","null"]}},"required":["artifact_id","profile_id","logical_model","exact_model","hosting_mode","compatibility_key","checkpoint_mode","storage_tier","uri","source","status","restore_count","metadata","created_at","updated_at"],"type":"object"},"ArtifactResidency":{"description":"Whether an artefact can still be restored from, and why. status is only what the\ncontrol plane last recorded, which a reboot does not update.","properties":{"artifact_boot_id":{"description":"Boot id recorded when the checkpoint was taken.","type":["string","null"]},"boot_tied":{"description":"True when the storage tier ties the artefact to a single boot of a\nsingle node (`memory`, `local`). Durable tiers survive reboots.","type":"boolean"},"flags_verified":{"description":"Whether the engine flags still match what the next worker would start with. The\ncompatibility key does not cover them.","type":["boolean","null"]},"node_boot_id":{"description":"Boot id the node is reporting now, per the latest cluster sync.","type":["string","null"]},"node_last_sync":{"format":"date-time","type":["string","null"]},"node_name":{"type":["string","null"]},"node_status":{"type":["string","null"]},"reason":{"description":"One sentence an operator can act on, naming the evidence.","type":"string"},"state":{"description":"restorable when every check in the controller's rejectArtifact passes; otherwise\nthe value names the check that failed.","type":"string"}},"required":["state","reason","boot_tied"],"type":"object"}}}}
```

## The CheckpointInfo object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointInfo":{"properties":{"gpu":{"type":"string"},"info":{},"platform":{"type":"string"}},"required":["gpu","platform"],"type":"object"}}}}
```

## The CheckpointKind object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointKind":{"enum":["simple","rootfs","rootfsonly"],"type":"string"}}}}
```

## The CheckpointOperationStatus object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointOperationStatus":{"enum":["initialized","processing","checkpoint_created","ready","error","not_found"],"type":"string"}}}}
```

## The CheckpointOverrides object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointOverrides":{"properties":{"asynchronous":{"type":"boolean"},"compression":{"type":["string","null"]},"criu_opts":{"type":["string","null"]},"directory":{"type":["string","null"]},"incremental":{"description":"GPU delta (incremental) checkpoint; None = cluster default","type":["boolean","null"]},"streams":{"format":"int32","type":"integer"}},"type":"object"}}}}
```

## The CheckpointPod object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointPod":{"properties":{"action_id":{"readOnly":true,"type":["string","null"]},"cluster_id":{"type":["string","null"]},"kind":{"$ref":"#/components/schemas/CheckpointKind"},"namespace":{"type":["string","null"]},"overrides":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CheckpointOverrides"}]},"pod_id":{"type":["string","null"]},"pod_name":{"type":["string","null"]},"reason":{"$ref":"#/components/schemas/CheckpointReason"}},"type":"object"},"CheckpointKind":{"enum":["simple","rootfs","rootfsonly"],"type":"string"},"CheckpointOverrides":{"properties":{"asynchronous":{"type":"boolean"},"compression":{"type":["string","null"]},"criu_opts":{"type":["string","null"]},"directory":{"type":["string","null"]},"incremental":{"description":"GPU delta (incremental) checkpoint; None = cluster default","type":["boolean","null"]},"streams":{"format":"int32","type":"integer"}},"type":"object"},"CheckpointReason":{"enum":["heartbeat","manual"],"type":"string"}}}}
```

## The CheckpointReason object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointReason":{"enum":["heartbeat","manual"],"type":"string"}}}}
```

## The CheckpointRequestView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointRequestView":{"description":"An on-demand checkpoint request and how far it has got.","properties":{"artifact_id":{"description":"The artifact the checkpoint produced, once it succeeded.","type":["string","null"]},"completed_at":{"format":"date-time","type":["string","null"]},"error":{"description":"Why it failed, in the controller's words.","type":["string","null"]},"kind":{"description":"checkpoint or restart. One row per profile, so asking twice returns the open one.","type":"string"},"profile_id":{"type":"string"},"reason":{"type":["string","null"]},"replace_existing":{"type":"boolean"},"request_id":{"description":"Identifies this attempt. A caller polling with the id it was given\ncannot be shown a later request's outcome as though it were its own.","format":"uuid","type":"string"},"requested_at":{"format":"date-time","type":"string"},"started_at":{"format":"date-time","type":["string","null"]},"status":{"description":"pending → running → succeeded | failed","type":"string"}},"required":["profile_id","kind","request_id","status","replace_existing","requested_at"],"type":"object"}}}}
```

## The CheckpointSlurmJob object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointSlurmJob":{"properties":{"action_id":{"readOnly":true,"type":["string","null"]},"cluster_id":{"type":"string"},"job_id":{"type":["string","null"]},"job_name":{"type":["string","null"]},"kind":{"$ref":"#/components/schemas/SlurmCheckpointKind"},"reason":{"$ref":"#/components/schemas/SlurmCheckpointReason"}},"required":["cluster_id"],"type":"object"},"SlurmCheckpointKind":{"enum":["simple","rootfs","rootfsonly"],"type":"string"},"SlurmCheckpointReason":{"enum":["heartbeat","manual","preemption"],"type":"string"}}}}
```

## The CheckpointStatus object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointStatus":{"enum":["initializing","updated_info","possibly_uploaded","ready","deprecated"],"type":"string"}}}}
```

## The CheckpointStatusWithPodSpec object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointStatusWithPodSpec":{"properties":{"action_id":{"type":"string"},"persistent_volume_claim":{},"pod_id":{"type":["string","null"]},"pod_metadata_spec":{},"pod_spec":{},"status":{"type":"string"}},"required":["status","action_id"],"type":"object"}}}}
```

## The CheckpointSuccessInfo object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CheckpointSuccessInfo":{"properties":{"restore_path":{"type":["string","null"]}},"type":"object"}}}}
```

## The Cluster object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Cluster":{"properties":{"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"last_sync":{"format":"date-time","type":["string","null"]},"metadata":{},"name":{"type":"string"},"status":{"type":"string"}},"required":["id","name","status","kind"],"type":"object"}}}}
```

## The ClusterSyncRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ClusterSyncRequest":{"properties":{"cluster_id":{"format":"uuid","type":["string","null"]},"metadata":{},"resource":{"$ref":"#/components/schemas/K8sResource"}},"type":"object"},"K8sResource":{"description":"A Kubernetes resource tagged by \"type\", with the resource's raw JSON fields alongside the tag","properties":{"type":{"enum":["None","Pod","Node","Job","DynamoGraphDeployment","DynamoService"],"type":"string"}},"required":["type"],"title":"K8sResource","type":"object"}}}}
```

## The CompleteExperiment object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CompleteExperiment":{"properties":{"status":{"type":"string"}},"required":["status"],"type":"object"}}}}
```

## The CorrelationUsage object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CorrelationUsage":{"properties":{"cold_start_avoided_ms":{"format":"int64","type":"integer"},"fallbacks":{"format":"int64","type":"integer"},"requests":{"format":"int64","type":"integer"},"successful_requests":{"format":"int64","type":"integer"}},"required":["requests","fallbacks","successful_requests","cold_start_avoided_ms"],"type":"object"}}}}
```

## The CorrelationView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CorrelationView":{"properties":{"activations":{"items":{"$ref":"#/components/schemas/NameCount"},"type":"array"},"artifacts":{"items":{"$ref":"#/components/schemas/ArtifactRef"},"type":"array"},"experiment_id":{"format":"uuid","type":"string"},"intents":{"items":{"$ref":"#/components/schemas/NameCount"},"type":"array"},"name":{"type":"string"},"observations":{"items":{"$ref":"#/components/schemas/NameCount"},"type":"array"},"policy_decisions":{"items":{"$ref":"#/components/schemas/NameCount"},"type":"array"},"scenario":{"type":"string"},"status":{"type":"string"},"usage":{"$ref":"#/components/schemas/CorrelationUsage"}},"required":["experiment_id","name","scenario","status","usage","intents","activations","observations","artifacts","policy_decisions"],"type":"object"},"NameCount":{"properties":{"count":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["name","count"],"type":"object"},"ArtifactRef":{"properties":{"artifact_id":{"type":"string"},"checkpoint_mode":{"type":"string"},"status":{"type":"string"}},"required":["artifact_id","checkpoint_mode","status"],"type":"object"},"CorrelationUsage":{"properties":{"cold_start_avoided_ms":{"format":"int64","type":"integer"},"fallbacks":{"format":"int64","type":"integer"},"requests":{"format":"int64","type":"integer"},"successful_requests":{"format":"int64","type":"integer"}},"required":["requests","fallbacks","successful_requests","cold_start_avoided_ms"],"type":"object"}}}}
```

## The CostBreakdownRow object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CostBreakdownRow":{"properties":{"activation_count":{"format":"int64","type":"integer"},"active_duration_s":{"format":"double","type":"number"},"compute_usd":{"format":"double","type":"number"},"fallback_usd":{"format":"double","type":"number"},"idle_time_s":{"format":"double","type":"number"},"node_seconds":{"format":"double","type":"number"},"profile_id":{"type":"string"},"release_latency_ms":{"format":"double","type":["number","null"]},"storage_usd":{"format":"double","type":"number"},"tokens_served":{"format":"int64","type":"integer"},"transfer_usd":{"format":"double","type":"number"}},"required":["profile_id","node_seconds","active_duration_s","idle_time_s","activation_count","compute_usd","storage_usd","transfer_usd","fallback_usd","tokens_served"],"type":"object"}}}}
```

## The CostConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CostConfig":{"properties":{"node_hourly_usd":{"format":"double","type":"number"},"profile_id":{"type":"string"},"storage_gb_hour_usd":{"format":"double","type":"number"},"transfer_gb_usd":{"format":"double","type":"number"}},"required":["profile_id","node_hourly_usd","storage_gb_hour_usd","transfer_gb_usd"],"type":"object"}}}}
```

## The CostConfigUpsert object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CostConfigUpsert":{"properties":{"node_hourly_usd":{"format":"double","type":"number"},"profile_id":{"type":"string"},"storage_gb_hour_usd":{"format":"double","type":"number"},"transfer_gb_usd":{"format":"double","type":"number"}},"required":["profile_id"],"type":"object"}}}}
```

## The CostLeg object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CostLeg":{"properties":{"cost_usd":{"format":"double","type":"number"},"heavy_activation_count":{"format":"int64","type":"integer"},"heavy_active_duration_s":{"format":"double","type":"number"},"node_seconds":{"format":"double","type":"number"}},"required":["cost_usd","node_seconds","heavy_activation_count","heavy_active_duration_s"],"type":"object"}}}}
```

## The CostQuality object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CostQuality":{"properties":{"avg_ttft_ms":{"format":"double","type":["number","null"]},"refusal_rate":{"format":"double","type":"number"}},"required":["refusal_rate"],"type":"object"}}}}
```

## The CostReport object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CostReport":{"properties":{"baseline":{"$ref":"#/components/schemas/CostLeg"},"hours":{"format":"int64","type":"integer"},"node_seconds_saved":{"format":"double","type":"number"},"savings_pct":{"format":"double","type":"number"},"savings_usd":{"format":"double","type":"number"},"treatment":{"$ref":"#/components/schemas/CostLeg"},"treatment_escalation_rate":{"format":"double","type":"number"},"treatment_idle_time_s":{"format":"double","type":"number"},"treatment_quality":{"$ref":"#/components/schemas/CostQuality"},"treatment_release_latency_ms":{"format":"double","type":["number","null"]},"variance":{"type":["string","null"]}},"required":["hours","baseline","treatment","treatment_idle_time_s","treatment_escalation_rate","treatment_quality","savings_usd","savings_pct","node_seconds_saved"],"type":"object"},"CostLeg":{"properties":{"cost_usd":{"format":"double","type":"number"},"heavy_activation_count":{"format":"int64","type":"integer"},"heavy_active_duration_s":{"format":"double","type":"number"},"node_seconds":{"format":"double","type":"number"}},"required":["cost_usd","node_seconds","heavy_activation_count","heavy_active_duration_s"],"type":"object"},"CostQuality":{"properties":{"avg_ttft_ms":{"format":"double","type":["number","null"]},"refusal_rate":{"format":"double","type":"number"}},"required":["refusal_rate"],"type":"object"}}}}
```

## The CostSavingsEstimate object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CostSavingsEstimate":{"description":"Cost savings estimate with user-provided hourly rate","properties":{"checkpoint_overhead_cost":{"description":"Cost of checkpoint overhead (time spent checkpointing)","format":"double","type":"number"},"hourly_rate":{"description":"User-provided hourly compute cost","format":"double","type":"number"},"max_recovery_point_seconds":{"description":"Maximum potential data loss on failure (seconds) - worst case recovery point","format":"double","type":"number"},"max_savings_per_failure":{"description":"Estimated maximum cost saved per failure event\n(time_protected - max_recovery_point) * hourly_rate / 3600","format":"double","type":"number"},"net_potential_savings":{"description":"Net potential savings = max_savings - overhead_cost","format":"double","type":"number"},"pods_protected":{"description":"Number of pods protected","format":"int64","type":"integer"},"time_protected_seconds":{"description":"Total time protected by checkpoints (seconds)","format":"double","type":"number"},"total_checkpoints":{"description":"Total checkpoints taken","format":"int64","type":"integer"}},"required":["time_protected_seconds","max_recovery_point_seconds","hourly_rate","max_savings_per_failure","checkpoint_overhead_cost","net_potential_savings","pods_protected","total_checkpoints"],"type":"object"}}}}
```

## The CreateClusterRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CreateClusterRequest":{"description":"CreateClusterRequest is the request body for creating a cluster","properties":{"cluster_name":{"type":"string"},"kind":{"description":"Cluster kind: \"kubernetes\" (default) or \"slurm\"","type":["string","null"]}},"required":["cluster_name"],"type":"object"}}}}
```

## The CreateExperiment object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CreateExperiment":{"properties":{"name":{"type":"string"},"parameters":{},"profile_id":{"type":["string","null"]},"scenario":{"type":"string"}},"required":["name","scenario"],"type":"object"}}}}
```

## The CreateInferenceKey object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CreateInferenceKey":{"properties":{"budget_usd":{"format":"double","type":["number","null"]},"models":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"rate_limit_rps":{"format":"int64","type":["integer","null"]},"tenant_id":{"type":["string","null"]}},"required":["name"],"type":"object"}}}}
```

## The CreateInstanceRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"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"}}}}
```

## The CreateInstanceResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"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"}}}}
```

## The CreateMaintenanceWindow object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CreateMaintenanceWindow":{"properties":{"end_time":{"format":"date-time","type":"string"},"nodes":{"items":{"type":"string"},"type":["array","null"]},"partitions":{"items":{"type":"string"},"type":["array","null"]},"reason":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"status":{"type":["string","null"]}},"required":["start_time","end_time","reason"],"type":"object"}}}}
```

## The CreateObservation object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CreateObservation":{"properties":{"action_id":{"type":["string","null"]},"checkpoint_id":{"type":["string","null"]},"checkpoint_mode":{"type":["string","null"]},"cluster_id":{"type":["string","null"]},"completed_at":{"format":"date-time","type":["string","null"]},"completion_tokens":{"format":"int64","type":["integer","null"]},"deadline_missed":{"type":["boolean","null"]},"deployment_id":{"type":["string","null"]},"dimensions":{},"duration_ms":{"format":"int64","type":["integer","null"]},"event_type":{"type":"string"},"evidence":{"type":"string"},"experiment_id":{"format":"uuid","type":["string","null"]},"fallback_used":{"type":["boolean","null"]},"logical_bytes":{"format":"int64","type":["integer","null"]},"metrics":{},"node_id":{"type":["string","null"]},"observation_key":{"type":"string"},"physical_bytes":{"format":"int64","type":["integer","null"]},"profile_id":{"type":["string","null"]},"prompt_tokens":{"format":"int64","type":["integer","null"]},"request_id":{"type":["string","null"]},"reused_bytes":{"format":"int64","type":["integer","null"]},"source":{"type":"string"},"started_at":{"format":"date-time","type":"string"},"storage_tier":{"type":["string","null"]},"success":{"type":["boolean","null"]},"transferred_bytes":{"format":"int64","type":["integer","null"]},"ttft_ms":{"format":"int64","type":["integer","null"]},"written_bytes":{"format":"int64","type":["integer","null"]}},"required":["observation_key","event_type","evidence","source","started_at"],"type":"object"}}}}
```

## The CreateProfile object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CreateProfile":{"properties":{"backend_url":{"type":"string"},"compatibility":{},"dynamo_template":{},"estimated_cold_start_ms":{"format":"int64","type":"integer"},"exact_model":{"type":"string"},"hosting_mode":{"type":"string"},"logical_model":{"type":"string"},"max_queue_depth":{"format":"int32","type":"integer"},"max_replicas":{"format":"int32","type":"integer"},"min_replicas":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"scale_down_idle_seconds":{"format":"int64","type":"integer"},"spec":{},"target_concurrency":{"format":"int32","type":"integer"}},"required":["profile_id","logical_model","exact_model","backend_url","spec"],"type":"object"}}}}
```

## The CreatedInferenceKey object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"CreatedInferenceKey":{"allOf":[{"$ref":"#/components/schemas/InferenceKeyView"},{"properties":{"raw_key":{"description":"The raw key, shown exactly once at creation.","type":"string"}},"required":["raw_key"],"type":"object"}]},"InferenceKeyView":{"properties":{"budget_usd":{"format":"double","type":["number","null"]},"created_at":{"format":"date-time","type":"string"},"key_id":{"type":"string"},"models":{},"name":{"type":"string"},"rate_limit_rps":{"format":"int64","type":["integer","null"]},"revoked_at":{"format":"date-time","type":["string","null"]},"tenant_id":{"type":["string","null"]}},"required":["key_id","name","models","created_at"],"type":"object"}}}}
```

## The DeploymentProfile object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DeploymentProfile":{"properties":{"backend_url":{"type":"string"},"compatibility_key":{"type":"string"},"dynamo_template":{},"estimated_cold_start_ms":{"format":"int64","type":"integer"},"exact_model":{"type":"string"},"hosting_mode":{"type":"string"},"logical_model":{"type":"string"},"max_queue_depth":{"format":"int32","type":"integer"},"max_replicas":{"format":"int32","type":"integer"},"min_replicas":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"profile_revision":{"type":"string"},"scale_down_idle_seconds":{"format":"int64","type":"integer"},"spec":{},"target_concurrency":{"format":"int32","type":"integer"}},"required":["profile_id","logical_model","exact_model","profile_revision","compatibility_key","backend_url","estimated_cold_start_ms","hosting_mode","spec","min_replicas","max_replicas","target_concurrency","max_queue_depth","scale_down_idle_seconds"],"type":"object"}}}}
```

## The DeploymentProgress object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DeploymentProgress":{"description":"How far a profile has got, and how long each stage took.","properties":{"activation_started_at":{"format":"date-time","type":["string","null"]},"cold_start_ms":{"description":"Measured activation-start-to-ready, absent until the profile is ready. A\ntime-to-ready, and only a cold start when start_kind is not restore.","format":"int64","type":["integer","null"]},"phase":{"type":["string","null"]},"profile_id":{"type":"string"},"ready":{"type":"boolean"},"ready_at":{"format":"date-time","type":["string","null"]},"restore_checkpoint_path":{"description":"The checkpoint the worker was told to restore from, when it was.","type":["string","null"]},"start_kind":{"description":"How the worker behind this activation started: restore, cold, or null when no\nlive worker pod is known.","type":["string","null"]},"steps":{"items":{"$ref":"#/components/schemas/DeploymentStep"},"type":"array"}},"required":["profile_id","ready","steps"],"type":"object"},"DeploymentStep":{"description":"One recorded step in a profile's deployment, newest first.","properties":{"elapsed_ms":{"description":"Milliseconds since the activation began, so a UI can draw the sequence\nwithout doing date arithmetic. Null when the activation start is unknown.","format":"int64","type":["integer","null"]},"kind":{"description":"Lifecycle kind, e.g. model.weights_ready, model.ready, route.published.","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"payload":{}},"required":["kind","occurred_at","payload"],"type":"object"}}}}
```

## The DeploymentStep object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DeploymentStep":{"description":"One recorded step in a profile's deployment, newest first.","properties":{"elapsed_ms":{"description":"Milliseconds since the activation began, so a UI can draw the sequence\nwithout doing date arithmetic. Null when the activation start is unknown.","format":"int64","type":["integer","null"]},"kind":{"description":"Lifecycle kind, e.g. model.weights_ready, model.ready, route.published.","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"payload":{}},"required":["kind","occurred_at","payload"],"type":"object"}}}}
```

## The DockerConfiguration object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"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"},"EnvironmentVariable":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"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"}}}}
```

## The DynamoCheckpointEntry object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoCheckpointEntry":{"description":"One CEDANA_CHECKPOINT \"slot\" in the library. A name can have many individual\ncheckpoints over time (you can checkpoint the same env value repeatedly); this\naggregates them into a single slot row.","properties":{"checkpoint_count":{"description":"Number of (non-deprecated) checkpoints captured under this name","format":"int64","type":"integer"},"created_at":{"description":"Timestamp of the most recent checkpoint under this name","format":"date-time","type":["string","null"]},"deployment_name":{"description":"Deployment whose CEDANA_CHECKPOINT env equals this checkpoint's name, if any.","type":["string","null"]},"model":{"description":"Model served by that deployment (drives the model logo + \"deploy from\").","type":["string","null"]},"name":{"description":"CEDANA_CHECKPOINT name (the stable restore key)","type":"string"},"restorable":{"description":"True if at least one checkpoint under this name is ready + restorable","type":"boolean"}},"required":["name","checkpoint_count","restorable"],"type":"object"}}}}
```

## The DynamoCheckpointResult object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoCheckpointResult":{"description":"Result of checkpointing a DGD: the workers a checkpoint was issued for.","properties":{"workers":{"items":{"$ref":"#/components/schemas/DynamoCheckpointedWorker"},"type":"array"}},"required":["workers"],"type":"object"},"DynamoCheckpointedWorker":{"description":"One worker pod that a checkpoint was issued for.","properties":{"action_id":{"type":"string"},"pod_name":{"type":"string"}},"required":["pod_name","action_id"],"type":"object"}}}}
```

## The DynamoCheckpointSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoCheckpointSummary":{"description":"A lightweight summary of checkpoints taken for a Dynamo deployment's workers.","properties":{"has_cache":{"description":"True if at least one checkpoint with status='ready' exists","type":"boolean"},"latest":{"description":"Timestamp of the most recent checkpoint","format":"date-time","type":["string","null"]},"pods":{"additionalProperties":{"format":"int64","type":"integer"},"description":"Per-pod breakdown: pod_name → checkpoint count","propertyNames":{"type":"string"},"type":"object"},"total":{"description":"Total number of ready checkpoints across all worker pods","format":"int64","type":"integer"}},"required":["total","has_cache","pods"],"type":"object"}}}}
```

## The DynamoCheckpointedWorker object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoCheckpointedWorker":{"description":"One worker pod that a checkpoint was issued for.","properties":{"action_id":{"type":"string"},"pod_name":{"type":"string"}},"required":["pod_name","action_id"],"type":"object"}}}}
```

## The DynamoDeployRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoDeployRequest":{"description":"Request body for submitting a DynamoGraphDeployment to a cluster.","properties":{"cluster_id":{"description":"ID of the target cluster","type":"string"},"enable_checkpointing":{"description":"If true, inject runtimeClassName: cedana and CEDANA_CHECKPOINT into worker pod specs","type":"boolean"},"manifest":{"description":"Full DynamoGraphDeployment manifest (nvidia.com/v1alpha1)"}},"required":["cluster_id","manifest"],"type":"object"}}}}
```

## The DynamoDeployment object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoDeployment":{"properties":{"backend":{"type":["string","null"]},"cedana_managed":{"type":"boolean"},"cluster_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"model":{"type":["string","null"]},"name":{"type":"string"},"namespace":{"type":"string"},"spec":{},"status":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"worker_replicas":{"format":"int32","type":["integer","null"]},"worker_replicas_ready":{"format":"int32","type":["integer","null"]}},"required":["id","cluster_id","name","namespace","status","cedana_managed","created_at","updated_at"],"type":"object"}}}}
```

## The DynamoDeploymentView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoDeploymentView":{"allOf":[{"$ref":"#/components/schemas/DynamoDeployment"},{"properties":{"checkpoint_name":{"description":"CEDANA_CHECKPOINT name of the first worker service, if checkpointing is\nenabled. This is the stable key a worker restores from. None if unset.","type":["string","null"]},"frontend_endpoint":{"description":"Resolved frontend endpoint: external_ip:port or cluster_ip:port","type":["string","null"]}},"type":"object"}],"description":"Combined view returned by the list endpoint"},"DynamoDeployment":{"properties":{"backend":{"type":["string","null"]},"cedana_managed":{"type":"boolean"},"cluster_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"model":{"type":["string","null"]},"name":{"type":"string"},"namespace":{"type":"string"},"spec":{},"status":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"worker_replicas":{"format":"int32","type":["integer","null"]},"worker_replicas_ready":{"format":"int32","type":["integer","null"]}},"required":["id","cluster_id","name","namespace","status","cedana_managed","created_at","updated_at"],"type":"object"}}}}
```

## The DynamoMetricPoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoMetricPoint":{"description":"A single metric time-series point returned to the UI.","properties":{"metric_name":{"type":"string"},"timestamp_ms":{"description":"Unix timestamp in milliseconds","format":"int64","type":"integer"},"value":{"format":"double","type":"number"}},"required":["metric_name","value","timestamp_ms"],"type":"object"}}}}
```

## The DynamoMetricSample object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoMetricSample":{"description":"A single metric sample sent by the watcher.","properties":{"metric_name":{"type":"string"},"timestamp_ms":{"description":"Unix timestamp in milliseconds","format":"int64","type":"integer"},"value":{"format":"double","type":"number"}},"required":["metric_name","value","timestamp_ms"],"type":"object"}}}}
```

## The DynamoMetricsIngestRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoMetricsIngestRequest":{"description":"Batch of metric samples posted by the watcher after scraping /metrics.","properties":{"cluster_id":{"type":"string"},"model":{"type":"string"},"namespace":{"type":"string"},"samples":{"items":{"$ref":"#/components/schemas/DynamoMetricSample"},"type":"array"}},"required":["cluster_id","namespace","samples"],"type":"object"},"DynamoMetricSample":{"description":"A single metric sample sent by the watcher.","properties":{"metric_name":{"type":"string"},"timestamp_ms":{"description":"Unix timestamp in milliseconds","format":"int64","type":"integer"},"value":{"format":"double","type":"number"}},"required":["metric_name","value","timestamp_ms"],"type":"object"}}}}
```

## The DynamoScrapeRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"DynamoScrapeRequest":{"description":"Body sent by the dynamo-watcher after scraping /v1/models from the live frontend.","properties":{"backend":{"type":["string","null"]},"cluster_id":{"format":"uuid","type":"string"},"model":{"type":["string","null"]},"namespace":{"type":"string"}},"required":["cluster_id","namespace"],"type":"object"}}}}
```

## The EnvironmentVariable object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"EnvironmentVariable":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"}}}}
```

## The EventsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"EventsResponse":{"properties":{"events":{"items":{"$ref":"#/components/schemas/NotificationEvent"},"type":"array"}},"required":["events"],"type":"object"},"NotificationEvent":{"properties":{"action_id":{"type":"string"},"checkpoint_id":{"type":"string"},"cluster_id":{"type":"string"},"context":{"type":"string"},"description":{"type":"string"},"duration_ns":{"format":"int64","minimum":0,"type":"integer"},"failure_reason":{"type":"string"},"failure_stage":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"node_name":{"type":"string"},"operation":{"type":"string"},"pause_ns":{"description":"Checkpoints: time the workload was held (see facts::checkpoint_pause_ns).","format":"int64","minimum":0,"type":"integer"},"physical_bytes":{"format":"int64","minimum":0,"type":"integer"},"pod_ready_at_ms":{"format":"int64","type":["integer","null"]},"pod_scheduled_at_ms":{"description":"Restores: PodScheduled / Ready transitions of the restored pod, once known.","format":"int64","type":["integer","null"]},"pod_uid":{"type":"string"},"read":{"type":"boolean"},"restore_uuid":{"type":"string"},"result":{"type":"string"},"storage_tier":{"type":"string"},"timestamp":{"type":"string"},"type":{"type":"string"},"workload_type":{"type":"string"}},"required":["id","timestamp","type","operation","result","description","context","read","cluster_id","workload_type","node_name","pod_uid","name","namespace","action_id","checkpoint_id","restore_uuid","storage_tier","failure_stage","failure_reason","duration_ns","physical_bytes","pause_ns"],"type":"object"}}}}
```

## The Experiment object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Experiment":{"properties":{"completed_at":{"format":"date-time","type":["string","null"]},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"parameters":{},"profile_id":{"type":["string","null"]},"scenario":{"type":"string"},"started_at":{"format":"date-time","type":"string"},"status":{"type":"string"}},"required":["id","name","scenario","status","parameters","started_at"],"type":"object"}}}}
```

## The ExperimentSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ExperimentSummary":{"properties":{"completed_at":{"format":"date-time","type":["string","null"]},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"observations":{"format":"int64","type":"integer"},"parameters":{},"profile_id":{"type":["string","null"]},"scenario":{"type":"string"},"started_at":{"format":"date-time","type":"string"},"status":{"type":"string"}},"required":["id","name","scenario","status","parameters","started_at","observations"],"type":"object"}}}}
```

## The FailureSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"FailureSummary":{"properties":{"count":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"reason":{"type":"string"},"stage":{"type":"string"}},"required":["operation","stage","reason","count"],"type":"object"}}}}
```

## The FilteredJobResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"FilteredJobResponse":{"properties":{"available_priorities":{"items":{"format":"int32","type":"integer"},"type":"array"},"jobs":{"items":{"$ref":"#/components/schemas/JobFilterResponse"},"type":"array"},"total_count":{"format":"int64","type":"integer"}},"required":["jobs","total_count","available_priorities"],"type":"object"},"JobFilterResponse":{"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"pod_count":{"format":"int64","type":"integer"},"priority":{"format":"int32","type":["integer","null"]},"start_time":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status","pod_count"],"type":"object"}}}}
```

## The Fleet object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Fleet":{"properties":{"availability":{"type":["string","null"]},"budgets":{},"created_at":{"format":"date-time","type":"string"},"fleet_id":{"type":"string"},"logical_model":{"type":"string"},"name":{"type":"string"},"profile_ids":{},"residency":{"type":["string","null"]}},"required":["fleet_id","name","logical_model","profile_ids","budgets","created_at"],"type":"object"}}}}
```

## The FleetUpsert object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"FleetUpsert":{"properties":{"availability":{"type":["string","null"]},"budgets":{},"fleet_id":{"type":["string","null"]},"logical_model":{"type":"string"},"name":{"type":"string"},"profile_ids":{"items":{"type":"string"},"type":"array"},"residency":{"type":["string","null"]}},"required":["name","logical_model","profile_ids"],"type":"object"}}}}
```

## The GpuMetric object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"GpuMetric":{"description":"GPU metrics for a single GPU","properties":{"gpu_index":{"type":"string"},"gpu_utilization":{"description":"GPU utilization percentage (0-100)","format":"double","type":["number","null"]},"gpu_uuid":{"type":"string"},"memory_free_mib":{"description":"Framebuffer memory free in MiB","format":"double","type":["number","null"]},"memory_used_mib":{"description":"Framebuffer memory used in MiB","format":"double","type":["number","null"]},"memory_utilization":{"description":"Memory bandwidth utilization percentage (0-100)","format":"double","type":["number","null"]},"model_name":{"description":"GPU model name (e.g., \"NVIDIA H100 80GB HBM3\")","type":["string","null"]},"namespace":{"description":"Namespace of the pod (if any)","type":["string","null"]},"node_name":{"type":"string"},"pod_name":{"description":"Pod currently using this GPU (if any)","type":["string","null"]},"power_watts":{"description":"Power usage in Watts","format":"double","type":["number","null"]},"temperature_celsius":{"description":"GPU temperature in Celsius","format":"double","type":["number","null"]},"timestamp":{"type":"string"}},"required":["node_name","gpu_uuid","gpu_index","timestamp"],"type":"object"}}}}
```

## The GpuTimeSeries object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"GpuTimeSeries":{"description":"Time-series data for a single GPU","properties":{"data":{"items":{"$ref":"#/components/schemas/GpuTimeSeriesPoint"},"type":"array"},"gpu_index":{"type":"string"},"gpu_uuid":{"type":"string"},"model_name":{"type":["string","null"]},"node_name":{"type":"string"}},"required":["node_name","gpu_uuid","gpu_index","data"],"type":"object"},"GpuTimeSeriesPoint":{"description":"Time-series data point for GPU metrics","properties":{"gpu_utilization":{"format":"double","type":["number","null"]},"memory_free_mib":{"format":"double","type":["number","null"]},"memory_used_mib":{"format":"double","type":["number","null"]},"memory_utilization":{"format":"double","type":["number","null"]},"namespace":{"type":["string","null"]},"pod_name":{"type":["string","null"]},"timestamp":{"type":"string"}},"required":["timestamp"],"type":"object"}}}}
```

## The GpuTimeSeriesPoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"GpuTimeSeriesPoint":{"description":"Time-series data point for GPU metrics","properties":{"gpu_utilization":{"format":"double","type":["number","null"]},"memory_free_mib":{"format":"double","type":["number","null"]},"memory_used_mib":{"format":"double","type":["number","null"]},"memory_utilization":{"format":"double","type":["number","null"]},"namespace":{"type":["string","null"]},"pod_name":{"type":["string","null"]},"timestamp":{"type":"string"}},"required":["timestamp"],"type":"object"}}}}
```

## The HeartbeatTriggerConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"HeartbeatTriggerConfig":{"properties":{"interval_seconds":{"format":"int32","minimum":0,"type":"integer"},"max_checkpoints":{"description":"Cap on successful checkpoints before auto-disable. Absent = run forever;\nwhen present must be `> 0` (rejected with 400 at creation, not stored).\n`i32` (not u32) bounds an oversized value at deserialization; matches cedana-ui.","format":"int32","type":["integer","null"]}},"required":["interval_seconds"],"type":"object"}}}}
```

## The HistogramBucket object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"HistogramBucket":{"properties":{"count":{"format":"int64","minimum":0,"type":"integer"},"le":{"description":"Upper bound of the bucket (seconds or bytes); `null` marks the overflow bucket above the last bound.","format":"double","type":["number","null"]}},"required":["count"],"type":"object"}}}}
```

## The Host object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Host":{"properties":{"CPU":{"$ref":"#/components/schemas/HostCpu"},"Hostname":{"type":"string"},"ID":{"type":"string"},"KernelArch":{"type":"string"},"KernelVersion":{"type":"string"},"MAC":{"type":"string"},"Memory":{"$ref":"#/components/schemas/HostMemory"},"OS":{"type":"string"},"Platform":{"type":"string"}},"type":"object"},"HostCpu":{"properties":{"Count":{"format":"int32","type":"integer"},"Family":{"type":"string"},"PhysicalID":{"type":"string"},"VendorID":{"type":"string"}},"type":"object"},"HostMemory":{"properties":{"Total":{"format":"int64","minimum":0,"type":"integer"}},"type":"object"}}}}
```

## The HostCpu object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"HostCpu":{"properties":{"Count":{"format":"int32","type":"integer"},"Family":{"type":"string"},"PhysicalID":{"type":"string"},"VendorID":{"type":"string"}},"type":"object"}}}}
```

## The HostMemory object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"HostMemory":{"properties":{"Total":{"format":"int64","minimum":0,"type":"integer"}},"type":"object"}}}}
```

## The HttpError object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"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"}}}}
```

## The InferenceAnalytics object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"InferenceAnalytics":{"properties":{"evidence":{"type":"string"},"experiment_id":{"format":"uuid","type":["string","null"]},"profile_id":{"type":["string","null"]},"sample_count":{"minimum":0,"type":"integer"},"serving":{"$ref":"#/components/schemas/ServingAnalytics"},"startup":{"$ref":"#/components/schemas/StartupAnalytics"},"storage":{"$ref":"#/components/schemas/StorageAnalytics"},"window_hours":{"format":"int64","type":"integer"}},"required":["window_hours","startup","storage","serving","evidence","sample_count"],"type":"object"},"ServingAnalytics":{"properties":{"average_ttft_ms":{"format":"double","type":["number","null"]},"completion_tokens":{"format":"int64","type":"integer"},"deadline_misses":{"format":"int64","type":"integer"},"fallbacks":{"format":"int64","type":"integer"},"prompt_tokens":{"format":"int64","type":"integer"},"requests":{"format":"int64","type":"integer"},"tokens_per_second":{"format":"double","type":["number","null"]}},"required":["requests","fallbacks","deadline_misses","prompt_tokens","completion_tokens"],"type":"object"},"StartupAnalytics":{"properties":{"cold":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LatencyDistribution"}]},"restore":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LatencyDistribution"}]},"saved_p50_ms":{"format":"int64","type":["integer","null"]},"speedup_p50":{"format":"double","type":["number","null"]},"warm":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LatencyDistribution"}]}},"type":"object"},"LatencyDistribution":{"properties":{"count":{"minimum":0,"type":"integer"},"p50_ms":{"format":"int64","type":"integer"},"p95_ms":{"format":"int64","type":"integer"}},"required":["count","p50_ms","p95_ms"],"type":"object"},"StorageAnalytics":{"properties":{"dedup_ratio":{"format":"double","type":["number","null"]},"incremental_ratio":{"format":"double","type":["number","null"]},"logical_bytes":{"format":"int64","type":"integer"},"physical_bytes":{"format":"int64","type":"integer"},"reused_bytes":{"format":"int64","type":"integer"},"transferred_bytes":{"format":"int64","type":"integer"},"written_bytes":{"format":"int64","type":"integer"}},"required":["logical_bytes","physical_bytes","written_bytes","reused_bytes","transferred_bytes"],"type":"object"}}}}
```

## The InferenceKeyView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"InferenceKeyView":{"properties":{"budget_usd":{"format":"double","type":["number","null"]},"created_at":{"format":"date-time","type":"string"},"key_id":{"type":"string"},"models":{},"name":{"type":"string"},"rate_limit_rps":{"format":"int64","type":["integer","null"]},"revoked_at":{"format":"date-time","type":["string","null"]},"tenant_id":{"type":["string","null"]}},"required":["key_id","name","models","created_at"],"type":"object"}}}}
```

## The InstanceInfo object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"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"}}}}
```

## The InstanceStatus object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"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"}}}}
```

## The InstanceType object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"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"}}}}
```

## The InstanceTypeAvailability object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"InstanceTypeAvailability":{"properties":{"available":{"type":"boolean"},"display_name":{"type":"string"},"region":{"type":"string"}},"required":["region","available","display_name"],"type":"object"}}}}
```

## The InstanceTypeBootTime object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"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"}}}}
```

## The InstanceTypeConfiguration object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"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"}}}}
```

## The InstanceTypePricing object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"InstanceTypePricing":{"description":"Instance type pricing configuration","properties":{"capacity_type":{"description":"\"spot\" or \"on-demand\"","type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"instance_type":{"type":"string"},"ondemand_price_per_hour":{"description":"Hourly cost when running as on-demand","format":"double","type":["number","null"]},"spot_price_per_hour":{"description":"Hourly cost when running as spot","format":"double","type":["number","null"]},"updated_at":{"format":"date-time","type":"string"}},"required":["id","instance_type","capacity_type","created_at","updated_at"],"type":"object"}}}}
```

## The Job object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Job":{"properties":{"Details":{},"JID":{"type":"string"},"Log":{"type":"string"},"State":{"$ref":"#/components/schemas/ProcessState"},"Type":{"type":"string"}},"required":["Type","State"],"type":"object"},"ProcessState":{"properties":{"Cmdline":{"type":"string"},"GIDs":{"items":{"format":"int32","minimum":0,"type":"integer"},"type":"array"},"GPUEnabled":{"type":"boolean"},"Groups":{"items":{"format":"int32","minimum":0,"type":"integer"},"type":"array"},"Host":{"$ref":"#/components/schemas/Host"},"IsRunning":{"type":"boolean"},"PID":{"format":"int32","minimum":0,"type":"integer"},"StartTime":{"format":"int64","minimum":0,"type":"integer"},"Status":{"type":"string"},"UIDs":{"items":{"format":"int32","minimum":0,"type":"integer"},"type":"array"},"WorkingDir":{"type":"string"}},"required":["PID","Cmdline","StartTime","WorkingDir","Status","IsRunning","Host"],"type":"object"},"Host":{"properties":{"CPU":{"$ref":"#/components/schemas/HostCpu"},"Hostname":{"type":"string"},"ID":{"type":"string"},"KernelArch":{"type":"string"},"KernelVersion":{"type":"string"},"MAC":{"type":"string"},"Memory":{"$ref":"#/components/schemas/HostMemory"},"OS":{"type":"string"},"Platform":{"type":"string"}},"type":"object"},"HostCpu":{"properties":{"Count":{"format":"int32","type":"integer"},"Family":{"type":"string"},"PhysicalID":{"type":"string"},"VendorID":{"type":"string"}},"type":"object"},"HostMemory":{"properties":{"Total":{"format":"int64","minimum":0,"type":"integer"}},"type":"object"}}}}
```

## The JobFilterResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"JobFilterResponse":{"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"pod_count":{"format":"int64","type":"integer"},"priority":{"format":"int32","type":["integer","null"]},"start_time":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status","pod_count"],"type":"object"}}}}
```

## The JobPodResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"JobPodResponse":{"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"owner_reference":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status"],"type":"object"}}}}
```

## The JobPodsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"JobPodsResponse":{"properties":{"job_id":{"format":"uuid","type":"string"},"job_name":{"type":"string"},"pods":{"items":{"$ref":"#/components/schemas/JobPodResponse"},"type":"array"},"total_count":{"format":"int64","type":"integer"}},"required":["job_id","job_name","pods","total_count"],"type":"object"},"JobPodResponse":{"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"owner_reference":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status"],"type":"object"}}}}
```

## The JobPolicyStatus object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"JobPolicyStatus":{"properties":{"job_ids":{"items":{"type":"string"},"type":"array"},"job_status":{"type":["string","null"]},"last_updated":{"type":["string","null"]},"pod_count":{"format":"int64","type":"integer"},"policy_id":{"type":"string"},"tracked_pods":{"items":{"type":"string"},"type":"array"}},"required":["policy_id","job_ids","tracked_pods","pod_count"],"type":"object"}}}}
```

## The JobPrioritiesResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"JobPrioritiesResponse":{"properties":{"priorities":{"items":{"format":"int32","type":"integer"},"type":"array"},"priority_counts":{"additionalProperties":{"format":"int64","type":"integer"},"propertyNames":{"type":"string"},"type":"object"}},"required":["priorities","priority_counts"],"type":"object"}}}}
```

## The JobResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"JobResponse":{"properties":{"age":{"type":"string"},"completions":{"type":["string","null"]},"duration":{"type":["string","null"]},"id":{"format":"uuid","type":"string"},"monitored_by_policies":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"pod_count":{"format":"int32","type":["integer","null"]},"pod_ids":{"items":{"type":"string"},"type":"array"},"policy_count":{"format":"int32","type":["integer","null"]},"priority":{"format":"int32","type":["integer","null"]},"startTime":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status","age","monitored_by_policies","pod_ids"],"type":"object"}}}}
```

## The JobsFilterConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"JobsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":["string","null"]},"priority":{"format":"int32","type":["integer","null"]}},"required":["cluster_id"],"type":"object"}}}}
```

## The K8sResource object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"K8sResource":{"description":"A Kubernetes resource tagged by \"type\", with the resource's raw JSON fields alongside the tag","properties":{"type":{"enum":["None","Pod","Node","Job","DynamoGraphDeployment","DynamoService"],"type":"string"}},"required":["type"],"title":"K8sResource","type":"object"}}}}
```

## The KvCacheState object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"KvCacheState":{"description":"What a profile's engine is currently reusing.","properties":{"block_size":{"description":"Tokens per KV block. Reuse happens in whole blocks, so a prompt shorter than two\nof them reports no hits however often it repeats.","format":"int64","type":["integer","null"]},"gpu_blocks":{"format":"int64","type":["integer","null"]},"pod_name":{"description":"Which worker answered, so a caller can tell a restart apart from a\ncounter that merely moved.","type":["string","null"]},"prefix_caching":{"type":["boolean","null"]},"profile_id":{"type":"string"},"queried_tokens":{"description":"Prompt tokens the engine has looked up, cumulatively.","format":"int64","type":"integer"},"reused_tokens":{"description":"Of those, how many skipped prefill because they were already resident.","format":"int64","type":"integer"}},"required":["profile_id","queried_tokens","reused_tokens"],"type":"object"}}}}
```

## The LatencyDistribution object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"LatencyDistribution":{"properties":{"count":{"minimum":0,"type":"integer"},"p50_ms":{"format":"int64","type":"integer"},"p95_ms":{"format":"int64","type":"integer"}},"required":["count","p50_ms","p95_ms"],"type":"object"}}}}
```

## The LaunchConfiguration object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"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"},"EnvironmentVariable":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"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"}}}}
```

## The LifecycleEnvelope object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"LifecycleEnvelope":{"description":"Shared envelope for trusted lifecycle events.","properties":{"action_id":{"description":"Checkpoint/restore action UUID when the event belongs to one.","format":"uuid","type":["string","null"]},"activation_id":{"description":"Model activation row UUID when applicable.","format":"uuid","type":["string","null"]},"artifact_id":{"description":"Checkpoint artifact UUID for checkpoint events.","format":"uuid","type":["string","null"]},"boot_id":{"type":["string","null"]},"cluster_id":{"description":"Nebius cluster (`clusters.id` UUID).","format":"uuid","type":"string"},"event_id":{"description":"Idempotency key: generated once per logical event and reused across\ntransport retries (RabbitMQ redelivery, HTTP retry).","format":"uuid","type":"string"},"generation":{"description":"Activation observed generation.","format":"int64","type":"integer"},"kind":{"description":"One of SUPPORTED_LIFECYCLE_KINDS.","type":"string"},"node_uid":{"description":"Node the event came from (checkpoint tmpfs artifacts are boot-tied).","format":"uuid","type":["string","null"]},"occurred_at":{"description":"When the event happened at the source (RFC3339 UTC).","format":"date-time","type":"string"},"payload":{"description":"Free-form JSON; required fields vary per kind."},"profile_id":{"description":"Deployment profile id (e.g. `qwen3-30b-a3b-l40s-fp8`).","type":"string"},"schema_version":{"description":"MUST be 1; anything else is dead-lettered on ingestion.","format":"int32","type":"integer"},"sequence":{"description":"Per-(cluster_id, activation_id) monotonic counter; 0 when not applicable.","format":"int64","type":"integer"},"workload_uid":{"description":"k8s pod/DGD UID when relevant.","type":["string","null"]}},"required":["schema_version","event_id","occurred_at","cluster_id","profile_id","kind"],"type":"object"}}}}
```

## The LifecycleEventView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"LifecycleEventView":{"description":"One durably-persisted lifecycle event, across every profile in the cluster.","properties":{"event_id":{"format":"uuid","type":"string"},"generation":{"format":"int64","type":["integer","null"]},"kind":{"description":"Lifecycle kind, e.g. model.ready, route.published, route.withdrawn.","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"payload":{},"profile_id":{"description":"The profile the event belongs to, when known. Null for cluster-wide events\nand for rows written before the column existed.","type":["string","null"]},"sequence":{"format":"int64","type":["integer","null"]}},"required":["event_id","kind","occurred_at"],"type":"object"}}}}
```

## The MemoryTimeSeries object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"MemoryTimeSeries":{"properties":{"allocated_memory":{"items":{"$ref":"#/components/schemas/TimeSeriesDataPoint"},"type":"array"},"free_memory":{"items":{"$ref":"#/components/schemas/TimeSeriesDataPoint"},"type":"array"}},"required":["free_memory","allocated_memory"],"type":"object"},"TimeSeriesDataPoint":{"properties":{"timestamp":{"format":"int64","type":"integer"},"value":{"format":"double","type":"number"}},"required":["timestamp","value"],"type":"object"}}}}
```

## The MetricSample object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"MetricSample":{"properties":{"metric_name":{"type":"string"},"profile_id":{"type":"string"},"route":{"type":"string"},"timestamp":{"format":"int64","type":"integer"},"value":{"format":"double","type":"number"}},"required":["route","profile_id","metric_name","value","timestamp"],"type":"object"}}}}
```

## The MetricsBatch object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"MetricsBatch":{"properties":{"samples":{"items":{"$ref":"#/components/schemas/MetricSample"},"type":"array"}},"required":["samples"],"type":"object"},"MetricSample":{"properties":{"metric_name":{"type":"string"},"profile_id":{"type":"string"},"route":{"type":"string"},"timestamp":{"format":"int64","type":"integer"},"value":{"format":"double","type":"number"}},"required":["route","profile_id","metric_name","value","timestamp"],"type":"object"}}}}
```

## The MetricsSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"MetricsSummary":{"properties":{"average_backend_latency_ms":{"format":"double","type":"number"},"average_routing_latency_ms":{"format":"double","type":"number"},"estimated_cold_start_avoided_ms":{"format":"int64","type":"integer"},"fallbacks":{"format":"int64","type":"integer"},"requests":{"format":"int64","type":"integer"},"successful_requests":{"format":"int64","type":"integer"}},"required":["requests","fallbacks","successful_requests","estimated_cold_start_avoided_ms","average_routing_latency_ms","average_backend_latency_ms"],"type":"object"}}}}
```

## The ModelActivationView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ModelActivationView":{"properties":{"activation_started_at":{"format":"date-time","type":["string","null"]},"compatibility_key":{"type":"string"},"desired_state":{"type":"string"},"endpoint":{"type":["string","null"]},"estimated_cold_start_ms":{"format":"int64","type":"integer"},"exact_model":{"type":"string"},"hosting_mode":{"type":"string"},"logical_model":{"type":"string"},"observed_generation":{"format":"int64","type":"integer"},"phase":{"type":"string"},"profile_id":{"type":"string"},"profile_revision":{"type":"string"},"ready":{"type":"boolean"},"ready_at":{"format":"date-time","type":["string","null"]},"updated_at":{"format":"date-time","type":"string"}},"required":["profile_id","logical_model","exact_model","profile_revision","compatibility_key","hosting_mode","estimated_cold_start_ms","desired_state","phase","ready","observed_generation","updated_at"],"type":"object"}}}}
```

## The NameCount object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"NameCount":{"properties":{"count":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["name","count"],"type":"object"}}}}
```

## The NamespaceFilterConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"NamespaceFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":"string"}},"required":["cluster_id","namespace"],"type":"object"}}}}
```

## The NamespacesResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"NamespacesResponse":{"properties":{"namespaces":{"items":{"type":"string"},"type":"array"}},"required":["namespaces"],"type":"object"}}}}
```

## The NodeGpuMetrics object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"NodeGpuMetrics":{"description":"GPU metrics grouped by node","properties":{"gpus":{"items":{"$ref":"#/components/schemas/GpuMetric"},"type":"array"},"node_name":{"type":"string"}},"required":["node_name","gpus"],"type":"object"},"GpuMetric":{"description":"GPU metrics for a single GPU","properties":{"gpu_index":{"type":"string"},"gpu_utilization":{"description":"GPU utilization percentage (0-100)","format":"double","type":["number","null"]},"gpu_uuid":{"type":"string"},"memory_free_mib":{"description":"Framebuffer memory free in MiB","format":"double","type":["number","null"]},"memory_used_mib":{"description":"Framebuffer memory used in MiB","format":"double","type":["number","null"]},"memory_utilization":{"description":"Memory bandwidth utilization percentage (0-100)","format":"double","type":["number","null"]},"model_name":{"description":"GPU model name (e.g., \"NVIDIA H100 80GB HBM3\")","type":["string","null"]},"namespace":{"description":"Namespace of the pod (if any)","type":["string","null"]},"node_name":{"type":"string"},"pod_name":{"description":"Pod currently using this GPU (if any)","type":["string","null"]},"power_watts":{"description":"Power usage in Watts","format":"double","type":["number","null"]},"temperature_celsius":{"description":"GPU temperature in Celsius","format":"double","type":["number","null"]},"timestamp":{"type":"string"}},"required":["node_name","gpu_uuid","gpu_index","timestamp"],"type":"object"}}}}
```

## The NodeMetricItem object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"NodeMetricItem":{"properties":{"collector":{"type":"string"},"cpu_core":{"type":"string"},"cpu_mode":{"type":"string"},"filesystem":{"type":"string"},"metric_name":{"type":"string"},"mountpoint":{"type":"string"},"resource":{"type":["string","null"]},"timestamp":{"type":"string"},"value":{"type":"string"}},"required":["metric_name","collector","value","timestamp"],"type":"object"}}}}
```

## The NodeResourceMetricList object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"NodeResourceMetricList":{"description":"New structured event state","properties":{"details":{"items":{"$ref":"#/components/schemas/NodeMetricItem"},"type":"array"},"name":{"type":"string"}},"required":["name"],"type":"object"},"NodeMetricItem":{"properties":{"collector":{"type":"string"},"cpu_core":{"type":"string"},"cpu_mode":{"type":"string"},"filesystem":{"type":"string"},"metric_name":{"type":"string"},"mountpoint":{"type":"string"},"resource":{"type":["string","null"]},"timestamp":{"type":"string"},"value":{"type":"string"}},"required":["metric_name","collector","value","timestamp"],"type":"object"}}}}
```

## The NodeResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"NodeResponse":{"properties":{"capacity_type":{"description":"\"spot\" or \"on-demand\" - detected from node labels","type":"string"},"cluster_name":{"type":"string"},"compute_type":{"type":"string"},"id":{"format":"uuid","type":"string"},"instance_type":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"}},"required":["id","name","status","cluster_name","compute_type","instance_type","region","capacity_type"],"type":"object"}}}}
```

## The NotificationEvent object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"NotificationEvent":{"properties":{"action_id":{"type":"string"},"checkpoint_id":{"type":"string"},"cluster_id":{"type":"string"},"context":{"type":"string"},"description":{"type":"string"},"duration_ns":{"format":"int64","minimum":0,"type":"integer"},"failure_reason":{"type":"string"},"failure_stage":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"node_name":{"type":"string"},"operation":{"type":"string"},"pause_ns":{"description":"Checkpoints: time the workload was held (see facts::checkpoint_pause_ns).","format":"int64","minimum":0,"type":"integer"},"physical_bytes":{"format":"int64","minimum":0,"type":"integer"},"pod_ready_at_ms":{"format":"int64","type":["integer","null"]},"pod_scheduled_at_ms":{"description":"Restores: PodScheduled / Ready transitions of the restored pod, once known.","format":"int64","type":["integer","null"]},"pod_uid":{"type":"string"},"read":{"type":"boolean"},"restore_uuid":{"type":"string"},"result":{"type":"string"},"storage_tier":{"type":"string"},"timestamp":{"type":"string"},"type":{"type":"string"},"workload_type":{"type":"string"}},"required":["id","timestamp","type","operation","result","description","context","read","cluster_id","workload_type","node_name","pod_uid","name","namespace","action_id","checkpoint_id","restore_uuid","storage_tier","failure_stage","failure_reason","duration_ns","physical_bytes","pause_ns"],"type":"object"}}}}
```

## The Observation object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Observation":{"properties":{"duration_ms":{"format":"int64","type":["integer","null"]},"event_type":{"type":"string"},"evidence":{"type":"string"},"experiment_id":{"format":"uuid","type":["string","null"]},"id":{"format":"uuid","type":"string"},"observation_key":{"type":"string"},"profile_id":{"type":["string","null"]},"source":{"type":"string"},"started_at":{"format":"date-time","type":"string"}},"required":["id","observation_key","event_type","evidence","source","started_at"],"type":"object"}}}}
```

## The ObservationView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ObservationView":{"properties":{"completion_tokens":{"format":"int64","type":["integer","null"]},"deadline_missed":{"type":["boolean","null"]},"duration_ms":{"format":"int64","type":["integer","null"]},"event_type":{"type":"string"},"evidence":{"type":"string"},"experiment_id":{"format":"uuid","type":["string","null"]},"fallback_used":{"type":["boolean","null"]},"id":{"format":"uuid","type":"string"},"logical_bytes":{"format":"int64","type":["integer","null"]},"observation_key":{"type":"string"},"physical_bytes":{"format":"int64","type":["integer","null"]},"profile_id":{"type":["string","null"]},"prompt_tokens":{"format":"int64","type":["integer","null"]},"source":{"type":"string"},"started_at":{"format":"date-time","type":"string"},"success":{"type":["boolean","null"]},"ttft_ms":{"format":"int64","type":["integer","null"]}},"required":["id","observation_key","event_type","evidence","source","started_at"],"type":"object"}}}}
```

## The OperationDetail object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"OperationDetail":{"allOf":[{"$ref":"#/components/schemas/OperationRow"},{"properties":{"restores":{"description":"For a checkpoint, every restore made from it; empty for a restore.","items":{"$ref":"#/components/schemas/OperationRow"},"type":"array"},"stages":{"items":{"$ref":"#/components/schemas/OperationStage"},"type":"array"}},"required":["stages","restores"],"type":"object"}]},"OperationRow":{"properties":{"action_id":{"type":"string"},"checkpoint_id":{"type":"string"},"cluster_id":{"type":"string"},"completed_at_ms":{"format":"int64","type":["integer","null"]},"duration_ns":{"format":"int64","minimum":0,"type":"integer"},"failure_reason":{"type":"string"},"failure_stage":{"type":"string"},"gpu_model":{"type":"string"},"kind":{"type":"string"},"logical_bytes":{"format":"int64","minimum":0,"type":"integer"},"name":{"type":"string"},"namespace":{"type":"string"},"node_name":{"type":"string"},"op_type":{"type":"string"},"operation_id":{"type":"string"},"pause_ns":{"format":"int64","minimum":0,"type":"integer"},"physical_bytes":{"format":"int64","minimum":0,"type":"integer"},"platform":{"type":"string"},"pod_ready_at_ms":{"format":"int64","type":["integer","null"]},"pod_scheduled_at_ms":{"description":"Restores only: PodScheduled / Ready transitions of the restored pod, once known.","format":"int64","type":["integer","null"]},"pod_uid":{"type":"string"},"reason":{"type":"string"},"restore_uuid":{"type":"string"},"result":{"type":"string"},"source":{"type":"string"},"started_at_ms":{"description":"Milliseconds since the Unix epoch.","format":"int64","type":"integer"},"storage_tier":{"type":"string"},"workload_type":{"type":"string"}},"required":["operation_id","op_type","workload_type","cluster_id","node_name","pod_uid","name","namespace","action_id","checkpoint_id","restore_uuid","reason","kind","result","failure_stage","failure_reason","storage_tier","gpu_model","platform","started_at_ms","duration_ns","pause_ns","logical_bytes","physical_bytes","source"],"type":"object"},"OperationStage":{"properties":{"bytes_in":{"format":"int64","minimum":0,"type":"integer"},"bytes_out":{"format":"int64","minimum":0,"type":"integer"},"duration_ns":{"format":"int64","minimum":0,"type":"integer"},"reason":{"type":"string"},"result":{"type":"string"},"seq":{"format":"int32","minimum":0,"type":"integer"},"stage":{"type":"string"}},"required":["stage","seq","duration_ns","bytes_in","bytes_out","result","reason"],"type":"object"}}}}
```

## The OperationRow object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"OperationRow":{"properties":{"action_id":{"type":"string"},"checkpoint_id":{"type":"string"},"cluster_id":{"type":"string"},"completed_at_ms":{"format":"int64","type":["integer","null"]},"duration_ns":{"format":"int64","minimum":0,"type":"integer"},"failure_reason":{"type":"string"},"failure_stage":{"type":"string"},"gpu_model":{"type":"string"},"kind":{"type":"string"},"logical_bytes":{"format":"int64","minimum":0,"type":"integer"},"name":{"type":"string"},"namespace":{"type":"string"},"node_name":{"type":"string"},"op_type":{"type":"string"},"operation_id":{"type":"string"},"pause_ns":{"format":"int64","minimum":0,"type":"integer"},"physical_bytes":{"format":"int64","minimum":0,"type":"integer"},"platform":{"type":"string"},"pod_ready_at_ms":{"format":"int64","type":["integer","null"]},"pod_scheduled_at_ms":{"description":"Restores only: PodScheduled / Ready transitions of the restored pod, once known.","format":"int64","type":["integer","null"]},"pod_uid":{"type":"string"},"reason":{"type":"string"},"restore_uuid":{"type":"string"},"result":{"type":"string"},"source":{"type":"string"},"started_at_ms":{"description":"Milliseconds since the Unix epoch.","format":"int64","type":"integer"},"storage_tier":{"type":"string"},"workload_type":{"type":"string"}},"required":["operation_id","op_type","workload_type","cluster_id","node_name","pod_uid","name","namespace","action_id","checkpoint_id","restore_uuid","reason","kind","result","failure_stage","failure_reason","storage_tier","gpu_model","platform","started_at_ms","duration_ns","pause_ns","logical_bytes","physical_bytes","source"],"type":"object"}}}}
```

## The OperationStage object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"OperationStage":{"properties":{"bytes_in":{"format":"int64","minimum":0,"type":"integer"},"bytes_out":{"format":"int64","minimum":0,"type":"integer"},"duration_ns":{"format":"int64","minimum":0,"type":"integer"},"reason":{"type":"string"},"result":{"type":"string"},"seq":{"format":"int32","minimum":0,"type":"integer"},"stage":{"type":"string"}},"required":["stage","seq","duration_ns","bytes_in","bytes_out","result","reason"],"type":"object"}}}}
```

## The OperationTotals object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"OperationTotals":{"properties":{"attempts":{"format":"int64","minimum":0,"type":"integer"},"bytes_total":{"format":"int64","minimum":0,"type":"integer"},"duration_buckets":{"items":{"$ref":"#/components/schemas/HistogramBucket"},"type":"array"},"failed":{"format":"int64","minimum":0,"type":"integer"},"fallbacks":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"p50_ns":{"format":"double","type":"number"},"p95_ns":{"format":"double","type":"number"},"pause_p50_ns":{"description":"Checkpoints: pause percentiles over attempts with a pause recorded (0 otherwise).","format":"double","type":"number"},"pause_p95_ns":{"format":"double","type":"number"},"succeeded":{"format":"int64","minimum":0,"type":"integer"},"to_ready_count":{"format":"int64","minimum":0,"type":"integer"},"to_ready_p50_ns":{"description":"Restores: PodScheduled→Ready percentiles over attempts whose pod reached Ready (0 otherwise).","format":"double","type":"number"},"to_ready_p95_ns":{"format":"double","type":"number"}},"required":["operation","attempts","succeeded","failed","fallbacks","p50_ns","p95_ns","bytes_total","duration_buckets","pause_p50_ns","pause_p95_ns","to_ready_p50_ns","to_ready_p95_ns","to_ready_count"],"type":"object"},"HistogramBucket":{"properties":{"count":{"format":"int64","minimum":0,"type":"integer"},"le":{"description":"Upper bound of the bucket (seconds or bytes); `null` marks the overflow bucket above the last bound.","format":"double","type":["number","null"]}},"required":["count"],"type":"object"}}}}
```

## The OperationsSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"OperationsSummary":{"description":"Windowed aggregates over the same facts and bucket boundaries as the Prometheus export.","properties":{"artifact_size_buckets":{"items":{"$ref":"#/components/schemas/HistogramBucket"},"type":"array"},"attempts":{"format":"int64","minimum":0,"type":"integer"},"failed":{"format":"int64","minimum":0,"type":"integer"},"failures":{"items":{"$ref":"#/components/schemas/FailureSummary"},"type":"array"},"fallbacks":{"format":"int64","minimum":0,"type":"integer"},"operations":{"items":{"$ref":"#/components/schemas/OperationTotals"},"type":"array"},"stages":{"items":{"$ref":"#/components/schemas/StageSummary"},"type":"array"},"step_seconds":{"format":"int64","type":"integer"},"succeeded":{"format":"int64","minimum":0,"type":"integer"},"tiers":{"items":{"$ref":"#/components/schemas/TierSummary"},"type":"array"},"timeline":{"items":{"$ref":"#/components/schemas/TimelinePoint"},"type":"array"},"window_seconds":{"format":"int64","type":"integer"}},"required":["window_seconds","step_seconds","attempts","succeeded","failed","fallbacks","operations","artifact_size_buckets","stages","failures","tiers","timeline"],"type":"object"},"HistogramBucket":{"properties":{"count":{"format":"int64","minimum":0,"type":"integer"},"le":{"description":"Upper bound of the bucket (seconds or bytes); `null` marks the overflow bucket above the last bound.","format":"double","type":["number","null"]}},"required":["count"],"type":"object"},"FailureSummary":{"properties":{"count":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"reason":{"type":"string"},"stage":{"type":"string"}},"required":["operation","stage","reason","count"],"type":"object"},"OperationTotals":{"properties":{"attempts":{"format":"int64","minimum":0,"type":"integer"},"bytes_total":{"format":"int64","minimum":0,"type":"integer"},"duration_buckets":{"items":{"$ref":"#/components/schemas/HistogramBucket"},"type":"array"},"failed":{"format":"int64","minimum":0,"type":"integer"},"fallbacks":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"p50_ns":{"format":"double","type":"number"},"p95_ns":{"format":"double","type":"number"},"pause_p50_ns":{"description":"Checkpoints: pause percentiles over attempts with a pause recorded (0 otherwise).","format":"double","type":"number"},"pause_p95_ns":{"format":"double","type":"number"},"succeeded":{"format":"int64","minimum":0,"type":"integer"},"to_ready_count":{"format":"int64","minimum":0,"type":"integer"},"to_ready_p50_ns":{"description":"Restores: PodScheduled→Ready percentiles over attempts whose pod reached Ready (0 otherwise).","format":"double","type":"number"},"to_ready_p95_ns":{"format":"double","type":"number"}},"required":["operation","attempts","succeeded","failed","fallbacks","p50_ns","p95_ns","bytes_total","duration_buckets","pause_p50_ns","pause_p95_ns","to_ready_p50_ns","to_ready_p95_ns","to_ready_count"],"type":"object"},"StageSummary":{"properties":{"count":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"p50_ns":{"format":"double","type":"number"},"p95_ns":{"format":"double","type":"number"},"stage":{"type":"string"},"total_ns":{"format":"int64","minimum":0,"type":"integer"}},"required":["operation","stage","count","p50_ns","p95_ns","total_ns"],"type":"object"},"TierSummary":{"properties":{"attempts":{"format":"int64","minimum":0,"type":"integer"},"bytes_total":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"p50_ns":{"format":"double","type":"number"},"storage_tier":{"type":"string"},"succeeded":{"format":"int64","minimum":0,"type":"integer"}},"required":["operation","storage_tier","attempts","succeeded","p50_ns","bytes_total"],"type":"object"},"TimelinePoint":{"properties":{"bucket_ms":{"format":"int64","type":"integer"},"failed":{"format":"int64","minimum":0,"type":"integer"},"fallbacks":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"succeeded":{"format":"int64","minimum":0,"type":"integer"}},"required":["bucket_ms","operation","succeeded","failed","fallbacks"],"type":"object"}}}}
```

## The OrgCheckpointSavings object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"OrgCheckpointSavings":{"description":"Organization-level checkpoint savings summary","properties":{"avg_checkpoint_interval_seconds":{"format":"double","type":["number","null"]},"pods_protected":{"format":"int64","type":["integer","null"]},"refreshed_at":{"format":"date-time","type":["string","null"]},"total_checkpoint_overhead_ns":{"format":"int64","type":["integer","null"]},"total_checkpoint_storage_bytes":{"format":"int64","type":["integer","null"]},"total_checkpoints":{"format":"int64","type":["integer","null"]},"total_estimated_savings":{"description":"Total estimated savings across all pods (spot vs on-demand)","format":"double","type":["number","null"]},"total_heartbeat_checkpoints":{"format":"int64","type":["integer","null"]},"total_manual_checkpoints":{"format":"int64","type":["integer","null"]},"total_time_protected_seconds":{"format":"double","type":["number","null"]},"worst_case_recovery_point_seconds":{"format":"double","type":["number","null"]}},"type":"object"}}}}
```

## The OtelCredsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"OtelCredsResponse":{"properties":{"OTEL_EXPORTER_OTLP_ENDPOINT":{"type":"string"},"OTEL_EXPORTER_OTLP_HEADERS":{"type":"string"}},"required":["OTEL_EXPORTER_OTLP_ENDPOINT","OTEL_EXPORTER_OTLP_HEADERS"],"type":"object"}}}}
```

## The OutboxEvent object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"OutboxEvent":{"properties":{"aggregate_id":{"type":"string"},"aggregate_type":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"event_type":{"type":"string"},"id":{"format":"int64","type":"integer"},"payload":{}},"required":["id","aggregate_type","aggregate_id","event_type","payload","created_at"],"type":"object"}}}}
```

## The PaginatedJobResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PaginatedJobResponse":{"properties":{"available_filters":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AvailableFilters"}]},"jobs":{"items":{"$ref":"#/components/schemas/JobResponse"},"type":"array"},"total_count":{"format":"int64","type":"integer"}},"required":["jobs","total_count"],"type":"object"},"AvailableFilters":{"properties":{"namespaces":{"items":{"type":"string"},"type":"array"},"statuses":{"items":{"type":"string"},"type":"array"}},"required":["statuses","namespaces"],"type":"object"},"JobResponse":{"properties":{"age":{"type":"string"},"completions":{"type":["string","null"]},"duration":{"type":["string","null"]},"id":{"format":"uuid","type":"string"},"monitored_by_policies":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"pod_count":{"format":"int32","type":["integer","null"]},"pod_ids":{"items":{"type":"string"},"type":"array"},"policy_count":{"format":"int32","type":["integer","null"]},"priority":{"format":"int32","type":["integer","null"]},"startTime":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status","age","monitored_by_policies","pod_ids"],"type":"object"}}}}
```

## The PaginatedPipelinePolicyResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PaginatedPipelinePolicyResponse":{"properties":{"policies":{"items":{"$ref":"#/components/schemas/PipelinePolicyResponse"},"type":"array"},"total_count":{"format":"int64","type":"integer"}},"required":["policies","total_count"],"type":"object"},"PipelinePolicyResponse":{"description":"Response for pipeline-based policies","properties":{"id":{"type":"string"},"job_count":{"format":"int32","type":["integer","null"]},"name":{"type":["string","null"]},"pipeline":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PolicyPipeline"}]},"pod_count":{"format":"int32","type":"integer"},"status":{"type":"string"},"timestamp":{"type":["string","null"]}},"required":["id","status","pod_count"],"type":"object"},"PolicyPipeline":{"description":"Complete policy pipeline definition","properties":{"action":{"$ref":"#/components/schemas/PipelineAction"},"filter":{"$ref":"#/components/schemas/PipelineFilter"},"trigger":{"$ref":"#/components/schemas/PipelineTrigger"}},"required":["trigger","filter","action"],"type":"object"},"PipelineAction":{"description":"Action defines WHAT to do when triggered","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/CheckpointActionConfig"},"type":{"enum":["checkpoint"],"type":"string"}},"required":["config","type"],"type":"object"}]},"CheckpointActionConfig":{"properties":{"kind":{"type":"string"},"runc_root":{"type":["string","null"]}},"required":["kind"],"type":"object"},"PipelineFilter":{"description":"Filter defines WHAT resources are targeted","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/NamespaceFilterConfig"},"type":{"enum":["namespace"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/PodsFilterConfig"},"type":{"enum":["pods"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/JobsFilterConfig"},"type":{"enum":["jobs"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/SlurmJobsFilterConfig"},"type":{"enum":["slurm_jobs"],"type":"string"}},"required":["config","type"],"type":"object"}]},"NamespaceFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":"string"}},"required":["cluster_id","namespace"],"type":"object"},"PodsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"pod_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"JobsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":["string","null"]},"priority":{"format":"int32","type":["integer","null"]}},"required":["cluster_id"],"type":"object"},"SlurmJobsFilterConfig":{"description":"Filter config for targeting explicit SLURM jobs by their numeric `slurm_job_id`\n(the value the UI's `SlurmJob` exposes). These are resolved to `slurm_jobs.id` UUIDs\nat policy-creation time and stored in `policy.resource_id`.","properties":{"cluster_id":{"type":"string"},"job_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"PipelineTrigger":{"description":"Trigger defines WHEN a policy activates","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/HeartbeatTriggerConfig"},"type":{"enum":["heartbeat"],"type":"string"}},"required":["config","type"],"type":"object"}]},"HeartbeatTriggerConfig":{"properties":{"interval_seconds":{"format":"int32","minimum":0,"type":"integer"},"max_checkpoints":{"description":"Cap on successful checkpoints before auto-disable. Absent = run forever;\nwhen present must be `> 0` (rejected with 400 at creation, not stored).\n`i32` (not u32) bounds an oversized value at deserialization; matches cedana-ui.","format":"int32","type":["integer","null"]}},"required":["interval_seconds"],"type":"object"}}}}
```

## The PaginatedPodResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PaginatedPodResponse":{"properties":{"available_filters":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AvailableFilters"}]},"pods":{"items":{"$ref":"#/components/schemas/PodResponse"},"type":"array"},"total_count":{"format":"int64","type":"integer"}},"required":["pods","total_count"],"type":"object"},"AvailableFilters":{"properties":{"namespaces":{"items":{"type":"string"},"type":"array"},"statuses":{"items":{"type":"string"},"type":"array"}},"required":["statuses","namespaces"],"type":"object"},"PodResponse":{"properties":{"age":{"type":"string"},"id":{"format":"uuid","type":"string"},"monitored_by_policies":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"node":{"type":"string"},"ready":{"type":"string"},"restarts":{"format":"int32","type":"integer"},"start_time":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status","age","ready","node","restarts","monitored_by_policies"],"type":"object"}}}}
```

## The PaginatedPolicyResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PaginatedPolicyResponse":{"properties":{"automatic_policies":{"description":"Auto-restore policies (only included when include_automatic=true)","items":{"$ref":"#/components/schemas/AutoRestorePolicyInfo"},"type":["array","null"]},"policies":{"items":{"$ref":"#/components/schemas/PolicyResponse"},"type":"array"},"total_count":{"format":"int64","type":"integer"}},"required":["policies","total_count"],"type":"object"},"AutoRestorePolicyInfo":{"description":"Auto-restore policy info - represents pods/jobs with CEDANA_CHECKPOINT env var","properties":{"checkpoint_id":{"description":"The CEDANA_CHECKPOINT value (checkpoint name)","type":"string"},"cluster_id":{"description":"Cluster ID","type":"string"},"created_at":{"description":"When the resource was created","type":["string","null"]},"id":{"description":"Virtual ID based on the job/pod ID","type":"string"},"name":{"description":"The job or pod name","type":"string"},"namespace":{"description":"Namespace of the resource","type":"string"},"pod_count":{"description":"Number of pods (1 for pods, count for jobs)","format":"int32","type":"integer"},"policy_status":{"description":"Mapped policy status: \"active\", \"completed\", or \"disabled\"","type":"string"},"resource_type":{"description":"Type of resource: \"job\" or \"pod\"","type":"string"},"status":{"description":"Original job/pod status","type":"string"}},"required":["id","name","namespace","cluster_id","resource_type","checkpoint_id","pod_count","status","policy_status"],"type":"object"},"PolicyResponse":{"properties":{"id":{"type":"string"},"input":{"format":"int64","type":"integer"},"job_count":{"format":"int64","type":["integer","null"]},"pod_count":{"format":"int64","type":"integer"},"policy_type":{"type":"string"},"resource":{"type":"string"},"resource_list":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"},"timestamp":{"format":"date-time","type":["string","null"]}},"required":["id","status","policy_type","input","resource","resource_list","pod_count"],"type":"object"}}}}
```

## The PartitionNodeCount object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PartitionNodeCount":{"description":"Node count per state for a partition","properties":{"count":{"format":"double","type":"number"},"partition_name":{"type":"string"},"state":{"type":"string"}},"required":["partition_name","state","count"],"type":"object"}}}}
```

## The PartitionStats object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PartitionStats":{"properties":{"cpu_load":{"format":"double","type":["number","null"]},"free_memory":{"format":"double","type":["number","null"]},"idle_cpus":{"format":"double","type":["number","null"]},"idle_nodes":{"format":"double","type":["number","null"]},"partition_name":{"type":"string"},"real_memory":{"format":"double","type":["number","null"]},"timestamp":{"format":"int64","type":"integer"},"total_cpus":{"format":"double","type":["number","null"]}},"required":["partition_name","timestamp"],"type":"object"}}}}
```

## The PartitionTimeSeries object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PartitionTimeSeries":{"properties":{"cpu_load":{"items":{"$ref":"#/components/schemas/TimeSeriesDataPoint"},"type":"array"},"free_memory":{"items":{"$ref":"#/components/schemas/TimeSeriesDataPoint"},"type":"array"},"partition_name":{"type":"string"}},"required":["partition_name","cpu_load","free_memory"],"type":"object"},"TimeSeriesDataPoint":{"properties":{"timestamp":{"format":"int64","type":"integer"},"value":{"format":"double","type":"number"}},"required":["timestamp","value"],"type":"object"}}}}
```

## The PendingResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PendingResponse":{"properties":{"pending_profile_id":{"type":"string"},"retry_after_ms":{"format":"int64","type":"integer"}},"required":["pending_profile_id","retry_after_ms"],"type":"object"}}}}
```

## The PipelineAction object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PipelineAction":{"description":"Action defines WHAT to do when triggered","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/CheckpointActionConfig"},"type":{"enum":["checkpoint"],"type":"string"}},"required":["config","type"],"type":"object"}]},"CheckpointActionConfig":{"properties":{"kind":{"type":"string"},"runc_root":{"type":["string","null"]}},"required":["kind"],"type":"object"}}}}
```

## The PipelineFilter object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PipelineFilter":{"description":"Filter defines WHAT resources are targeted","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/NamespaceFilterConfig"},"type":{"enum":["namespace"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/PodsFilterConfig"},"type":{"enum":["pods"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/JobsFilterConfig"},"type":{"enum":["jobs"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/SlurmJobsFilterConfig"},"type":{"enum":["slurm_jobs"],"type":"string"}},"required":["config","type"],"type":"object"}]},"NamespaceFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":"string"}},"required":["cluster_id","namespace"],"type":"object"},"PodsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"pod_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"JobsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":["string","null"]},"priority":{"format":"int32","type":["integer","null"]}},"required":["cluster_id"],"type":"object"},"SlurmJobsFilterConfig":{"description":"Filter config for targeting explicit SLURM jobs by their numeric `slurm_job_id`\n(the value the UI's `SlurmJob` exposes). These are resolved to `slurm_jobs.id` UUIDs\nat policy-creation time and stored in `policy.resource_id`.","properties":{"cluster_id":{"type":"string"},"job_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"}}}}
```

## The PipelinePolicyRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PipelinePolicyRequest":{"description":"Request to create a policy using the pipeline format","properties":{"name":{"type":["string","null"]},"pipeline":{"$ref":"#/components/schemas/PolicyPipeline"}},"required":["pipeline"],"type":"object"},"PolicyPipeline":{"description":"Complete policy pipeline definition","properties":{"action":{"$ref":"#/components/schemas/PipelineAction"},"filter":{"$ref":"#/components/schemas/PipelineFilter"},"trigger":{"$ref":"#/components/schemas/PipelineTrigger"}},"required":["trigger","filter","action"],"type":"object"},"PipelineAction":{"description":"Action defines WHAT to do when triggered","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/CheckpointActionConfig"},"type":{"enum":["checkpoint"],"type":"string"}},"required":["config","type"],"type":"object"}]},"CheckpointActionConfig":{"properties":{"kind":{"type":"string"},"runc_root":{"type":["string","null"]}},"required":["kind"],"type":"object"},"PipelineFilter":{"description":"Filter defines WHAT resources are targeted","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/NamespaceFilterConfig"},"type":{"enum":["namespace"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/PodsFilterConfig"},"type":{"enum":["pods"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/JobsFilterConfig"},"type":{"enum":["jobs"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/SlurmJobsFilterConfig"},"type":{"enum":["slurm_jobs"],"type":"string"}},"required":["config","type"],"type":"object"}]},"NamespaceFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":"string"}},"required":["cluster_id","namespace"],"type":"object"},"PodsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"pod_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"JobsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":["string","null"]},"priority":{"format":"int32","type":["integer","null"]}},"required":["cluster_id"],"type":"object"},"SlurmJobsFilterConfig":{"description":"Filter config for targeting explicit SLURM jobs by their numeric `slurm_job_id`\n(the value the UI's `SlurmJob` exposes). These are resolved to `slurm_jobs.id` UUIDs\nat policy-creation time and stored in `policy.resource_id`.","properties":{"cluster_id":{"type":"string"},"job_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"PipelineTrigger":{"description":"Trigger defines WHEN a policy activates","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/HeartbeatTriggerConfig"},"type":{"enum":["heartbeat"],"type":"string"}},"required":["config","type"],"type":"object"}]},"HeartbeatTriggerConfig":{"properties":{"interval_seconds":{"format":"int32","minimum":0,"type":"integer"},"max_checkpoints":{"description":"Cap on successful checkpoints before auto-disable. Absent = run forever;\nwhen present must be `> 0` (rejected with 400 at creation, not stored).\n`i32` (not u32) bounds an oversized value at deserialization; matches cedana-ui.","format":"int32","type":["integer","null"]}},"required":["interval_seconds"],"type":"object"}}}}
```

## The PipelinePolicyResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PipelinePolicyResponse":{"description":"Response for pipeline-based policies","properties":{"id":{"type":"string"},"job_count":{"format":"int32","type":["integer","null"]},"name":{"type":["string","null"]},"pipeline":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PolicyPipeline"}]},"pod_count":{"format":"int32","type":"integer"},"status":{"type":"string"},"timestamp":{"type":["string","null"]}},"required":["id","status","pod_count"],"type":"object"},"PolicyPipeline":{"description":"Complete policy pipeline definition","properties":{"action":{"$ref":"#/components/schemas/PipelineAction"},"filter":{"$ref":"#/components/schemas/PipelineFilter"},"trigger":{"$ref":"#/components/schemas/PipelineTrigger"}},"required":["trigger","filter","action"],"type":"object"},"PipelineAction":{"description":"Action defines WHAT to do when triggered","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/CheckpointActionConfig"},"type":{"enum":["checkpoint"],"type":"string"}},"required":["config","type"],"type":"object"}]},"CheckpointActionConfig":{"properties":{"kind":{"type":"string"},"runc_root":{"type":["string","null"]}},"required":["kind"],"type":"object"},"PipelineFilter":{"description":"Filter defines WHAT resources are targeted","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/NamespaceFilterConfig"},"type":{"enum":["namespace"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/PodsFilterConfig"},"type":{"enum":["pods"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/JobsFilterConfig"},"type":{"enum":["jobs"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/SlurmJobsFilterConfig"},"type":{"enum":["slurm_jobs"],"type":"string"}},"required":["config","type"],"type":"object"}]},"NamespaceFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":"string"}},"required":["cluster_id","namespace"],"type":"object"},"PodsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"pod_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"JobsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":["string","null"]},"priority":{"format":"int32","type":["integer","null"]}},"required":["cluster_id"],"type":"object"},"SlurmJobsFilterConfig":{"description":"Filter config for targeting explicit SLURM jobs by their numeric `slurm_job_id`\n(the value the UI's `SlurmJob` exposes). These are resolved to `slurm_jobs.id` UUIDs\nat policy-creation time and stored in `policy.resource_id`.","properties":{"cluster_id":{"type":"string"},"job_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"PipelineTrigger":{"description":"Trigger defines WHEN a policy activates","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/HeartbeatTriggerConfig"},"type":{"enum":["heartbeat"],"type":"string"}},"required":["config","type"],"type":"object"}]},"HeartbeatTriggerConfig":{"properties":{"interval_seconds":{"format":"int32","minimum":0,"type":"integer"},"max_checkpoints":{"description":"Cap on successful checkpoints before auto-disable. Absent = run forever;\nwhen present must be `> 0` (rejected with 400 at creation, not stored).\n`i32` (not u32) bounds an oversized value at deserialization; matches cedana-ui.","format":"int32","type":["integer","null"]}},"required":["interval_seconds"],"type":"object"}}}}
```

## The PipelineTrigger object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PipelineTrigger":{"description":"Trigger defines WHEN a policy activates","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/HeartbeatTriggerConfig"},"type":{"enum":["heartbeat"],"type":"string"}},"required":["config","type"],"type":"object"}]},"HeartbeatTriggerConfig":{"properties":{"interval_seconds":{"format":"int32","minimum":0,"type":"integer"},"max_checkpoints":{"description":"Cap on successful checkpoints before auto-disable. Absent = run forever;\nwhen present must be `> 0` (rejected with 400 at creation, not stored).\n`i32` (not u32) bounds an oversized value at deserialization; matches cedana-ui.","format":"int32","type":["integer","null"]}},"required":["interval_seconds"],"type":"object"}}}}
```

## The Plugin object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Plugin":{"properties":{"binaries":{"items":{"$ref":"#/components/schemas/PluginBinary"},"type":["array","null"]},"latest_version":{"type":"string"},"libraries":{"items":{"$ref":"#/components/schemas/PluginBinary"},"type":["array","null"]},"name":{"type":"string"},"published_at":{"format":"date-time","type":"string"},"size":{"format":"int64","type":"integer"},"status":{"$ref":"#/components/schemas/Status"},"type":{"$ref":"#/components/schemas/PluginType"},"version":{"type":"string"}},"required":["name","type","status","version","published_at"],"type":"object"},"PluginBinary":{"properties":{"checksum":{"type":["string","null"]},"install_dir":{"type":"string"},"name":{"type":"string"}},"required":["name","install_dir"],"type":"object"},"Status":{"enum":[0,1,2,3],"type":"integer"},"PluginType":{"enum":[0,1,2,3,4],"type":"integer"}}}}
```

## The PluginBinary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PluginBinary":{"properties":{"checksum":{"type":["string","null"]},"install_dir":{"type":"string"},"name":{"type":"string"}},"required":["name","install_dir"],"type":"object"}}}}
```

## The PluginType object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PluginType":{"enum":[0,1,2,3,4],"type":"integer"}}}}
```

## The PluginUploadPayload object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PluginUploadPayload":{"properties":{"arch":{"type":["string","null"]},"build":{"type":["string","null"]},"checksum":{"type":["string","null"]},"repository":{"type":"string"},"version":{"type":["string","null"]}},"type":"object"}}}}
```

## The PodCheckpointCpu object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PodCheckpointCpu":{"description":"Per-pod checkpoint resource data for efficiency calculations","properties":{"checkpoint_count":{"description":"Total number of checkpoints for this pod","format":"int64","type":"integer"},"checkpoint_timestamp":{"description":"Timestamp of the last checkpoint","type":"string"},"cpu_at_checkpoint":{"description":"CPU usage (seconds) at the time of the last checkpoint\nThis represents the work preserved by the checkpoint","format":"double","type":"number"},"gpu_memory_used_mib":{"description":"GPU memory used (MiB) at checkpoint time, if GPU was used","format":"double","type":["number","null"]},"gpu_model":{"description":"GPU model name (e.g., \"NVIDIA H100 80GB HBM3\"), if GPU was used","type":["string","null"]},"gpu_utilization_at_checkpoint":{"description":"GPU utilization at checkpoint time (percentage 0-100), if GPU was used\nDerived from DCGM_FI_DEV_GPU_UTIL metric","format":"double","type":["number","null"]},"namespace":{"description":"Namespace","type":"string"},"pod_name":{"description":"Pod name","type":"string"}},"required":["pod_name","namespace","cpu_at_checkpoint","checkpoint_timestamp","checkpoint_count"],"type":"object"}}}}
```

## The PodCheckpointSavings object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PodCheckpointSavings":{"description":"Per-pod checkpoint savings data","properties":{"avg_interval_seconds":{"description":"Average interval between checkpoints (seconds)","format":"double","type":["number","null"]},"capacity_type":{"description":"Node capacity type: \"spot\" or \"on-demand\"","type":["string","null"]},"checkpoint_count":{"format":"int64","type":["integer","null"]},"cluster_id":{"type":["string","null"]},"estimated_savings":{"description":"Estimated savings (if spot instance)","format":"double","type":["number","null"]},"first_checkpoint":{"format":"date-time","type":["string","null"]},"gpu":{"type":["string","null"]},"heartbeat_checkpoints":{"description":"Number of automatic heartbeat checkpoints","format":"int64","type":["integer","null"]},"instance_type":{"description":"Node instance type (e.g., \"m5.xlarge\", \"n1-standard-4\")","type":["string","null"]},"last_checkpoint":{"format":"date-time","type":["string","null"]},"manual_checkpoints":{"description":"Number of manual checkpoints","format":"int64","type":["integer","null"]},"max_recovery_point_seconds":{"description":"Maximum interval - worst case data loss on failure (seconds)","format":"double","type":["number","null"]},"min_interval_seconds":{"description":"Minimum interval between checkpoints (seconds)","format":"double","type":["number","null"]},"namespace":{"type":["string","null"]},"node_name":{"description":"Node name (for linking to node details page)","type":["string","null"]},"node_region":{"description":"Node region","type":["string","null"]},"ondemand_price_per_hour":{"description":"On-demand price per hour (from user config)","format":"double","type":["number","null"]},"platform":{"type":["string","null"]},"pod_name":{"type":["string","null"]},"protection_efficiency_ratio":{"description":"Ratio of time protected to checkpoint overhead (higher = more efficient)","format":"double","type":["number","null"]},"refreshed_at":{"format":"date-time","type":["string","null"]},"spot_price_per_hour":{"description":"Spot price per hour (from user config)","format":"double","type":["number","null"]},"time_protected_seconds":{"description":"Total time (seconds) between first and last checkpoint - time \"protected\"","format":"double","type":["number","null"]},"total_checkpoint_duration_ns":{"description":"Total time spent checkpointing (nanoseconds)","format":"int64","type":["integer","null"]},"total_checkpoint_size_bytes":{"description":"Total data checkpointed (bytes)","format":"int64","type":["integer","null"]}},"type":"object"}}}}
```

## The PodResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PodResponse":{"properties":{"age":{"type":"string"},"id":{"format":"uuid","type":"string"},"monitored_by_policies":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"node":{"type":"string"},"ready":{"type":"string"},"restarts":{"format":"int32","type":"integer"},"start_time":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status","age","ready","node","restarts","monitored_by_policies"],"type":"object"}}}}
```

## The PodStartupTime object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PodStartupTime":{"description":"Startup time for a single worker pod.","properties":{"cedana_restore":{"description":"Whether this pod was started via a Cedana restore (true) or cold-started (false)","type":"boolean"},"pod_name":{"description":"Pod name","type":"string"},"start_time_ms":{"description":"Time from PodScheduled → Ready in milliseconds","format":"int64","type":"integer"}},"required":["pod_name","start_time_ms","cedana_restore"],"type":"object"}}}}
```

## The PodUtilization object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PodUtilization":{"description":"Pod utilization metrics grouped by pod","properties":{"cpu_usage_seconds":{"format":"double","type":"number"},"memory_bytes":{"format":"double","type":"number"},"namespace":{"type":["string","null"]},"node_name":{"type":"string"},"owner_kind":{"description":"Owner kind from kube-state-metrics (e.g., \"Job\", \"ReplicaSet\", \"DaemonSet\", \"StatefulSet\")","type":["string","null"]},"owner_name":{"description":"Owner name from kube-state-metrics (e.g., \"my-job\", \"my-deployment-abc123\")","type":["string","null"]},"pod_name":{"type":["string","null"]},"pod_uid":{"type":"string"},"timestamp":{"type":"string"}},"required":["pod_uid","node_name","cpu_usage_seconds","memory_bytes","timestamp"],"type":"object"}}}}
```

## The PodsFilterConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PodsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"pod_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"}}}}
```

## The PolicyActivityResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PolicyActivityResponse":{"properties":{"failed_checkpoints":{"format":"int64","type":"integer"},"last_checkpoint_at":{"type":["string","null"]},"policy_id":{"type":"string"},"recent_checkpoints":{"items":{"$ref":"#/components/schemas/PolicyCheckpointInfo"},"type":"array"},"successful_checkpoints":{"format":"int64","type":"integer"},"total_checkpoints":{"format":"int64","type":"integer"}},"required":["policy_id","total_checkpoints","successful_checkpoints","failed_checkpoints","recent_checkpoints"],"type":"object"},"PolicyCheckpointInfo":{"properties":{"action_id":{"type":"string"},"checkpoint_id":{"type":"string"},"completed_at":{"type":["string","null"]},"duration_ms":{"format":"int64","type":["integer","null"]},"namespace":{"type":"string"},"pod_name":{"type":"string"},"size_bytes":{"format":"int64","type":["integer","null"]},"status":{"type":"string"}},"required":["checkpoint_id","action_id","pod_name","namespace","status"],"type":"object"}}}}
```

## The PolicyCheckpointInfo object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PolicyCheckpointInfo":{"properties":{"action_id":{"type":"string"},"checkpoint_id":{"type":"string"},"completed_at":{"type":["string","null"]},"duration_ms":{"format":"int64","type":["integer","null"]},"namespace":{"type":"string"},"pod_name":{"type":"string"},"size_bytes":{"format":"int64","type":["integer","null"]},"status":{"type":"string"}},"required":["checkpoint_id","action_id","pod_name","namespace","status"],"type":"object"}}}}
```

## The PolicyDeleteRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PolicyDeleteRequest":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}}}
```

## The PolicyJobInfo object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PolicyJobInfo":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"pod_count":{"format":"int64","type":"integer"},"priority":{"format":"int32","type":["integer","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status","pod_count"],"type":"object"}}}}
```

## The PolicyJobsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PolicyJobsResponse":{"properties":{"affected_jobs":{"items":{"$ref":"#/components/schemas/PolicyJobInfo"},"type":"array"},"count":{"format":"int64","type":"integer"},"policy_id":{"type":"string"}},"required":["policy_id","affected_jobs","count"],"type":"object"},"PolicyJobInfo":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"pod_count":{"format":"int64","type":"integer"},"priority":{"format":"int32","type":["integer","null"]},"status":{"type":"string"}},"required":["id","name","namespace","status","pod_count"],"type":"object"}}}}
```

## The PolicyPipeline object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PolicyPipeline":{"description":"Complete policy pipeline definition","properties":{"action":{"$ref":"#/components/schemas/PipelineAction"},"filter":{"$ref":"#/components/schemas/PipelineFilter"},"trigger":{"$ref":"#/components/schemas/PipelineTrigger"}},"required":["trigger","filter","action"],"type":"object"},"PipelineAction":{"description":"Action defines WHAT to do when triggered","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/CheckpointActionConfig"},"type":{"enum":["checkpoint"],"type":"string"}},"required":["config","type"],"type":"object"}]},"CheckpointActionConfig":{"properties":{"kind":{"type":"string"},"runc_root":{"type":["string","null"]}},"required":["kind"],"type":"object"},"PipelineFilter":{"description":"Filter defines WHAT resources are targeted","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/NamespaceFilterConfig"},"type":{"enum":["namespace"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/PodsFilterConfig"},"type":{"enum":["pods"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/JobsFilterConfig"},"type":{"enum":["jobs"],"type":"string"}},"required":["config","type"],"type":"object"},{"properties":{"config":{"$ref":"#/components/schemas/SlurmJobsFilterConfig"},"type":{"enum":["slurm_jobs"],"type":"string"}},"required":["config","type"],"type":"object"}]},"NamespaceFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":"string"}},"required":["cluster_id","namespace"],"type":"object"},"PodsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"pod_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"JobsFilterConfig":{"properties":{"cluster_id":{"type":"string"},"namespace":{"type":["string","null"]},"priority":{"format":"int32","type":["integer","null"]}},"required":["cluster_id"],"type":"object"},"SlurmJobsFilterConfig":{"description":"Filter config for targeting explicit SLURM jobs by their numeric `slurm_job_id`\n(the value the UI's `SlurmJob` exposes). These are resolved to `slurm_jobs.id` UUIDs\nat policy-creation time and stored in `policy.resource_id`.","properties":{"cluster_id":{"type":"string"},"job_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"},"PipelineTrigger":{"description":"Trigger defines WHEN a policy activates","oneOf":[{"properties":{"config":{"$ref":"#/components/schemas/HeartbeatTriggerConfig"},"type":{"enum":["heartbeat"],"type":"string"}},"required":["config","type"],"type":"object"}]},"HeartbeatTriggerConfig":{"properties":{"interval_seconds":{"format":"int32","minimum":0,"type":"integer"},"max_checkpoints":{"description":"Cap on successful checkpoints before auto-disable. Absent = run forever;\nwhen present must be `> 0` (rejected with 400 at creation, not stored).\n`i32` (not u32) bounds an oversized value at deserialization; matches cedana-ui.","format":"int32","type":["integer","null"]}},"required":["interval_seconds"],"type":"object"}}}}
```

## The PolicyPodResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PolicyPodResponse":{"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"status":{"type":"string"}},"required":["id","name","namespace","status"],"type":"object"}}}}
```

## The PolicyResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PolicyResponse":{"properties":{"id":{"type":"string"},"input":{"format":"int64","type":"integer"},"job_count":{"format":"int64","type":["integer","null"]},"pod_count":{"format":"int64","type":"integer"},"policy_type":{"type":"string"},"resource":{"type":"string"},"resource_list":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"},"timestamp":{"format":"date-time","type":["string","null"]}},"required":["id","status","policy_type","input","resource","resource_list","pod_count"],"type":"object"}}}}
```

## The PortMapping object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PortMapping":{"properties":{"container_port":{"format":"int32","type":"integer"},"host_port":{"format":"int32","type":"integer"}},"required":["host_port","container_port"],"type":"object"}}}}
```

## The ProcessState object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ProcessState":{"properties":{"Cmdline":{"type":"string"},"GIDs":{"items":{"format":"int32","minimum":0,"type":"integer"},"type":"array"},"GPUEnabled":{"type":"boolean"},"Groups":{"items":{"format":"int32","minimum":0,"type":"integer"},"type":"array"},"Host":{"$ref":"#/components/schemas/Host"},"IsRunning":{"type":"boolean"},"PID":{"format":"int32","minimum":0,"type":"integer"},"StartTime":{"format":"int64","minimum":0,"type":"integer"},"Status":{"type":"string"},"UIDs":{"items":{"format":"int32","minimum":0,"type":"integer"},"type":"array"},"WorkingDir":{"type":"string"}},"required":["PID","Cmdline","StartTime","WorkingDir","Status","IsRunning","Host"],"type":"object"},"Host":{"properties":{"CPU":{"$ref":"#/components/schemas/HostCpu"},"Hostname":{"type":"string"},"ID":{"type":"string"},"KernelArch":{"type":"string"},"KernelVersion":{"type":"string"},"MAC":{"type":"string"},"Memory":{"$ref":"#/components/schemas/HostMemory"},"OS":{"type":"string"},"Platform":{"type":"string"}},"type":"object"},"HostCpu":{"properties":{"Count":{"format":"int32","type":"integer"},"Family":{"type":"string"},"PhysicalID":{"type":"string"},"VendorID":{"type":"string"}},"type":"object"},"HostMemory":{"properties":{"Total":{"format":"int64","minimum":0,"type":"integer"}},"type":"object"}}}}
```

## The ProfileHostingPlan object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ProfileHostingPlan":{"properties":{"checkpoint_owner":{"type":"string"},"checkpoint_request":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CheckpointRequestView","description":"An outstanding on-demand checkpoint, or null. Carried on the hosting plan the\ncontroller already reads each pass, so it needs no extra poll."}]},"compatibility_key":{"type":"string"},"cpu_fixture":{"type":"boolean"},"dynamo_template":{},"hosting_mode":{"type":"string"},"profile_id":{"type":"string"},"profile_revision":{"type":"string"}},"required":["profile_id","hosting_mode","profile_revision","compatibility_key","checkpoint_owner","cpu_fixture"],"type":"object"},"CheckpointRequestView":{"description":"An on-demand checkpoint request and how far it has got.","properties":{"artifact_id":{"description":"The artifact the checkpoint produced, once it succeeded.","type":["string","null"]},"completed_at":{"format":"date-time","type":["string","null"]},"error":{"description":"Why it failed, in the controller's words.","type":["string","null"]},"kind":{"description":"checkpoint or restart. One row per profile, so asking twice returns the open one.","type":"string"},"profile_id":{"type":"string"},"reason":{"type":["string","null"]},"replace_existing":{"type":"boolean"},"request_id":{"description":"Identifies this attempt. A caller polling with the id it was given\ncannot be shown a later request's outcome as though it were its own.","format":"uuid","type":"string"},"requested_at":{"format":"date-time","type":"string"},"started_at":{"format":"date-time","type":["string","null"]},"status":{"description":"pending → running → succeeded | failed","type":"string"}},"required":["profile_id","kind","request_id","status","replace_existing","requested_at"],"type":"object"}}}}
```

## The ProfileStartupComparison object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ProfileStartupComparison":{"description":"Cold starts against restores, for one profile.","properties":{"cold":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/StartLatency"}]},"logical_model":{"type":"string"},"profile_id":{"type":"string"},"restored":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/StartLatency"}]},"saved_ms":{"description":"Milliseconds a restore saves at the median.","format":"int64","type":["integer","null"]},"speedup":{"description":"Cold median divided by restore median. Above 1 means restoring is faster.","format":"double","type":["number","null"]},"starts":{"description":"Every start behind the summaries, newest first, so the numbers can be\nchecked rather than taken on faith.","items":{"$ref":"#/components/schemas/WorkerStart"},"type":"array"}},"required":["profile_id","logical_model","starts"],"type":"object"},"StartLatency":{"properties":{"max_ms":{"format":"int64","type":"integer"},"median_ms":{"format":"int64","type":"integer"},"min_ms":{"format":"int64","type":"integer"},"samples":{"minimum":0,"type":"integer"}},"required":["samples","min_ms","median_ms","max_ms"],"type":"object"},"WorkerStart":{"description":"One worker start, and whether it restored.","properties":{"checkpoint_path":{"type":["string","null"]},"pod_name":{"type":"string"},"ready_at":{"format":"date-time","type":["string","null"]},"restored":{"description":"True when this worker was given a checkpoint to restore from.","type":"boolean"},"start_time_ms":{"description":"PodScheduled to Ready, in milliseconds.","format":"int64","type":"integer"}},"required":["pod_name","start_time_ms","restored"],"type":"object"}}}}
```

## The PromoteArtifact object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"PromoteArtifact":{"properties":{"deadline_ms":{"format":"int64","type":["integer","null"]},"tier":{"type":"string"}},"required":["tier"],"type":"object"}}}}
```

## The RegisterArtifact object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RegisterArtifact":{"properties":{"artifact_id":{"type":"string"},"checkpoint_mode":{"type":"string"},"checksum":{"type":["string","null"]},"compatibility_key":{"type":"string"},"logical_bytes":{"format":"int64","type":["integer","null"]},"metadata":{},"parent_artifact_id":{"type":["string","null"]},"physical_bytes":{"format":"int64","type":["integer","null"]},"profile_id":{"type":"string"},"reused_bytes":{"format":"int64","type":["integer","null"]},"source":{"type":["string","null"]},"storage_tier":{"type":["string","null"]},"uri":{"type":"string"},"written_bytes":{"format":"int64","type":["integer","null"]}},"required":["artifact_id","profile_id","compatibility_key","checkpoint_mode","uri"],"type":"object"}}}}
```

## The RegistryCredentials object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RegistryCredentials":{"properties":{"password":{"type":"string"},"username":{"type":"string"}},"required":["username","password"],"type":"object"}}}}
```

## The ReportWorkerEndpoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ReportWorkerEndpoint":{"description":"Where a profile's worker publishes engine metrics (controller only).","properties":{"metrics_url":{"type":"string"},"pod_name":{"type":["string","null"]}},"required":["metrics_url"],"type":"object"}}}}
```

## The RequestCheckpoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RequestCheckpoint":{"description":"What a caller asks for when it wants a checkpoint taken now.","properties":{"reason":{"description":"What this checkpoint is for, carried onto the artifact so a tier holding\nseveral has something to tell them apart by.","type":["string","null"]},"replace_existing":{"description":"Whether the previous checkpoint may be deleted to make room. On by default,\nbecause the tier holds barely more than one dump.","type":"boolean"}},"type":"object"}}}}
```

## The ResolveRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ResolveRequest":{"properties":{"active_streams_by_profile":{"additionalProperties":{"format":"int64","type":"integer"},"propertyNames":{"type":"string"},"type":"object"},"authorization_id":{"format":"uuid","type":"string"},"logical_model":{"type":"string"},"preferred_profile_id":{"type":["string","null"]},"queued_requests":{"format":"int64","type":"integer"},"request_id":{"type":"string"}},"required":["authorization_id","request_id","logical_model"],"type":"object"}}}}
```

## The ResolveResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ResolveResponse":{"properties":{"activation_path":{"type":"string"},"decision_source":{"type":"string"},"fallback_used":{"type":"boolean"},"profile_id":{"type":"string"},"route_generation":{"format":"int64","type":"integer"},"target_name":{"type":"string"},"upstream_model":{"type":"string"}},"required":["profile_id","target_name","upstream_model","route_generation","decision_source","fallback_used","activation_path"],"type":"object"}}}}
```

## The RestoreEventPayload object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RestoreEventPayload":{"additionalProperties":{},"properties":{"action_id":{"type":["string","null"]},"action_ids":{"items":{"type":"string"},"type":["array","null"]},"action_scope":{"type":["string","null"]},"checkpoint_action_id":{"type":["string","null"]},"checkpoint_id":{"type":["string","null"]},"cluster_id":{"type":["string","null"]},"completed_at":{"format":"date-time","type":["string","null"]},"error_message":{"type":["string","null"]},"kind":{"type":["string","null"]},"metadata":{},"path_id":{"type":["string","null"]},"profile_available_on_error":{"type":["boolean","null"]},"profile_object_path":{"type":["string","null"]},"reason":{"type":["string","null"]},"request_metadata":{},"restore_path":{"type":["string","null"]},"restore_uuid":{"type":"string"},"runtime_metadata":{},"started_at":{"format":"date-time","type":["string","null"]},"status":{"type":["string","null"]},"storage_provider":{"type":["string","null"]},"workload_type":{"type":["string","null"]}},"required":["restore_uuid"],"type":"object"}}}}
```

## The RestoreEventResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RestoreEventResponse":{"properties":{"restore_uuid":{"format":"uuid","type":"string"},"status":{"type":"string"}},"required":["restore_uuid","status"],"type":"object"}}}}
```

## The RestoreOverrides object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RestoreOverrides":{"properties":{"criu_opts":{"type":["string","null"]},"pod_name":{"type":["string","null"]}},"type":"object"}}}}
```

## The RestorePod object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RestorePod":{"properties":{"action_id":{"type":"string"},"cluster_id":{"type":"string"},"overrides":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RestoreOverrides"}]},"reason":{"$ref":"#/components/schemas/RestoreReason"}},"required":["action_id","reason"],"type":"object"},"RestoreOverrides":{"properties":{"criu_opts":{"type":["string","null"]},"pod_name":{"type":["string","null"]}},"type":"object"},"RestoreReason":{"enum":["nodeTermination","nodeUnschedulable","manual"],"type":"string"}}}}
```

## The RestoreProfileUploadResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RestoreProfileUploadResponse":{"properties":{"profile_object_path":{"type":["string","null"]},"restore_uuid":{"format":"uuid","type":"string"}},"required":["restore_uuid"],"type":"object"}}}}
```

## The RestoreReason object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RestoreReason":{"enum":["nodeTermination","nodeUnschedulable","manual"],"type":"string"}}}}
```

## The RestoreSlurmJob object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RestoreSlurmJob":{"properties":{"action_id":{"type":"string"},"cluster_id":{"type":["string","null"]},"reason":{"$ref":"#/components/schemas/SlurmRestoreReason"}},"required":["action_id"],"type":"object"},"SlurmRestoreReason":{"enum":["nodeTermination","nodeUnschedulable","manual"],"type":"string"}}}}
```

## The RetentionPolicy object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RetentionPolicy":{"properties":{"enabled":{"type":"boolean"},"max_age_days":{"format":"int64","type":["integer","null"]},"max_count":{"format":"int64","type":["integer","null"]},"min_tier":{"type":["string","null"]},"name":{"type":"string"},"policy_id":{"type":"string"},"profile_id":{"type":["string","null"]}},"required":["policy_id","name","enabled"],"type":"object"}}}}
```

## The RetentionPolicyUpsert object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RetentionPolicyUpsert":{"properties":{"enabled":{"type":"boolean"},"max_age_days":{"format":"int64","type":["integer","null"]},"max_count":{"format":"int64","type":["integer","null"]},"min_tier":{"type":["string","null"]},"name":{"type":"string"},"policy_id":{"type":["string","null"]},"profile_id":{"type":["string","null"]}},"required":["name"],"type":"object"}}}}
```

## The RoutePolicy object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RoutePolicy":{"properties":{"classifier_profile_id":{"type":["string","null"]},"classifier_prompt":{"type":["string","null"]},"classifier_response_schema":{"type":["string","null"]},"generation":{"format":"int64","type":"integer"},"logical_model":{"type":"string"},"mode":{"type":"string"},"queue_timeout_ms":{"format":"int64","type":"integer"},"targets":{"items":{"$ref":"#/components/schemas/RouteTarget"},"type":"array"}},"required":["logical_model","mode","queue_timeout_ms","generation","targets"],"type":"object"},"RouteTarget":{"properties":{"priority":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"tier":{"type":"string"}},"required":["profile_id","tier","priority"],"type":"object"}}}}
```

## The RouteStatusView object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RouteStatusView":{"properties":{"endpoint":{"type":["string","null"]},"fallback_profile_id":{"type":["string","null"]},"fallback_ready":{"type":"boolean"},"logical_model":{"type":"string"},"pending_activation":{"description":"A Pending intent asks for this profile to be Active on at least one replica, so\nsomething is trying to bring it up.","type":"boolean"},"pending_intent":{"description":"Any capacity intent for the primary is still Pending, either direction. Rarely the\nfield you want; prefer pending_activation or pending_release.","type":"boolean"},"pending_release":{"description":"A Pending intent asks for this profile to stop holding an accelerator\n(Suspended, or Active at zero replicas).","type":"boolean"},"primary_phase":{"type":["string","null"]},"primary_profile_id":{"type":"string"},"primary_ready":{"type":"boolean"},"queue_timeout_ms":{"format":"int64","type":"integer"},"restore_checkpoint_path":{"description":"The checkpoint the live worker was told to restore from, when it was.","type":["string","null"]},"start_kind":{"description":"How the worker now on this profile started, read from the pod spec: restore when it\nwas given a checkpoint, cold otherwise.","type":["string","null"]},"state":{"type":"string"}},"required":["logical_model","primary_profile_id","primary_ready","fallback_ready","pending_intent","pending_activation","pending_release","queue_timeout_ms","state"],"type":"object"}}}}
```

## The RouteTarget object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RouteTarget":{"properties":{"priority":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"tier":{"type":"string"}},"required":["profile_id","tier","priority"],"type":"object"}}}}
```

## The RouterConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RouterConfig":{"properties":{"generation":{"format":"int64","type":"integer"},"routes":{"items":{"$ref":"#/components/schemas/RouterRouteConfig"},"type":"array"},"schema_version":{"format":"int32","type":"integer"}},"required":["schema_version","generation","routes"],"type":"object"},"RouterRouteConfig":{"properties":{"classifier_profile_id":{"type":["string","null"]},"classifier_prompt":{"type":["string","null"]},"classifier_response_schema":{"type":["string","null"]},"generation":{"format":"int64","type":"integer"},"logical_model":{"type":"string"},"mode":{"type":"string"},"queue_timeout_ms":{"format":"int64","type":"integer"},"targets":{"items":{"$ref":"#/components/schemas/RouterTargetConfig"},"type":"array"}},"required":["logical_model","mode","queue_timeout_ms","generation","targets"],"type":"object"},"RouterTargetConfig":{"properties":{"current_replicas":{"format":"int32","type":"integer"},"draining":{"type":"boolean"},"max_queue_depth":{"format":"int32","type":"integer"},"max_replicas":{"format":"int32","type":"integer"},"min_replicas":{"format":"int32","type":"integer"},"node_hourly_usd":{"format":"double","type":"number"},"priority":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"ready":{"type":"boolean"},"service_url":{"description":"Stable internal service URL; never contains an activation/generation.","type":"string"},"target_concurrency":{"format":"int32","type":"integer"},"tier":{"type":"string"},"upstream_model":{"type":"string"}},"required":["profile_id","tier","priority","service_url","upstream_model","ready","draining","min_replicas","max_replicas","current_replicas","target_concurrency","max_queue_depth","node_hourly_usd"],"type":"object"}}}}
```

## The RouterRouteConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RouterRouteConfig":{"properties":{"classifier_profile_id":{"type":["string","null"]},"classifier_prompt":{"type":["string","null"]},"classifier_response_schema":{"type":["string","null"]},"generation":{"format":"int64","type":"integer"},"logical_model":{"type":"string"},"mode":{"type":"string"},"queue_timeout_ms":{"format":"int64","type":"integer"},"targets":{"items":{"$ref":"#/components/schemas/RouterTargetConfig"},"type":"array"}},"required":["logical_model","mode","queue_timeout_ms","generation","targets"],"type":"object"},"RouterTargetConfig":{"properties":{"current_replicas":{"format":"int32","type":"integer"},"draining":{"type":"boolean"},"max_queue_depth":{"format":"int32","type":"integer"},"max_replicas":{"format":"int32","type":"integer"},"min_replicas":{"format":"int32","type":"integer"},"node_hourly_usd":{"format":"double","type":"number"},"priority":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"ready":{"type":"boolean"},"service_url":{"description":"Stable internal service URL; never contains an activation/generation.","type":"string"},"target_concurrency":{"format":"int32","type":"integer"},"tier":{"type":"string"},"upstream_model":{"type":"string"}},"required":["profile_id","tier","priority","service_url","upstream_model","ready","draining","min_replicas","max_replicas","current_replicas","target_concurrency","max_queue_depth","node_hourly_usd"],"type":"object"}}}}
```

## The RouterTargetConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"RouterTargetConfig":{"properties":{"current_replicas":{"format":"int32","type":"integer"},"draining":{"type":"boolean"},"max_queue_depth":{"format":"int32","type":"integer"},"max_replicas":{"format":"int32","type":"integer"},"min_replicas":{"format":"int32","type":"integer"},"node_hourly_usd":{"format":"double","type":"number"},"priority":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"ready":{"type":"boolean"},"service_url":{"description":"Stable internal service URL; never contains an activation/generation.","type":"string"},"target_concurrency":{"format":"int32","type":"integer"},"tier":{"type":"string"},"upstream_model":{"type":"string"}},"required":["profile_id","tier","priority","service_url","upstream_model","ready","draining","min_replicas","max_replicas","current_replicas","target_concurrency","max_queue_depth","node_hourly_usd"],"type":"object"}}}}
```

## The ScriptConfiguration object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ScriptConfiguration":{"properties":{"base64_script":{"type":"string"}},"required":["base64_script"],"type":"object"}}}}
```

## The ServingAnalytics object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"ServingAnalytics":{"properties":{"average_ttft_ms":{"format":"double","type":["number","null"]},"completion_tokens":{"format":"int64","type":"integer"},"deadline_misses":{"format":"int64","type":"integer"},"fallbacks":{"format":"int64","type":"integer"},"prompt_tokens":{"format":"int64","type":"integer"},"requests":{"format":"int64","type":"integer"},"tokens_per_second":{"format":"double","type":["number","null"]}},"required":["requests","fallbacks","deadline_misses","prompt_tokens","completion_tokens"],"type":"object"}}}}
```

## The SetProfileState object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SetProfileState":{"properties":{"deadline_ms":{"format":"int64","type":["integer","null"]},"desired_replicas":{"format":"int32","type":["integer","null"]},"desired_state":{"type":"string"}},"required":["desired_state"],"type":"object"}}}}
```

## The SimulateRoute object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SimulateRoute":{"properties":{"cold_share":{"format":"double","type":"number"},"deadline_ms":{"format":"int64","type":"integer"},"logical_model":{"type":"string"},"requests_per_hour":{"format":"double","type":"number"},"restore_share":{"format":"double","type":"number"}},"required":["logical_model","requests_per_hour","cold_share","restore_share","deadline_ms"],"type":"object"}}}}
```

## The SimulationResult object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SimulationResult":{"properties":{"cold_share":{"format":"double","type":"number"},"evidence":{"type":"string"},"logical_model":{"type":"string"},"projected_cold_p50_ms":{"format":"double","type":["number","null"]},"projected_deadline_miss_rate":{"format":"double","type":"number"},"projected_fallback_rate":{"format":"double","type":"number"},"projected_p50_ms":{"format":"double","type":"number"},"projected_restore_p50_ms":{"format":"double","type":["number","null"]},"requests_per_hour":{"format":"double","type":"number"},"restore_share":{"format":"double","type":"number"}},"required":["logical_model","requests_per_hour","cold_share","restore_share","projected_fallback_rate","projected_deadline_miss_rate","projected_p50_ms","evidence"],"type":"object"}}}}
```

## The SlurmCheckpoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmCheckpoint":{"description":"Checkpoint is basic unit for cedana service operation\nit stores all the information regarding the snapshot we can use to save and then restore state","properties":{"checksum":{"type":["string","null"]},"gpu":{"type":"string"},"id":{"format":"uuid","type":"string"},"info":{},"name":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/SlurmCheckpointStatus"}},"required":["id","status","gpu"],"type":"object"},"SlurmCheckpointStatus":{"enum":["initializing","updated_info","possibly_uploaded","ready","deprecated"],"type":"string"}}}}
```

## The SlurmCheckpointInfo object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmCheckpointInfo":{"properties":{"gpu":{"type":"string"},"info":{},"platform":{"type":"string"}},"required":["gpu","platform"],"type":"object"}}}}
```

## The SlurmCheckpointKind object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmCheckpointKind":{"enum":["simple","rootfs","rootfsonly"],"type":"string"}}}}
```

## The SlurmCheckpointReason object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmCheckpointReason":{"enum":["heartbeat","manual","preemption"],"type":"string"}}}}
```

## The SlurmCheckpointStatus object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmCheckpointStatus":{"enum":["initializing","updated_info","possibly_uploaded","ready","deprecated"],"type":"string"}}}}
```

## The SlurmCheckpointSuccessInfo object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmCheckpointSuccessInfo":{"properties":{"restore_path":{"type":["string","null"]}},"type":"object"}}}}
```

## The SlurmCluster object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmCluster":{"properties":{"id":{"format":"uuid","type":"string"},"metadata":{},"name":{"type":"string"},"status":{"type":"string"}},"required":["id","name","status"],"type":"object"}}}}
```

## The SlurmClusterOverview object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmClusterOverview":{"properties":{"cpu_load":{"format":"double","type":["number","null"]},"cpus_idle":{"format":"double","type":["number","null"]},"cpus_total":{"format":"double","type":["number","null"]},"mem_alloc":{"format":"double","type":["number","null"]},"mem_free":{"format":"double","type":["number","null"]},"mem_real":{"format":"double","type":["number","null"]},"timestamp":{"format":"int64","type":"integer"}},"required":["timestamp"],"type":"object"}}}}
```

## The SlurmClusterSync object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmClusterSync":{"description":"SlurmClusterSync is the format sent by cedana-slurm when syncing clusters","properties":{"id":{"type":"string"},"metadata":{},"name":{"type":"string"},"status":{"type":"string"}},"required":["name"],"type":"object"}}}}
```

## The SlurmClusterSyncRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmClusterSyncRequest":{"properties":{"cluster_id":{"format":"uuid","type":"string"},"clusters":{"items":{"$ref":"#/components/schemas/SlurmClusterSync"},"type":"array"}},"required":["cluster_id","clusters"],"type":"object"},"SlurmClusterSync":{"description":"SlurmClusterSync is the format sent by cedana-slurm when syncing clusters","properties":{"id":{"type":"string"},"metadata":{},"name":{"type":"string"},"status":{"type":"string"}},"required":["name"],"type":"object"}}}}
```

## The SlurmEvent object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmEvent":{"properties":{"derived_ec":{"format":"int64","type":["integer","null"]},"exit_code":{"format":"int32","type":["integer","null"]},"failed_node":{"description":"Node that triggered the failure, if any.","type":["string","null"]},"job_id":{"format":"int64","type":"integer"},"kill_requid":{"format":"int64","type":["integer","null"]},"partition":{"type":["string","null"]},"reason":{"description":"Human-readable exit reason from slurmdbd (derived_es).","type":["string","null"]},"status":{"type":"string"},"time_suspended":{"description":"Seconds the job spent suspended (preemption-with-checkpoint signal).","format":"int64","type":["integer","null"]},"timestamp":{"description":"Epoch seconds; falls back to start_time, then submit_time, then 0.","format":"int64","type":"integer"}},"required":["job_id","status","timestamp"],"type":"object"}}}}
```

## The SlurmJob object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmJob":{"description":"SlurmJob represents a SLURM job stored in the database","properties":{"account":{"type":["string","null"]},"cluster_id":{"type":"string"},"derived_ec":{"description":"Numeric derived exit code (slurmdbd derived_ec — uint32, widened to i64)","format":"int64","type":["integer","null"]},"derived_es":{"description":"Human-readable exit reason (e.g. \"Preempted by higher-priority job\")","type":["string","null"]},"end_time":{"description":"Unix epoch seconds; 0 means not yet ended","format":"int64","type":["integer","null"]},"exit_code":{"format":"int64","type":["integer","null"]},"failed_node":{"description":"Node that triggered job failure, if any","type":["string","null"]},"id":{"format":"int64","type":"integer"},"job_id":{"format":"int64","type":"integer"},"kill_requid":{"description":"UID that issued the kill/preempt signal (uid_t / uint32, widened to i64)","format":"int64","type":["integer","null"]},"name":{"type":"string"},"nodes":{"type":"string"},"num_cpus":{"format":"int64","type":["integer","null"]},"num_nodes":{"format":"int64","type":["integer","null"]},"partition":{"type":["string","null"]},"priority":{"format":"int64","type":"integer"},"start_time":{"description":"Unix epoch seconds; 0 means not set","format":"int64","type":"integer"},"state_reason_prev":{"description":"Reason code for prior state transition","format":"int64","type":["integer","null"]},"status":{"type":"string"},"submit_time":{"description":"Unix epoch seconds; 0 means not set","format":"int64","type":"integer"},"time_suspended":{"description":"Seconds the job spent suspended","format":"int64","type":["integer","null"]},"work_dir":{"type":["string","null"]}},"type":"object"}}}}
```

## The SlurmJobSyncRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmJobSyncRequest":{"description":"Sync request containing a batch of jobs","properties":{"cluster_id":{"format":"uuid","type":"string"},"jobs":{"description":"Raw SLURM records are retained because their schema varies by release.","items":{},"type":"array"}},"required":["cluster_id","jobs"],"type":"object"}}}}
```

## The SlurmJobsFilterConfig object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmJobsFilterConfig":{"description":"Filter config for targeting explicit SLURM jobs by their numeric `slurm_job_id`\n(the value the UI's `SlurmJob` exposes). These are resolved to `slurm_jobs.id` UUIDs\nat policy-creation time and stored in `policy.resource_id`.","properties":{"cluster_id":{"type":"string"},"job_ids":{"items":{"type":"string"},"type":"array"}},"required":["cluster_id"],"type":"object"}}}}
```

## The SlurmMaintenanceWindow object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmMaintenanceWindow":{"properties":{"created_at":{"format":"date-time","type":["string","null"]},"end_time":{"format":"date-time","type":["string","null"]},"id":{"type":["string","null"]},"nodes":{"items":{"type":"string"},"type":["array","null"]},"partitions":{"items":{"type":"string"},"type":["array","null"]},"reason":{"type":["string","null"]},"start_time":{"format":"date-time","type":["string","null"]},"status":{"type":["string","null"]}},"type":"object"}}}}
```

## The SlurmMetric object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmMetric":{"properties":{"counter_value":{"format":"double","type":["number","null"]},"gauge_value":{"format":"double","type":["number","null"]},"id":{"format":"int64","minimum":0,"type":"integer"},"kind":{"type":["string","null"]},"name":{"type":"string"},"tags":{},"timestamp":{"format":"int64","type":"integer"}},"required":["id","name","timestamp"],"type":"object"}}}}
```

## The SlurmNode object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmNode":{"properties":{"cpus":{"format":"int32","type":["integer","null"]},"id":{"format":"uuid","type":"string"},"memory":{"format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"status":{"type":["string","null"]}},"type":"object"}}}}
```

## The SlurmNodeSync object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmNodeSync":{"description":"SlurmNodeSync is the format sent by cedana-slurm when syncing nodes","properties":{"cpus":{"format":"int32","type":"integer"},"id":{"type":"string"},"memory":{"format":"int64","type":"integer"},"name":{"type":"string"},"status":{"type":"string"}},"required":["name"],"type":"object"}}}}
```

## The SlurmNodeSyncRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmNodeSyncRequest":{"properties":{"cluster_id":{"format":"uuid","type":"string"},"nodes":{"items":{"$ref":"#/components/schemas/SlurmNodeSync"},"type":"array"}},"required":["cluster_id","nodes"],"type":"object"},"SlurmNodeSync":{"description":"SlurmNodeSync is the format sent by cedana-slurm when syncing nodes","properties":{"cpus":{"format":"int32","type":"integer"},"id":{"type":"string"},"memory":{"format":"int64","type":"integer"},"name":{"type":"string"},"status":{"type":"string"}},"required":["name"],"type":"object"}}}}
```

## The SlurmPartition object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmPartition":{"properties":{"default_time":{"format":"int64","type":"integer"},"id":{"format":"uuid","type":"string"},"is_default":{"type":"boolean"},"max_time":{"format":"int64","type":"integer"},"name":{"type":"string"},"nodes":{"type":"string"},"priority_tier":{"format":"int32","type":"integer"},"state":{"type":"string"},"total_cpus":{"format":"int32","type":"integer"},"total_nodes":{"format":"int32","type":"integer"}},"required":["id","name","state","total_nodes","total_cpus","nodes","max_time","default_time","priority_tier","is_default"],"type":"object"}}}}
```

## The SlurmPartitionSync object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmPartitionSync":{"properties":{"default_time":{"format":"int64","type":"integer"},"is_default":{"type":"boolean"},"max_time":{"format":"int64","type":"integer"},"name":{"type":"string"},"nodes":{"type":"string"},"priority_tier":{"format":"int32","type":"integer"},"state":{"type":"string"},"total_cpus":{"format":"int32","type":"integer"},"total_nodes":{"format":"int32","type":"integer"}},"required":["name"],"type":"object"}}}}
```

## The SlurmPartitionSyncRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmPartitionSyncRequest":{"properties":{"cluster_id":{"format":"uuid","type":"string"},"partitions":{"items":{"$ref":"#/components/schemas/SlurmPartitionSync"},"type":"array"}},"required":["cluster_id","partitions"],"type":"object"},"SlurmPartitionSync":{"properties":{"default_time":{"format":"int64","type":"integer"},"is_default":{"type":"boolean"},"max_time":{"format":"int64","type":"integer"},"name":{"type":"string"},"nodes":{"type":"string"},"priority_tier":{"format":"int32","type":"integer"},"state":{"type":"string"},"total_cpus":{"format":"int32","type":"integer"},"total_nodes":{"format":"int32","type":"integer"}},"required":["name"],"type":"object"}}}}
```

## The SlurmRestoreReason object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmRestoreReason":{"enum":["nodeTermination","nodeUnschedulable","manual"],"type":"string"}}}}
```

## The SlurmStateBreakdown object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"SlurmStateBreakdown":{"properties":{"cpus_by_state":{"items":{"$ref":"#/components/schemas/StateItem"},"type":"array"},"nodes_by_state":{"items":{"$ref":"#/components/schemas/StateItem"},"type":"array"},"timestamp":{"format":"int64","type":"integer"}},"required":["timestamp","cpus_by_state","nodes_by_state"],"type":"object"},"StateItem":{"properties":{"state":{"type":"string"},"value":{"format":"double","type":"number"}},"required":["state","value"],"type":"object"}}}}
```

## The StageSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StageSummary":{"properties":{"count":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"p50_ns":{"format":"double","type":"number"},"p95_ns":{"format":"double","type":"number"},"stage":{"type":"string"},"total_ns":{"format":"int64","minimum":0,"type":"integer"}},"required":["operation","stage","count","p50_ns","p95_ns","total_ns"],"type":"object"}}}}
```

## The StartLatency object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StartLatency":{"properties":{"max_ms":{"format":"int64","type":"integer"},"median_ms":{"format":"int64","type":"integer"},"min_ms":{"format":"int64","type":"integer"},"samples":{"minimum":0,"type":"integer"}},"required":["samples","min_ms","median_ms","max_ms"],"type":"object"}}}}
```

## The StartupAnalytics object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StartupAnalytics":{"properties":{"cold":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LatencyDistribution"}]},"restore":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LatencyDistribution"}]},"saved_p50_ms":{"format":"int64","type":["integer","null"]},"speedup_p50":{"format":"double","type":["number","null"]},"warm":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LatencyDistribution"}]}},"type":"object"},"LatencyDistribution":{"properties":{"count":{"minimum":0,"type":"integer"},"p50_ms":{"format":"int64","type":"integer"},"p95_ms":{"format":"int64","type":"integer"}},"required":["count","p50_ms","p95_ms"],"type":"object"}}}}
```

## The StartupComparison object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StartupComparison":{"description":"Cold-start versus Cedana-restore startup latency for a deployment.","properties":{"cold":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/StartupLatencySummary"}]},"p50_saved_ms":{"description":"Milliseconds saved by restore at p50.","format":"int64","type":["integer","null"]},"p50_speedup":{"description":"Cold p50 divided by restore p50. Values above 1 mean restore is faster.","format":"double","type":["number","null"]},"restore":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/StartupLatencySummary"}]}},"type":"object"},"StartupLatencySummary":{"description":"Startup latency distribution for one boot path.","properties":{"max_ms":{"format":"int64","type":"integer"},"mean_ms":{"format":"int64","type":"integer"},"min_ms":{"format":"int64","type":"integer"},"p50_ms":{"format":"int64","type":"integer"},"p95_ms":{"format":"int64","type":"integer"},"samples":{"minimum":0,"type":"integer"}},"required":["samples","min_ms","mean_ms","p50_ms","p95_ms","max_ms"],"type":"object"}}}}
```

## The StartupLatencySummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StartupLatencySummary":{"description":"Startup latency distribution for one boot path.","properties":{"max_ms":{"format":"int64","type":"integer"},"mean_ms":{"format":"int64","type":"integer"},"min_ms":{"format":"int64","type":"integer"},"p50_ms":{"format":"int64","type":"integer"},"p95_ms":{"format":"int64","type":"integer"},"samples":{"minimum":0,"type":"integer"}},"required":["samples","min_ms","mean_ms","p50_ms","p95_ms","max_ms"],"type":"object"}}}}
```

## The StateItem object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StateItem":{"properties":{"state":{"type":"string"},"value":{"format":"double","type":"number"}},"required":["state","value"],"type":"object"}}}}
```

## The Status object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"Status":{"enum":[0,1,2,3],"type":"integer"}}}}
```

## The StatusResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StatusResponse":{"properties":{"details":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/CheckpointOperationStatus"}},"required":["status"],"type":"object"},"CheckpointOperationStatus":{"enum":["initialized","processing","checkpoint_created","ready","error","not_found"],"type":"string"}}}}
```

## The StatusesResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StatusesResponse":{"properties":{"statuses":{"items":{"type":"string"},"type":"array"}},"required":["statuses"],"type":"object"}}}}
```

## The StorageAnalytics object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StorageAnalytics":{"properties":{"dedup_ratio":{"format":"double","type":["number","null"]},"incremental_ratio":{"format":"double","type":["number","null"]},"logical_bytes":{"format":"int64","type":"integer"},"physical_bytes":{"format":"int64","type":"integer"},"reused_bytes":{"format":"int64","type":"integer"},"transferred_bytes":{"format":"int64","type":"integer"},"written_bytes":{"format":"int64","type":"integer"}},"required":["logical_bytes","physical_bytes","written_bytes","reused_bytes","transferred_bytes"],"type":"object"}}}}
```

## The StorageSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StorageSummary":{"properties":{"tiers":{"items":{"$ref":"#/components/schemas/StorageTierSummary"},"type":"array"},"total_artifacts":{"format":"int64","type":"integer"},"total_bytes":{"format":"int64","type":"integer"}},"required":["tiers","total_bytes","total_artifacts"],"type":"object"},"StorageTierSummary":{"properties":{"artifacts":{"format":"int64","type":"integer"},"bytes":{"format":"int64","type":"integer"},"residency_hours":{"format":"double","type":"number"},"tier":{"type":"string"},"transfers":{"format":"int64","type":"integer"}},"required":["tier","artifacts","bytes","transfers","residency_hours"],"type":"object"}}}}
```

## The StorageTierSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"StorageTierSummary":{"properties":{"artifacts":{"format":"int64","type":"integer"},"bytes":{"format":"int64","type":"integer"},"residency_hours":{"format":"double","type":"number"},"tier":{"type":"string"},"transfers":{"format":"int64","type":"integer"}},"required":["tier","artifacts","bytes","transfers","residency_hours"],"type":"object"}}}}
```

## The TelemetryRecord object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"TelemetryRecord":{"properties":{"activation_path":{"type":["string","null"]},"classifier_latency_ms":{"format":"int64","type":["integer","null"]},"classifier_profile_id":{"type":["string","null"]},"completion_tokens":{"format":"int64","type":["integer","null"]},"decision_source":{"type":["string","null"]},"end_to_end_latency_ms":{"format":"int64","type":["integer","null"]},"fallback_used":{"type":["boolean","null"]},"logical_model":{"type":"string"},"mean_inter_token_ms":{"format":"double","type":["number","null"]},"p95_inter_token_ms":{"format":"double","type":["number","null"]},"profile_id":{"type":["string","null"]},"prompt_tokens":{"format":"int64","type":["integer","null"]},"queue_ms":{"format":"int64","type":["integer","null"]},"request_id":{"type":"string"},"route_generation":{"format":"int64","type":["integer","null"]},"status_code":{"format":"int32","type":["integer","null"]},"stream_duration_ms":{"format":"int64","type":["integer","null"]},"ttft_ms":{"format":"int64","type":["integer","null"]},"upstream_attempts":{"format":"int32","type":["integer","null"]}},"required":["request_id","logical_model"],"type":"object"}}}}
```

## The TierSummary object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"TierSummary":{"properties":{"attempts":{"format":"int64","minimum":0,"type":"integer"},"bytes_total":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"p50_ns":{"format":"double","type":"number"},"storage_tier":{"type":"string"},"succeeded":{"format":"int64","minimum":0,"type":"integer"}},"required":["operation","storage_tier","attempts","succeeded","p50_ns","bytes_total"],"type":"object"}}}}
```

## The TimeSeriesDataPoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"TimeSeriesDataPoint":{"properties":{"timestamp":{"format":"int64","type":"integer"},"value":{"format":"double","type":"number"}},"required":["timestamp","value"],"type":"object"}}}}
```

## The TimelinePoint object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"TimelinePoint":{"properties":{"bucket_ms":{"format":"int64","type":"integer"},"failed":{"format":"int64","minimum":0,"type":"integer"},"fallbacks":{"format":"int64","minimum":0,"type":"integer"},"operation":{"type":"string"},"succeeded":{"format":"int64","minimum":0,"type":"integer"}},"required":["bucket_ms","operation","succeeded","failed","fallbacks"],"type":"object"}}}}
```

## The TopPod object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"TopPod":{"description":"Top pods by resource usage","properties":{"cpu_usage_seconds":{"format":"double","type":"number"},"memory_bytes":{"format":"double","type":"number"},"namespace":{"type":["string","null"]},"node_name":{"type":"string"},"pod_name":{"type":["string","null"]},"pod_uid":{"type":"string"}},"required":["pod_uid","node_name","cpu_usage_seconds","memory_bytes"],"type":"object"}}}}
```

## The TotalCountResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"TotalCountResponse":{"properties":{"total_count":{"format":"int64","type":"integer"}},"required":["total_count"],"type":"object"}}}}
```

## The UpdateArtifact object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"UpdateArtifact":{"properties":{"restore_count_increment":{"description":"Bumps the stored restore_count. Kept for compatibility; do not build on it. No\ncaller sends it, and observed_restores replaces it.","type":["boolean","null"]},"status":{"type":["string","null"]}},"type":"object"}}}}
```

## The UpdateCheckpointRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"UpdateCheckpointRequest":{"description":"What the controller reports back about a request it picked up.","properties":{"artifact_id":{"type":["string","null"]},"error":{"type":["string","null"]},"request_id":{"description":"Correlates this report to the request it describes, so a late report from a\nsuperseded attempt cannot overwrite the current outcome.","format":"uuid","type":"string"},"status":{"description":"running when the dump starts, then succeeded or failed.","type":"string"}},"required":["request_id","status"],"type":"object"}}}}
```

## The UpdateMaintenanceWindow object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"UpdateMaintenanceWindow":{"properties":{"end_time":{"format":"date-time","type":["string","null"]},"nodes":{"items":{"type":"string"},"type":["array","null"]},"partitions":{"items":{"type":"string"},"type":["array","null"]},"reason":{"type":["string","null"]},"start_time":{"format":"date-time","type":["string","null"]},"status":{"type":["string","null"]}},"type":"object"}}}}
```

## The UploadUrlsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"UploadUrlsResponse":{"properties":{"latest_upload_url":{"type":"string"},"version_upload_url":{"type":"string"}},"required":["version_upload_url","latest_upload_url"],"type":"object"}}}}
```

## The UpsertInstanceTypePricingRequest object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"UpsertInstanceTypePricingRequest":{"description":"Request to create or update instance type pricing","properties":{"capacity_type":{"description":"\"spot\" or \"on-demand\"","type":"string"},"instance_type":{"type":"string"},"ondemand_price_per_hour":{"description":"Hourly cost when running as on-demand","format":"double","type":["number","null"]},"spot_price_per_hour":{"description":"Hourly cost when running as spot","format":"double","type":["number","null"]}},"required":["instance_type","capacity_type"],"type":"object"}}}}
```

## The UpsertRoute object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"UpsertRoute":{"properties":{"classifier_profile_id":{"type":["string","null"]},"classifier_prompt":{"type":["string","null"]},"classifier_response_schema":{"type":["string","null"]},"logical_model":{"type":"string"},"mode":{"type":"string"},"queue_timeout_ms":{"format":"int64","type":"integer"},"targets":{"items":{"$ref":"#/components/schemas/UpsertTarget"},"type":"array"}},"required":["logical_model","targets"],"type":"object"},"UpsertTarget":{"properties":{"priority":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"tier":{"type":"string"}},"required":["profile_id","tier","priority"],"type":"object"}}}}
```

## The UpsertTarget object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"UpsertTarget":{"properties":{"priority":{"format":"int32","type":"integer"},"profile_id":{"type":"string"},"tier":{"type":"string"}},"required":["profile_id","tier","priority"],"type":"object"}}}}
```

## The UsageBucket object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"UsageBucket":{"properties":{"avg_backend_ms":{"format":"double","type":["number","null"]},"avg_routing_ms":{"format":"double","type":["number","null"]},"avg_ttft_ms":{"format":"double","type":["number","null"]},"bucket":{"format":"date-time","type":"string"},"cold_start_avoided_ms":{"format":"int64","type":"integer"},"completion_tokens":{"format":"int64","type":"integer"},"deadline_misses":{"format":"int64","type":"integer"},"fallbacks":{"format":"int64","type":"integer"},"prompt_tokens":{"format":"int64","type":"integer"},"requests":{"format":"int64","type":"integer"},"successes":{"format":"int64","type":"integer"}},"required":["bucket","requests","fallbacks","successes","deadline_misses","prompt_tokens","completion_tokens","cold_start_avoided_ms"],"type":"object"}}}}
```

## The VolumeMapping object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"VolumeMapping":{"properties":{"container_path":{"type":"string"},"host_path":{"type":"string"}},"required":["host_path","container_path"],"type":"object"}}}}
```

## The VolumeMount object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"VolumeMount":{"properties":{"auto":{"type":["boolean","null"]}},"type":"object"}}}}
```

## The WorkerStart object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"WorkerStart":{"description":"One worker start, and whether it restored.","properties":{"checkpoint_path":{"type":["string","null"]},"pod_name":{"type":"string"},"ready_at":{"format":"date-time","type":["string","null"]},"restored":{"description":"True when this worker was given a checkpoint to restore from.","type":"boolean"},"start_time_ms":{"description":"PodScheduled to Ready, in milliseconds.","format":"int64","type":"integer"}},"required":["pod_name","start_time_ms","restored"],"type":"object"}}}}
```

## The WorkloadReq object

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"components":{"schemas":{"WorkloadReq":{"properties":{"cluster_id":{"type":"string"},"cluster_name":{"deprecated":true,"type":["string","null"]},"deployment":{},"job":{},"pod":{}},"required":["cluster_id"],"type":"object"}}}}
```
