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

# Plugins

Cedana API for plugin distribution

## GET /v1/download

> Download the cedana binary.

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for plugin distribution","name":"Plugins"}],"paths":{"/v1/download":{"get":{"operationId":"download_cedana","parameters":[{"description":"Exact version match, e.g. 0.9.2","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Architecture, e.g. amd64","in":"query","name":"arch","required":false,"schema":{"type":"string"}},{"description":"Build type: alpha|release","in":"query","name":"build","required":false,"schema":{"type":"string"}},{"description":"set to true to fetch with exact repository name and build name","in":"query","name":"exact","required":false,"schema":{"type":"string"}}],"responses":{"302":{"description":"Redirects to a presigned S3 URL for the cedana binary"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid key format"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"cedana binary not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to cedana binary from S3"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Download the cedana binary.","tags":["Plugins"]}}},"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"}}}}
```

## GET /v1/install

> Download install-release.sh from cedana.

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for plugin distribution","name":"Plugins"}],"paths":{"/v1/install":{"get":{"operationId":"download_install_script","parameters":[{"description":"Exact version match, e.g. 0.9.2","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Architecture, e.g. amd64","in":"query","name":"arch","required":false,"schema":{"type":"string"}},{"description":"Build type: alpha|release","in":"query","name":"build","required":false,"schema":{"type":"string"}},{"description":"set to true to fetch with exact repository name and build name","in":"query","name":"exact","required":false,"schema":{"type":"string"}}],"responses":{"302":{"description":"Redirects to a presigned S3 URL for install-release.sh"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid key format"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"cedana install-release.sh not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to install-release.sh from cedana repository"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Download install-release.sh from cedana.","tags":["Plugins"]}}},"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"}}}}
```

## GET /v1/install/slurm

> Download install-release.sh from cedana-slurm.

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for plugin distribution","name":"Plugins"}],"paths":{"/v1/install/slurm":{"get":{"operationId":"download_slurm_install_script","parameters":[{"description":"Exact version match, e.g. 0.9.2","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Architecture, e.g. amd64","in":"query","name":"arch","required":false,"schema":{"type":"string"}},{"description":"Build type: alpha|release","in":"query","name":"build","required":false,"schema":{"type":"string"}},{"description":"set to true to fetch with exact repository name and build name","in":"query","name":"exact","required":false,"schema":{"type":"string"}}],"responses":{"302":{"description":"Redirects to a presigned S3 URL for cedana-slurm install-release.sh"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid key format"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"cedana-slurm install-release.sh not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to install-release.sh from cedana-slurm repository"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Download install-release.sh from cedana-slurm.","tags":["Plugins"]}}},"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"}}}}
```

## List plugins available in S3.

> Supports direct query params (\`names\`, \`compatibility\`, \`arch\`, \`build\`)

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for plugin distribution","name":"Plugins"}],"paths":{"/v1/plugins":{"get":{"description":"Supports direct query params (`names`, `compatibility`, `arch`, `build`)","operationId":"list","parameters":[{"description":"Comma-separated plugin names, e.g. cedana,runc; each may pin a version with name@version","in":"query","name":"names","required":false,"schema":{"type":"string"}},{"description":"Exact version match, e.g. 0.9.2","in":"query","name":"compatibility","required":false,"schema":{"type":"string"}},{"description":"Architecture, e.g. amd64","in":"query","name":"arch","required":false,"schema":{"type":"string"}},{"description":"Build type: alpha|release","in":"query","name":"build","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Plugin"},"type":"array"}}},"description":"Returns matching plugins"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid query params"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to fetch plugins from S3"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"List plugins available in S3.","tags":["Plugins"]}}},"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"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}}}
```

## GET /v1/plugins/download/{binary\_name}

> Download plugin binary/library.

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for plugin distribution","name":"Plugins"}],"paths":{"/v1/plugins/download/{binary_name}":{"get":{"operationId":"download","parameters":[{"description":"Exact version match, e.g. 0.9.2","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Architecture, e.g. amd64","in":"query","name":"arch","required":false,"schema":{"type":"string"}},{"description":"Build type: alpha|release","in":"query","name":"build","required":false,"schema":{"type":"string"}},{"description":"set to true to fetch with exact repository name and build name","in":"query","name":"exact","required":false,"schema":{"type":"string"}},{"in":"path","name":"binary_name","required":true,"schema":{"type":"string"}}],"responses":{"302":{"description":"Redirects to a presigned S3 URL for the plugin binary"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid key format"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Plugin binary not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to fetch plugin from S3"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Download plugin binary/library.","tags":["Plugins"]}}},"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"}}}}
```

## POST /v1/plugins/upload/{name}

> Upload binaries/libraries to S3.

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for plugin distribution","name":"Plugins"}],"paths":{"/v1/plugins/upload/{name}":{"post":{"operationId":"upload","parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginUploadPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadUrlsResponse"}}},"description":"Uploaded plugins"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid payload fields"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to upload plugins to S3"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Client error"},"5XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Server error"}},"summary":"Upload binaries/libraries to S3.","tags":["Plugins"]}}},"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"},"UploadUrlsResponse":{"properties":{"latest_upload_url":{"type":"string"},"version_upload_url":{"type":"string"}},"required":["version_upload_url","latest_upload_url"],"type":"object"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}}}
```
