Restore Warm Pool Snapshot
curl --request POST \
--url https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"warm_pool": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enabled": true,
"target_size": 123,
"generation": 123,
"error_count": 123,
"next_retry_at": "2023-11-07T05:31:56Z",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error_message": "<string>",
"has_base_snapshot": true,
"updated_at": "2023-11-07T05:31:56Z",
"ready_count": 123,
"stale_count": 123,
"warming_count": 123,
"snapshotting_count": 123,
"last_failure_at": "2023-11-07T05:31:56Z",
"last_failure_reason": "<string>"
},
"restored_generation": 123
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}Environments
Restore Warm Pool Snapshot
Creates a new warm-pool generation from a retained snapshot without rerunning the warm hook. Existing workspaces from the selected generation remain the serving fallback until the new generation is ready. This restores the pool filesystem state but does not change the environment’s currently saved warm-hook script. Only available for enabled pools on snapshot-capable providers. Source-backed personal environments must restore snapshots through their source environment.
POST
/
v1
/
environments
/
{environmentId}
/
warm-pool-snapshots
/
{snapshotId}
/
restore
Restore Warm Pool Snapshot
curl --request POST \
--url https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replicas.dev/v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"warm_pool": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enabled": true,
"target_size": 123,
"generation": 123,
"error_count": 123,
"next_retry_at": "2023-11-07T05:31:56Z",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error_message": "<string>",
"has_base_snapshot": true,
"updated_at": "2023-11-07T05:31:56Z",
"ready_count": 123,
"stale_count": 123,
"warming_count": 123,
"snapshotting_count": 123,
"last_failure_at": "2023-11-07T05:31:56Z",
"last_failure_reason": "<string>"
},
"restored_generation": 123
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}Authorizations
API key authentication. Obtain your API key from the Replicas dashboard under Organization → Settings → API Keys.
Path Parameters
Environment UUID, or the literal string global.
Snapshot record UUID from the snapshots array returned by GET /v1/environments/{environmentId}/warm-hooks.
⌘I