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

# Restore Events

Cedana API for restore events

## POST /v1/restores/events/restore\_error

> Ingest a restore\_error notification over HTTP.

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for restore events","name":"Restore Events"}],"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"scheme":"bearer","type":"http"}},"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"},"RestoreEventResponse":{"properties":{"restore_uuid":{"format":"uuid","type":"string"},"status":{"type":"string"}},"required":["restore_uuid","status"],"type":"object"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}},"paths":{"/v1/restores/events/restore_error":{"post":{"operationId":"restore_error","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreEventPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreEventResponse"}}},"description":"Restore event accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid restore event"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to persist restore event"},"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":"Ingest a restore_error notification over HTTP.","tags":["Restore Events"]}}}}
```

## POST /v1/restores/events/restore\_start

> Ingest a restore\_start notification over HTTP.

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for restore events","name":"Restore Events"}],"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"scheme":"bearer","type":"http"}},"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"},"RestoreEventResponse":{"properties":{"restore_uuid":{"format":"uuid","type":"string"},"status":{"type":"string"}},"required":["restore_uuid","status"],"type":"object"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}},"paths":{"/v1/restores/events/restore_start":{"post":{"operationId":"restore_start","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreEventPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreEventResponse"}}},"description":"Restore event accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid restore event"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to persist restore event"},"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":"Ingest a restore_start notification over HTTP.","tags":["Restore Events"]}}}}
```

## POST /v1/restores/events/restore\_success

> Ingest a restore\_success notification over HTTP.

```json
{"openapi":"3.1.0","info":{"title":"Cedana API","version":"0.0.0-dev"},"tags":[{"description":"Cedana API for restore events","name":"Restore Events"}],"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"scheme":"bearer","type":"http"}},"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"},"RestoreEventResponse":{"properties":{"restore_uuid":{"format":"uuid","type":"string"},"status":{"type":"string"}},"required":["restore_uuid","status"],"type":"object"},"HttpError":{"description":"Standard JSON error body for all 4xx/5xx responses.\n\nHandlers return plain-text errors internally; [`normalize_error_response`]\nconverts anything the stack produces (handlers, extractors, the auth layer)\nto this shape, so generated SDK clients can rely on a single error schema.","properties":{"message":{"description":"Human-readable description of what went wrong","type":"string"}},"required":["message"],"type":"object"}}},"paths":{"/v1/restores/events/restore_success":{"post":{"operationId":"restore_success","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreEventPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreEventResponse"}}},"description":"Restore event accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Invalid restore event"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpError"}}},"description":"Failed to persist restore event"},"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":"Ingest a restore_success notification over HTTP.","tags":["Restore Events"]}}}}
```
