#@ load("openapi.lib.yml", "response", "response_with_accepted", "reference", "type", "array") paths: /collections/{collection_name}/snapshots/upload: post: tags: - Snapshots summary: Recover from an uploaded snapshot description: Recover local collection data from an uploaded snapshot. This will overwrite any data, stored on this node, for the collection. If collection does not exist - it will be created. operationId: recover_from_uploaded_snapshot parameters: - name: collection_name in: path description: Name of the collection required: true schema: type: string - name: wait in: query description: "If true, wait for changes to actually happen. If false - let changes happen in background. Default is true." required: false schema: type: boolean - name: priority in: query description: "Defines source of truth for snapshot recovery" required: false schema: $ref: "#/components/schemas/SnapshotPriority" - name: checksum in: query description: "Optional SHA256 checksum to verify snapshot integrity before recovery." required: false schema: type: string requestBody: description: Snapshot to recover from content: multipart/form-data: schema: type: object properties: snapshot: type: string format: binary responses: #@ response_with_accepted(type("boolean")) /collections/{collection_name}/snapshots/recover: put: tags: - Snapshots summary: Recover from a snapshot description: Recover local collection data from a snapshot. This will overwrite any data, stored on this node, for the collection. If collection does not exist - it will be created. operationId: recover_from_snapshot parameters: - name: collection_name in: path description: Name of the collection required: true schema: type: string - name: wait in: query description: "If true, wait for changes to actually happen. If false - let changes happen in background. Default is true." required: false schema: type: boolean requestBody: description: Snapshot to recover from content: application/json: schema: $ref: "#/components/schemas/SnapshotRecover" responses: #@ response_with_accepted(type("boolean")) /collections/{collection_name}/snapshots: get: tags: - Snapshots summary: List collection snapshots description: Get list of snapshots for a collection operationId: list_snapshots parameters: - name: collection_name in: path description: Name of the collection required: true schema: type: string responses: #@ response(array(reference("SnapshotDescription"))) post: tags: - Snapshots summary: Create collection snapshot description: Create new snapshot for a collection operationId: create_snapshot parameters: - name: collection_name in: path description: Name of the collection for which to create a snapshot required: true schema: type: string - name: wait in: query description: "If true, wait for changes to actually happen. If false - let changes happen in background. Default is true." required: false schema: type: boolean responses: #@ response_with_accepted(reference("SnapshotDescription")) /collections/{collection_name}/snapshots/{snapshot_name}: delete: tags: - Snapshots summary: Delete collection snapshot description: Delete snapshot for a collection operationId: delete_snapshot parameters: - name: collection_name in: path description: Name of the collection for which to delete a snapshot required: true schema: type: string - name: snapshot_name in: path description: Name of the snapshot to delete required: true schema: type: string - name: wait in: query description: "If true, wait for changes to actually happen. If false - let changes happen in background. Default is true." required: false schema: type: boolean responses: #@ response_with_accepted(type("boolean")) get: tags: - Snapshots summary: Download collection snapshot description: Download specified snapshot from a collection as a file operationId: get_snapshot parameters: - name: collection_name in: path description: Name of the collection required: true schema: type: string - name: snapshot_name in: path description: Name of the snapshot to download required: true schema: type: string responses: default: description: error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 4XX: description: error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" '200': description: Snapshot file content: application/octet-stream: schema: type: string format: binary /snapshots: get: tags: - Snapshots summary: List of storage snapshots description: Get list of snapshots of the whole storage operationId: list_full_snapshots responses: #@ response(array(reference("SnapshotDescription"))) post: tags: - Snapshots summary: Create storage snapshot description: Create new snapshot of the whole storage operationId: create_full_snapshot parameters: - name: wait in: query description: "If true, wait for changes to actually happen. If false - let changes happen in background. Default is true." required: false schema: type: boolean responses: #@ response_with_accepted(reference("SnapshotDescription")) /snapshots/{snapshot_name}: delete: tags: - Snapshots summary: Delete storage snapshot description: Delete snapshot of the whole storage operationId: delete_full_snapshot parameters: - name: snapshot_name in: path description: Name of the full snapshot to delete required: true schema: type: string - name: wait in: query description: "If true, wait for changes to actually happen. If false - let changes happen in background. Default is true." required: false schema: type: boolean responses: #@ response_with_accepted(type("boolean")) get: tags: - Snapshots summary: Download storage snapshot description: Download specified snapshot of the whole storage as a file operationId: get_full_snapshot parameters: - name: snapshot_name in: path description: Name of the snapshot to download required: true schema: type: string responses: default: description: error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 4XX: description: error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" '200': description: Snapshot file content: application/octet-stream: schema: type: string format: binary /collections/{collection_name}/shards/{shard_id}/snapshot: get: tags: - Snapshots summary: Download shard snapshot description: Stream the current state of a shard as a snapshot file operationId: stream_shard_snapshot parameters: - name: collection_name in: path description: Name of the collection required: true schema: type: string - name: shard_id in: path description: Id of the shard required: true schema: type: integer responses: default: description: error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 4XX: description: error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" '200': description: Snapshot file content: application/octet-stream: schema: type: string format: binary