517 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			517 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. -*- rst -*-
 | |
| 
 | |
| Volume snapshots (snapshots)
 | |
| ============================
 | |
| 
 | |
| A snapshot is a point-in-time copy of the data that a volume
 | |
| contains.
 | |
| 
 | |
| When you create, list, or delete snapshots, these status values are
 | |
| possible:
 | |
| 
 | |
| **Snapshot statuses**
 | |
| 
 | |
| +----------------+-------------------------------------+
 | |
| | Status         | Description                         |
 | |
| +----------------+-------------------------------------+
 | |
| | creating       | The snapshot is being created.      |
 | |
| +----------------+-------------------------------------+
 | |
| | available      | The snapshot is ready to use.       |
 | |
| +----------------+-------------------------------------+
 | |
| | backing-up     | The snapshot is being backed up.    |
 | |
| +----------------+-------------------------------------+
 | |
| | deleting       | The snapshot is being deleted.      |
 | |
| +----------------+-------------------------------------+
 | |
| | error          | A snapshot creation error occurred. |
 | |
| +----------------+-------------------------------------+
 | |
| | error_deleting | A snapshot deletion error occurred. |
 | |
| +----------------+-------------------------------------+
 | |
| 
 | |
| 
 | |
| List snapshots and details
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  GET /v3/{project_id}/snapshots/detail
 | |
| 
 | |
| Lists all Block Storage snapshots, with details, that the project can access,
 | |
| since v3.31 if non-admin users specify invalid filters in the url, API will
 | |
| return bad request.
 | |
| 
 | |
| 
 | |
| Normal response codes: 200
 | |
| Error response codes: badRequest(400)
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - project_id: project_id_path
 | |
|    - sort_key: sort_key
 | |
|    - sort_dir: sort_dir
 | |
|    - limit: limit
 | |
|    - offset: offset
 | |
|    - marker: marker
 | |
| 
 | |
| 
 | |
| Response Parameters
 | |
| -------------------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - status: status_2
 | |
|    - os-extended-snapshot-attributes:progress: os-extended-snapshot-attributes:progress
 | |
|    - description: description
 | |
|    - created_at: created_at
 | |
|    - name: name
 | |
|    - user_id: user_id_2
 | |
|    - volume_id: volume_id
 | |
|    - os-extended-snapshot-attributes:project_id: os-extended-snapshot-attributes:project_id
 | |
|    - size: size
 | |
|    - id: id
 | |
|    - metadata: metadata
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshots-list-detailed-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| Create a snapshot
 | |
| ~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  POST /v3/{project_id}/snapshots
 | |
| 
 | |
| Creates a volume snapshot, which is a point-in-time, complete copy of a volume. You can create a volume from a snapshot.
 | |
| 
 | |
| Normal response codes: 202
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - snapshot: snapshot
 | |
|    - volume_id: volume_id
 | |
|    - force: force
 | |
|    - description: description
 | |
|    - name: name
 | |
|    - project_id: project_id_path
 | |
|    - metadata: metadata_7
 | |
| 
 | |
| Request Example
 | |
| ---------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-create-request.json
 | |
|    :language: javascript
 | |
| 
 | |
| Response Parameters
 | |
| -------------------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - status: status_2
 | |
|    - description: description
 | |
|    - created_at: created_at
 | |
|    - name: name
 | |
|    - snapshot: snapshot
 | |
|    - user_id: user_id_2
 | |
|    - volume_id: volume_id
 | |
|    - metadata: metadata
 | |
|    - id: id
 | |
|    - size: size
 | |
|    - updated_at: updated_at
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-create-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| List accessible snapshots
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  GET /v3/{project_id}/snapshots
 | |
| 
 | |
| Lists all Block Storage snapshots, with summary information,
 | |
| that the project can access, since v3.31 if non-admin users
 | |
| specify invalid filters in the url, API will return bad request.
 | |
| 
 | |
| 
 | |
| Normal response codes: 200
 | |
| Error response codes: badRequest(400)
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - project_id: project_id_path
 | |
|    - sort_key: sort_key
 | |
|    - sort_dir: sort_dir
 | |
|    - limit: limit
 | |
|    - offset: offset
 | |
|    - marker: marker
 | |
| 
 | |
| 
 | |
| Response Parameters
 | |
| -------------------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - status: status_2
 | |
|    - description: description
 | |
|    - created_at: created_at
 | |
|    - name: name
 | |
|    - user_id: user_id_2
 | |
|    - volume_id: volume_id
 | |
|    - metadata: metadata
 | |
|    - id: id
 | |
|    - size: size
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshots-list-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| Show a snapshot's metadata
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  GET /v3/{project_id}/snapshots/{snapshot_id}/metadata
 | |
| 
 | |
| Shows metadata for a snapshot.
 | |
| 
 | |
| 
 | |
| Normal response codes: 200
 | |
| Error response codes:
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
| 
 | |
| 
 | |
| Response Parameters
 | |
| -------------------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - status: status_2
 | |
|    - os-extended-snapshot-attributes:progress: os-extended-snapshot-attributes:progress
 | |
|    - description: description
 | |
|    - created_at: created_at
 | |
|    - name: name
 | |
|    - snapshot: snapshot
 | |
|    - volume_id: volume_id
 | |
|    - os-extended-snapshot-attributes:project_id: os-extended-snapshot-attributes:project_id
 | |
|    - size: size
 | |
|    - id: id
 | |
|    - metadata: metadata
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-metadata-show-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| Create a snapshot's metadata
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  POST /v3/{project_id}/snapshots/{snapshot_id}/metadata
 | |
| 
 | |
| Updates metadata for a snapshot.
 | |
| 
 | |
| Creates or replaces metadata items that match keys. Does not modify items that
 | |
| are not in the request.
 | |
| 
 | |
| 
 | |
| Normal response codes: 200
 | |
| Error response codes:
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - metadata: metadata
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
| 
 | |
| Request Example
 | |
| ---------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-metadata-create-request.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-metadata-create-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| Update a snapshot's metadata
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  PUT /v3/{project_id}/snapshots/{snapshot_id}/metadata
 | |
| 
 | |
| Replaces all the snapshot's metadata with the key-value pairs in the request.
 | |
| 
 | |
| 
 | |
| Normal response codes: 200
 | |
| Error response codes:
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - metadata: metadata
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
| 
 | |
| Request Example
 | |
| ---------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-metadata-update-request.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-metadata-update-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| Show a snapshot's details
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  GET /v3/{project_id}/snapshots/{snapshot_id}
 | |
| 
 | |
| Shows details for a snapshot.
 | |
| 
 | |
| 
 | |
| Normal response codes: 200
 | |
| Error response codes:
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
| 
 | |
| 
 | |
| Response Parameters
 | |
| -------------------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - status: status_2
 | |
|    - os-extended-snapshot-attributes:progress: os-extended-snapshot-attributes:progress
 | |
|    - description: description
 | |
|    - created_at: created_at
 | |
|    - name: name
 | |
|    - snapshot: snapshot
 | |
|    - user_id: user_id_2
 | |
|    - volume_id: volume_id
 | |
|    - os-extended-snapshot-attributes:project_id: os-extended-snapshot-attributes:project_id
 | |
|    - size: size
 | |
|    - id: id
 | |
|    - metadata: metadata
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-show-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| Update a snapshot
 | |
| ~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  PUT /v3/{project_id}/snapshots/{snapshot_id}
 | |
| 
 | |
| Updates a snapshot.
 | |
| 
 | |
| 
 | |
| Normal response codes: 200
 | |
| Error response codes:
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - snapshot: snapshot
 | |
|    - description: description
 | |
|    - name: name
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
| 
 | |
| Request Example
 | |
| ---------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-update-request.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| 
 | |
| Response Parameters
 | |
| -------------------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - status: status_2
 | |
|    - description: description
 | |
|    - created_at: created_at
 | |
|    - name: name
 | |
|    - snapshot: snapshot
 | |
|    - user_id: user_id_2
 | |
|    - volume_id: volume_id
 | |
|    - metadata: metadata
 | |
|    - id: id
 | |
|    - size: size
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-update-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| Delete a snapshot
 | |
| ~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  DELETE /v3/{project_id}/snapshots/{snapshot_id}
 | |
| 
 | |
| Deletes a snapshot.
 | |
| 
 | |
| Normal response codes: 202
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| Show a snapshot's metadata for a specific key
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  GET /v3/{project_id}/snapshot/{snapshot_id}/metadata/{key}
 | |
| 
 | |
| Shows metadata for a snapshot for a specific key.
 | |
| 
 | |
| Normal response codes: 200
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
|    - key: key_2
 | |
| 
 | |
| 
 | |
| Response Parameters
 | |
| -------------------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - meta: meta_1
 | |
| 
 | |
| 
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-metadata-show-key-response.json
 | |
|    :language: javascript
 | |
| 
 | |
| 
 | |
| 
 | |
| Delete a snapshot's metadata
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  DELETE /v3/{project_id}/snapshots/{snapshot_id}/metadata/{key}
 | |
| 
 | |
| Deletes metadata for a snapshot.
 | |
| 
 | |
| Normal response codes: 200
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
|    - key: key_1
 | |
| 
 | |
| 
 | |
| Update a snapshot's metadata for a specific key
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. rest_method::  PUT /v3/{project_id}/snapshots/{snapshot_id}/metadata/{key}
 | |
| 
 | |
| Update metadata for a snapshot for a specific key.
 | |
| 
 | |
| Normal response codes: 200
 | |
| 
 | |
| 
 | |
| Request
 | |
| -------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - project_id: project_id_path
 | |
|    - snapshot_id: snapshot_id_path
 | |
|    - key: key_3
 | |
|    - meta: meta_1
 | |
| 
 | |
| Request Example
 | |
| ---------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-metadata-update-key-request.json
 | |
|    :language: javascript
 | |
| 
 | |
| Response Parameters
 | |
| -------------------
 | |
| 
 | |
| .. rest_parameters:: parameters.yaml
 | |
| 
 | |
|    - meta: meta_1
 | |
| 
 | |
| Response Example
 | |
| ----------------
 | |
| 
 | |
| .. literalinclude:: ./samples/snapshot-metadata-update-key-response.json
 | |
|    :language: javascript
 | 
