Environments
Update chainlet environment's autoscaling settings
Updates a chainlet environment’s autoscaling settings and returns the updated chainlet environment settings.
PATCH
/
v1
/
chains
/
{chain_id}
/
environments
/
{env_name}
/
chainlet_settings
/
autoscaling_settings
cURL
curl --request PATCH \
--url https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings \
--header "Authorization: Bearer $BASETEN_API_KEY" \
--data '{
"updates": [
{
"autoscaling_settings": {
"autoscaling_window": 800,
"concurrency_target": 4,
"max_replica": 3,
"max_scale_down_rate": null,
"min_replica": 2,
"scale_down_delay": 63,
"target_in_flight_tokens": null,
"target_utilization_percentage": null
},
"chainlet_name": "HelloWorld"
}
]
}'import requests
import os
API_KEY = os.environ.get("BASETEN_API_KEY", "<YOUR_API_KEY>")
url = "https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings"
headers = {"Authorization": f"Bearer {API_KEY}"}
response = requests.request(
"PATCH",
url,
headers=headers,
json={'updates': [{'autoscaling_settings': {'autoscaling_window': 800, 'concurrency_target': 4, 'max_replica': 3, 'max_scale_down_rate': None, 'min_replica': 2, 'scale_down_delay': 63, 'target_in_flight_tokens': None, 'target_utilization_percentage': None}, 'chainlet_name': 'HelloWorld'}]}
)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
updates: [
{
chainlet_name: '<string>',
autoscaling_settings: {
min_replica: 0,
max_replica: 7,
autoscaling_window: 600,
scale_down_delay: 120,
concurrency_target: 2,
target_utilization_percentage: 70,
target_in_flight_tokens: 40000,
max_scale_down_rate: 20
}
}
]
})
};
fetch('https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings', 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.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'updates' => [
[
'chainlet_name' => '<string>',
'autoscaling_settings' => [
'min_replica' => 0,
'max_replica' => 7,
'autoscaling_window' => 600,
'scale_down_delay' => 120,
'concurrency_target' => 2,
'target_utilization_percentage' => 70,
'target_in_flight_tokens' => 40000,
'max_scale_down_rate' => 20
]
]
]
]),
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.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings"
payload := strings.NewReader("{\n \"updates\": [\n {\n \"chainlet_name\": \"<string>\",\n \"autoscaling_settings\": {\n \"min_replica\": 0,\n \"max_replica\": 7,\n \"autoscaling_window\": 600,\n \"scale_down_delay\": 120,\n \"concurrency_target\": 2,\n \"target_utilization_percentage\": 70,\n \"target_in_flight_tokens\": 40000,\n \"max_scale_down_rate\": 20\n }\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"updates\": [\n {\n \"chainlet_name\": \"<string>\",\n \"autoscaling_settings\": {\n \"min_replica\": 0,\n \"max_replica\": 7,\n \"autoscaling_window\": 600,\n \"scale_down_delay\": 120,\n \"concurrency_target\": 2,\n \"target_utilization_percentage\": 70,\n \"target_in_flight_tokens\": 40000,\n \"max_scale_down_rate\": 20\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"updates\": [\n {\n \"chainlet_name\": \"<string>\",\n \"autoscaling_settings\": {\n \"min_replica\": 0,\n \"max_replica\": 7,\n \"autoscaling_window\": 600,\n \"scale_down_delay\": 120,\n \"concurrency_target\": 2,\n \"target_utilization_percentage\": 70,\n \"target_in_flight_tokens\": 40000,\n \"max_scale_down_rate\": 20\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>"
}Authorizations
Send Authorization: Bearer <api_key>. The legacy Authorization: Api-Key <api_key> scheme is also accepted.
Body
application/json
A request to update the autoscaling settings for a multiple chainlets in an environment. If a chainlet name doesn't exist, an error is returned.
Mapping of chainlet name to the desired chainlet autoscaling settings. If the chainlet name doesn't exist, an error is returned.
Show child attributes
Show child attributes
Examples:
[ { "autoscaling_settings": { "autoscaling_window": 800, "concurrency_target": 4, "max_replica": 3, "max_scale_down_rate": null, "min_replica": 2, "scale_down_delay": 63, "target_in_flight_tokens": null, "target_utilization_percentage": null }, "chainlet_name": "HelloWorld" } ]
[ { "autoscaling_settings": { "autoscaling_window": null, "concurrency_target": null, "max_replica": null, "max_scale_down_rate": null, "min_replica": 0, "scale_down_delay": null, "target_in_flight_tokens": null, "target_utilization_percentage": null }, "chainlet_name": "HelloWorld" }, { "autoscaling_settings": { "autoscaling_window": null, "concurrency_target": null, "max_replica": null, "max_scale_down_rate": null, "min_replica": 0, "scale_down_delay": null, "target_in_flight_tokens": null, "target_utilization_percentage": null }, "chainlet_name": "RandInt" } ]
Response
200 - application/json
Was this page helpful?
Previous
Update chainlet environment's instance typeUpdates a chainlet environment's instance type settings. The chainlet environment setting must exist. When updated, a new chain deployment is created and deployed. It is promoted to the chain environment according to promotion settings on the environment.
Next
⌘I
cURL
curl --request PATCH \
--url https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings \
--header "Authorization: Bearer $BASETEN_API_KEY" \
--data '{
"updates": [
{
"autoscaling_settings": {
"autoscaling_window": 800,
"concurrency_target": 4,
"max_replica": 3,
"max_scale_down_rate": null,
"min_replica": 2,
"scale_down_delay": 63,
"target_in_flight_tokens": null,
"target_utilization_percentage": null
},
"chainlet_name": "HelloWorld"
}
]
}'import requests
import os
API_KEY = os.environ.get("BASETEN_API_KEY", "<YOUR_API_KEY>")
url = "https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings"
headers = {"Authorization": f"Bearer {API_KEY}"}
response = requests.request(
"PATCH",
url,
headers=headers,
json={'updates': [{'autoscaling_settings': {'autoscaling_window': 800, 'concurrency_target': 4, 'max_replica': 3, 'max_scale_down_rate': None, 'min_replica': 2, 'scale_down_delay': 63, 'target_in_flight_tokens': None, 'target_utilization_percentage': None}, 'chainlet_name': 'HelloWorld'}]}
)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
updates: [
{
chainlet_name: '<string>',
autoscaling_settings: {
min_replica: 0,
max_replica: 7,
autoscaling_window: 600,
scale_down_delay: 120,
concurrency_target: 2,
target_utilization_percentage: 70,
target_in_flight_tokens: 40000,
max_scale_down_rate: 20
}
}
]
})
};
fetch('https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings', 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.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'updates' => [
[
'chainlet_name' => '<string>',
'autoscaling_settings' => [
'min_replica' => 0,
'max_replica' => 7,
'autoscaling_window' => 600,
'scale_down_delay' => 120,
'concurrency_target' => 2,
'target_utilization_percentage' => 70,
'target_in_flight_tokens' => 40000,
'max_scale_down_rate' => 20
]
]
]
]),
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.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings"
payload := strings.NewReader("{\n \"updates\": [\n {\n \"chainlet_name\": \"<string>\",\n \"autoscaling_settings\": {\n \"min_replica\": 0,\n \"max_replica\": 7,\n \"autoscaling_window\": 600,\n \"scale_down_delay\": 120,\n \"concurrency_target\": 2,\n \"target_utilization_percentage\": 70,\n \"target_in_flight_tokens\": 40000,\n \"max_scale_down_rate\": 20\n }\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"updates\": [\n {\n \"chainlet_name\": \"<string>\",\n \"autoscaling_settings\": {\n \"min_replica\": 0,\n \"max_replica\": 7,\n \"autoscaling_window\": 600,\n \"scale_down_delay\": 120,\n \"concurrency_target\": 2,\n \"target_utilization_percentage\": 70,\n \"target_in_flight_tokens\": 40000,\n \"max_scale_down_rate\": 20\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baseten.co/v1/chains/{chain_id}/environments/{env_name}/chainlet_settings/autoscaling_settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"updates\": [\n {\n \"chainlet_name\": \"<string>\",\n \"autoscaling_settings\": {\n \"min_replica\": 0,\n \"max_replica\": 7,\n \"autoscaling_window\": 600,\n \"scale_down_delay\": 120,\n \"concurrency_target\": 2,\n \"target_utilization_percentage\": 70,\n \"target_in_flight_tokens\": 40000,\n \"max_scale_down_rate\": 20\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>"
}