Snapshots ========= .. role:: green Manage snapshot images via API. Create a Snapshot ----------------- **Type:** :guilabel:`POST` .. py:function:: https://cloud.syminet.com/api/v1/images/snapshots/{SLICE_ID}/create Create a snapshot of ``SLICE_ID``. **Required URL Parameters:** SLICE_ID Slice ID to create snapshot from. **Required JSON Properties:** :``snapshot_name``: Snapshot name .. code-block:: shell :caption: Curl curl --request POST \ --url https://cloud.syminet.com/api/v1/images/snapshots/SLICE_ID/create \ --header "content-type: application/json" \ --header "authorization:bearer $API_TOKEN" \ --data ' { "snapshot_name": "mysnapshot" } ' **Response:** :green:`202 OK` List All Snapshots ------------------ **Type:** :guilabel:`GET` .. py:function:: https://cloud.syminet.com/api/v1/images Return a paginated list of all snapshots. **Optional URL Parameters:** ?query=SLICE_NAME Filter on SNAPSHOT_NAME (partial match okay) ?page=PAGE_NUMBER Return page PAGE_NUMBER .. code-block:: shell :caption: Curl curl --request GET \ --url https://cloud.syminet.com/api/v1/images \ --header "authorization:bearer $API_TOKEN" .. code-block:: json :caption: Response { "data" : [ { "created" : "2025-02-04 10:19:36.925397", "datacenter_id" : 6, "duration" : "43s", "id" : 14901, "in_progress" : null, "legacy" : null, "name" : "11test1-3247-173049603", "perms" : "rw", "progress" : null, "region" : "SFO1", "snapshot_size" : 21, "vm_datacenter_id" : 6, "vm_deleted" : null, "vm_id" : 3247, "vm_perms" : "rw", "vm_user_id" : 1423, "vmname" : "11test1-3247.com" }, { "created" : "2025-02-06 17:22:36.925397", "datacenter_id" : 6, "duration" : "02s", "id" : 15258, "in_progress" : null, "legacy" : null, "name" : "11test1-newvm-1731969462", "perms" : "ro", "progress" : null, "region" : "SFO1", "snapshot_size" : 1, "vm_datacenter_id" : 6, "vm_deleted" : null, "vm_id" : 3828, "vm_perms" : "rw", "vm_user_id" : 1423, "vmname" : "11test1-newvm" } ], "page" : 1, "pages" : 1, "results" : 2 } List Snapshots for a Slice -------------------------- **Type:** :guilabel:`GET` .. py:function:: https://cloud.syminet.com/api/v1/images/snapshots/{SLICE_ID} Return a list of all snapshots for ``SLICE_ID``. **Required URL Parameters:** SLICE_ID Slice ID to list snapshots for. .. code-block:: shell :caption: Curl curl --request GET \ --url https://cloud.syminet.com/api/v1/images/snapshots/SLICE_ID \ --header "authorization:bearer $API_TOKEN" .. code-block:: json :caption: Response { "data" : [ { "backup_full_size" : 50, "created" : "2024-11-14 06:55:36.925397", "duration" : "43s", "id" : 14901, "name" : "11test1-173049603" }, { "backup_full_size" : 50, "created" : "2025-02-06 17:19:36.925397", "duration" : "47s", "id" : 13680, "name" : "11testing-1724973454" } ] } Restore a Slice from Snapshot ----------------------------- **Type:** :guilabel:`POST` .. py:function:: https://cloud.syminet.com/api/v1/images/snapshots/{SNAPSHOT_ID}/restore/{SLICE_ID} Restore ``SLICE_ID`` from ``SNAPSHOT_ID``. .. Caution:: All slice data is replaced with the ``SNAPSHOT_ID`` image. .. Note:: Slice restores require read-write permissions to **both** the slice being restored and the snapshot image restoring from. **Required URL Parameters:** SLICE_ID Slice ID to restore. SNAPSHOT_ID Snapshot ID to restore from. .. code-block:: shell :caption: Curl curl --request POST \ --url https://cloud.syminet.com/api/v1/images/snapshots/SNAPSHOT_ID/restore/SLICE_ID \ --header "authorization:bearer $API_TOKEN" **Response:** :green:`202 OK` Rename a Snapshot ----------------- **Type:** :guilabel:`POST` .. py:function:: https://cloud.syminet.com/api/v1/images/snapshots/{SNAPSHOT_ID}/rename Rename snapshot ``SNAPSHOT_ID``. **Required JSON Properties:** snapshot_name New snapshot name. .. code-block:: shell :caption: Curl curl --request POST \ --url https://cloud.syminet.com/api/v1/images/snapshots/SNAPSHOT_ID/rename \ --header "content-type: application/json" \ --header "authorization:bearer $API_TOKEN" \ --data ' { "snapshot_name": "mysnapshot" } ' **Response:** :green:`202 OK` Delete a Snapshot ----------------- **Type:** :guilabel:`DELETE` .. py:function:: https://cloud.syminet.com/api/v1/images/snapshots/{SNAPSHOT_ID}/delete Disable backups for ``SLICE_ID``. **Required URL Parameters:** SLICE_ID Slice ID to delete. .. code-block:: shell :caption: Curl curl --request DELETE \ --url https://cloud.syminet.com/api/v1/images/snapshots/SNAPSHOT_ID/delete \ --header "authorization:bearer $API_TOKEN" **Response:** :green:`202 OK`