curl --request PUT \
--url https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"defaultSize": 123,
"description": "<string>"
},
"state": {},
"versions": [
{
"name": "<string>",
"templateName": "<string>"
}
]
}
'import requests
url = "https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"defaultSize": 123,
"description": "<string>"
},
"state": {},
"versions": [
{
"name": "<string>",
"templateName": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metadata: {
name: 'my-resource',
displayName: 'My Resource',
externalId: 'my-session-123',
labels: {}
},
spec: {defaultSize: 123, description: '<string>'},
state: {},
versions: [{name: '<string>', templateName: '<string>'}]
})
};
fetch('https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}', 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.blaxel.ai/v0/volume_templates/{volumeTemplateName}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'externalId' => 'my-session-123',
'labels' => [
]
],
'spec' => [
'defaultSize' => 123,
'description' => '<string>'
],
'state' => [
],
'versions' => [
[
'name' => '<string>',
'templateName' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"defaultSize\": 123,\n \"description\": \"<string>\"\n },\n \"state\": {},\n \"versions\": [\n {\n \"name\": \"<string>\",\n \"templateName\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"defaultSize\": 123,\n \"description\": \"<string>\"\n },\n \"state\": {},\n \"versions\": [\n {\n \"name\": \"<string>\",\n \"templateName\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"defaultSize\": 123,\n \"description\": \"<string>\"\n },\n \"state\": {},\n \"versions\": [\n {\n \"name\": \"<string>\",\n \"templateName\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"defaultSize": 123,
"description": "<string>"
},
"state": {
"lastVersionUploadedAt": "<string>",
"latestVersion": "<string>",
"versionCount": 123
},
"versions": [
{
"bucket": "<string>",
"contentSize": 123,
"name": "<string>",
"region": "<string>",
"templateName": "<string>",
"versionId": "<string>",
"workspace": "<string>"
}
]
}Create or update volume template
Creates or updates a volume template.
curl --request PUT \
--url https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"defaultSize": 123,
"description": "<string>"
},
"state": {},
"versions": [
{
"name": "<string>",
"templateName": "<string>"
}
]
}
'import requests
url = "https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"defaultSize": 123,
"description": "<string>"
},
"state": {},
"versions": [
{
"name": "<string>",
"templateName": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metadata: {
name: 'my-resource',
displayName: 'My Resource',
externalId: 'my-session-123',
labels: {}
},
spec: {defaultSize: 123, description: '<string>'},
state: {},
versions: [{name: '<string>', templateName: '<string>'}]
})
};
fetch('https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}', 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.blaxel.ai/v0/volume_templates/{volumeTemplateName}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'externalId' => 'my-session-123',
'labels' => [
]
],
'spec' => [
'defaultSize' => 123,
'description' => '<string>'
],
'state' => [
],
'versions' => [
[
'name' => '<string>',
'templateName' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"defaultSize\": 123,\n \"description\": \"<string>\"\n },\n \"state\": {},\n \"versions\": [\n {\n \"name\": \"<string>\",\n \"templateName\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"defaultSize\": 123,\n \"description\": \"<string>\"\n },\n \"state\": {},\n \"versions\": [\n {\n \"name\": \"<string>\",\n \"templateName\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/volume_templates/{volumeTemplateName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"defaultSize\": 123,\n \"description\": \"<string>\"\n },\n \"state\": {},\n \"versions\": [\n {\n \"name\": \"<string>\",\n \"templateName\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"defaultSize": 123,
"description": "<string>"
},
"state": {
"lastVersionUploadedAt": "<string>",
"latestVersion": "<string>",
"versionCount": 123
},
"versions": [
{
"bucket": "<string>",
"contentSize": 123,
"name": "<string>",
"region": "<string>",
"templateName": "<string>",
"versionId": "<string>",
"workspace": "<string>"
}
]
}Authorizations
OAuth2 authentication with JWT tokens
Path Parameters
Name of the volume template
Query Parameters
If true, returns a presigned URL for uploading the template content
Version name for the template version being created
Body
Volume template for creating pre-configured volumes
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Volume template specification
Show child attributes
Show child attributes
Volume template state
List of versions for this template
Show child attributes
Show child attributes
Response
successful operation
Volume template for creating pre-configured volumes
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Volume template specification
Show child attributes
Show child attributes
Volume template state
Show child attributes
Show child attributes
List of versions for this template
Show child attributes
Show child attributes
Was this page helpful?
