Update model environment
Asynchronously updates an environment’s settings. Poll the GET endpoint for the applied state.
curl --request PATCH \
--url https://api.baseten.co/v1/models/{model_id}/environments/{env_name} \
--header "Authorization: Bearer $BASETEN_API_KEY" \
--data '{
"autoscaling_settings": {
"autoscaling_window": 800,
"concurrency_target": 3,
"max_replica": 2,
"max_scale_down_rate": null,
"min_replica": 1,
"scale_down_delay": 60,
"target_in_flight_tokens": null,
"target_utilization_percentage": null
},
"promotion_settings": {
"promotion_cleanup_strategy": null,
"ramp_up_duration_seconds": 600,
"ramp_up_while_promoting": true,
"redeploy_on_promotion": true,
"rolling_deploy": null,
"rolling_deploy_config": null
},
"autoscaling_schedule_settings": {
"schedules": [
{
"autoscaling_settings": {
"autoscaling_window": null,
"concurrency_target": null,
"max_replica": 8,
"max_scale_down_rate": null,
"min_replica": 2,
"scale_down_delay": null,
"target_in_flight_tokens": null,
"target_utilization_percentage": null
},
"cadence": "DAILY",
"enabled": true,
"end_hour": 10,
"end_minute": 0,
"name": "weekday-peak",
"start_hour": 8,
"start_minute": 0,
"weekdays": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
]
}
],
"timezone": "America/Los_Angeles"
},
"request_backpressure_settings": {
"policy": "REJECT_ON_FULL"
}
}'import requests
import os
API_KEY = os.environ.get("BASETEN_API_KEY", "<YOUR_API_KEY>")
url = "https://api.baseten.co/v1/models/{model_id}/environments/{env_name}"
headers = {"Authorization": f"Bearer {API_KEY}"}
response = requests.request(
"PATCH",
url,
headers=headers,
json={'autoscaling_settings': {'autoscaling_window': 800, 'concurrency_target': 3, 'max_replica': 2, 'max_scale_down_rate': None, 'min_replica': 1, 'scale_down_delay': 60, 'target_in_flight_tokens': None, 'target_utilization_percentage': None}, 'promotion_settings': {'promotion_cleanup_strategy': None, 'ramp_up_duration_seconds': 600, 'ramp_up_while_promoting': True, 'redeploy_on_promotion': True, 'rolling_deploy': None, 'rolling_deploy_config': None}, 'autoscaling_schedule_settings': {'schedules': [{'autoscaling_settings': {'autoscaling_window': None, 'concurrency_target': None, 'max_replica': 8, 'max_scale_down_rate': None, 'min_replica': 2, 'scale_down_delay': None, 'target_in_flight_tokens': None, 'target_utilization_percentage': None}, 'cadence': 'DAILY', 'enabled': True, 'end_hour': 10, 'end_minute': 0, 'name': 'weekday-peak', 'start_hour': 8, 'start_minute': 0, 'weekdays': ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY']}], 'timezone': 'America/Los_Angeles'}, 'request_backpressure_settings': {'policy': 'REJECT_ON_FULL'}}
)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
autoscaling_settings: {
autoscaling_window: 800,
concurrency_target: 3,
max_replica: 2,
max_scale_down_rate: null,
min_replica: 1,
scale_down_delay: 60,
target_in_flight_tokens: null,
target_utilization_percentage: null
},
promotion_settings: {
promotion_cleanup_strategy: null,
ramp_up_duration_seconds: 600,
ramp_up_while_promoting: true,
redeploy_on_promotion: true,
rolling_deploy: null,
rolling_deploy_config: null
},
autoscaling_schedule_settings: {
schedules: [
{
autoscaling_settings: {
autoscaling_window: null,
concurrency_target: null,
max_replica: 8,
max_scale_down_rate: null,
min_replica: 2,
scale_down_delay: null,
target_in_flight_tokens: null,
target_utilization_percentage: null
},
cadence: 'DAILY',
enabled: true,
end_hour: 10,
end_minute: 0,
name: 'weekday-peak',
start_hour: 8,
start_minute: 0,
weekdays: ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY']
}
],
timezone: 'America/Los_Angeles'
},
request_backpressure_settings: {policy: 'REJECT_ON_FULL'}
})
};
fetch('https://api.baseten.co/v1/models/{model_id}/environments/{env_name}', 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/models/{model_id}/environments/{env_name}",
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([
'autoscaling_settings' => [
'autoscaling_window' => 800,
'concurrency_target' => 3,
'max_replica' => 2,
'max_scale_down_rate' => null,
'min_replica' => 1,
'scale_down_delay' => 60,
'target_in_flight_tokens' => null,
'target_utilization_percentage' => null
],
'promotion_settings' => [
'promotion_cleanup_strategy' => null,
'ramp_up_duration_seconds' => 600,
'ramp_up_while_promoting' => true,
'redeploy_on_promotion' => true,
'rolling_deploy' => null,
'rolling_deploy_config' => null
],
'autoscaling_schedule_settings' => [
'schedules' => [
[
'autoscaling_settings' => [
'autoscaling_window' => null,
'concurrency_target' => null,
'max_replica' => 8,
'max_scale_down_rate' => null,
'min_replica' => 2,
'scale_down_delay' => null,
'target_in_flight_tokens' => null,
'target_utilization_percentage' => null
],
'cadence' => 'DAILY',
'enabled' => true,
'end_hour' => 10,
'end_minute' => 0,
'name' => 'weekday-peak',
'start_hour' => 8,
'start_minute' => 0,
'weekdays' => [
'MONDAY',
'TUESDAY',
'WEDNESDAY',
'THURSDAY',
'FRIDAY'
]
]
],
'timezone' => 'America/Los_Angeles'
],
'request_backpressure_settings' => [
'policy' => 'REJECT_ON_FULL'
]
]),
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/models/{model_id}/environments/{env_name}"
payload := strings.NewReader("{\n \"autoscaling_settings\": {\n \"autoscaling_window\": 800,\n \"concurrency_target\": 3,\n \"max_replica\": 2,\n \"max_scale_down_rate\": null,\n \"min_replica\": 1,\n \"scale_down_delay\": 60,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"promotion_settings\": {\n \"promotion_cleanup_strategy\": null,\n \"ramp_up_duration_seconds\": 600,\n \"ramp_up_while_promoting\": true,\n \"redeploy_on_promotion\": true,\n \"rolling_deploy\": null,\n \"rolling_deploy_config\": null\n },\n \"autoscaling_schedule_settings\": {\n \"schedules\": [\n {\n \"autoscaling_settings\": {\n \"autoscaling_window\": null,\n \"concurrency_target\": null,\n \"max_replica\": 8,\n \"max_scale_down_rate\": null,\n \"min_replica\": 2,\n \"scale_down_delay\": null,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"cadence\": \"DAILY\",\n \"enabled\": true,\n \"end_hour\": 10,\n \"end_minute\": 0,\n \"name\": \"weekday-peak\",\n \"start_hour\": 8,\n \"start_minute\": 0,\n \"weekdays\": [\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\"\n ]\n }\n ],\n \"timezone\": \"America/Los_Angeles\"\n },\n \"request_backpressure_settings\": {\n \"policy\": \"REJECT_ON_FULL\"\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/models/{model_id}/environments/{env_name}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"autoscaling_settings\": {\n \"autoscaling_window\": 800,\n \"concurrency_target\": 3,\n \"max_replica\": 2,\n \"max_scale_down_rate\": null,\n \"min_replica\": 1,\n \"scale_down_delay\": 60,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"promotion_settings\": {\n \"promotion_cleanup_strategy\": null,\n \"ramp_up_duration_seconds\": 600,\n \"ramp_up_while_promoting\": true,\n \"redeploy_on_promotion\": true,\n \"rolling_deploy\": null,\n \"rolling_deploy_config\": null\n },\n \"autoscaling_schedule_settings\": {\n \"schedules\": [\n {\n \"autoscaling_settings\": {\n \"autoscaling_window\": null,\n \"concurrency_target\": null,\n \"max_replica\": 8,\n \"max_scale_down_rate\": null,\n \"min_replica\": 2,\n \"scale_down_delay\": null,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"cadence\": \"DAILY\",\n \"enabled\": true,\n \"end_hour\": 10,\n \"end_minute\": 0,\n \"name\": \"weekday-peak\",\n \"start_hour\": 8,\n \"start_minute\": 0,\n \"weekdays\": [\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\"\n ]\n }\n ],\n \"timezone\": \"America/Los_Angeles\"\n },\n \"request_backpressure_settings\": {\n \"policy\": \"REJECT_ON_FULL\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baseten.co/v1/models/{model_id}/environments/{env_name}")
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 \"autoscaling_settings\": {\n \"autoscaling_window\": 800,\n \"concurrency_target\": 3,\n \"max_replica\": 2,\n \"max_scale_down_rate\": null,\n \"min_replica\": 1,\n \"scale_down_delay\": 60,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"promotion_settings\": {\n \"promotion_cleanup_strategy\": null,\n \"ramp_up_duration_seconds\": 600,\n \"ramp_up_while_promoting\": true,\n \"redeploy_on_promotion\": true,\n \"rolling_deploy\": null,\n \"rolling_deploy_config\": null\n },\n \"autoscaling_schedule_settings\": {\n \"schedules\": [\n {\n \"autoscaling_settings\": {\n \"autoscaling_window\": null,\n \"concurrency_target\": null,\n \"max_replica\": 8,\n \"max_scale_down_rate\": null,\n \"min_replica\": 2,\n \"scale_down_delay\": null,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"cadence\": \"DAILY\",\n \"enabled\": true,\n \"end_hour\": 10,\n \"end_minute\": 0,\n \"name\": \"weekday-peak\",\n \"start_hour\": 8,\n \"start_minute\": 0,\n \"weekdays\": [\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\"\n ]\n }\n ],\n \"timezone\": \"America/Los_Angeles\"\n },\n \"request_backpressure_settings\": {\n \"policy\": \"REJECT_ON_FULL\"\n }\n}"
response = http.request(request)
puts response.read_body{
"environment": {
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"model_id": "<string>",
"current_deployment": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"model_id": "<string>",
"is_production": true,
"is_development": true,
"status": "BUILDING",
"active_replica_count": 123,
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
},
"instance_type_name": "<string>",
"environment": "<string>",
"request_backpressure_settings": {
"policy": "QUEUE_ON_FULL"
},
"labels": {},
"region": {
"slug": "us",
"display_name": "United States"
}
},
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
},
"promotion_settings": {
"redeploy_on_promotion": true,
"rolling_deploy": true,
"promotion_cleanup_strategy": "SCALE_TO_ZERO",
"rolling_deploy_config": {
"rolling_deploy_strategy": "REPLICA",
"max_surge_percent": 25,
"max_unavailable_percent": 10,
"stabilization_time_seconds": 300,
"replica_overhead_percent": 0
},
"ramp_up_while_promoting": true,
"ramp_up_duration_seconds": 600
},
"instance_type": {
"id": "<string>",
"name": "<string>",
"memory_limit_mib": 123,
"millicpu_limit": 123,
"gpu_count": 123,
"gpu_type": "<string>",
"gpu_memory_limit_mib": 123
},
"request_backpressure_settings": {
"policy": "QUEUE_ON_FULL"
},
"candidate_deployment": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"model_id": "<string>",
"is_production": true,
"is_development": true,
"status": "BUILDING",
"active_replica_count": 123,
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
},
"instance_type_name": "<string>",
"environment": "<string>",
"request_backpressure_settings": {
"policy": "QUEUE_ON_FULL"
},
"labels": {},
"region": {
"slug": "us",
"display_name": "United States"
}
},
"in_progress_promotion": {
"status": "RELEASING",
"percent_traffic_to_new_version": 123,
"error_message": "<string>",
"rolling_deploy": true
},
"autoscaling_schedules": {
"schedules": [
{
"id": "<string>",
"name": "<string>",
"enabled": true,
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
},
"cadence": "DAILY",
"weekdays": [
"SUNDAY"
],
"start_minute": 123,
"end_minute": 123,
"start_hour": 123,
"end_hour": 123
}
],
"applied_state": {
"schedule_id": "<string>",
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
}
},
"timezone": "<string>"
}
},
"status": "ACCEPTED",
"message": "<string>"
}autoscaling_schedule_settings to manage autoscaling schedules: recurring daily or hourly windows, and one-time windows for planned events like launches and load tests.Authorizations
Send Authorization: Bearer <api_key>. The legacy Authorization: Api-Key <api_key> scheme is also accepted.
Body
A request to update an environment.
Autoscaling settings for the environment
Show child attributes
Show child attributes
{
"autoscaling_window": 800,
"concurrency_target": 3,
"max_replica": 2,
"max_scale_down_rate": null,
"min_replica": 1,
"scale_down_delay": 60,
"target_in_flight_tokens": null,
"target_utilization_percentage": null
}
Promotion settings for the environment
Show child attributes
Show child attributes
{
"promotion_cleanup_strategy": null,
"ramp_up_duration_seconds": 600,
"ramp_up_while_promoting": true,
"redeploy_on_promotion": true,
"rolling_deploy": null,
"rolling_deploy_config": null
}
Partial autoscaling schedule collection update. Omitted collection fields and existing schedules are unchanged; each submitted schedule is a complete create or replacement.
Show child attributes
Show child attributes
{
"schedules": [
{
"autoscaling_settings": {
"autoscaling_window": null,
"concurrency_target": null,
"max_replica": 8,
"max_scale_down_rate": null,
"min_replica": 2,
"scale_down_delay": null,
"target_in_flight_tokens": null,
"target_utilization_percentage": null
},
"cadence": "DAILY",
"enabled": true,
"end_hour": 10,
"end_minute": 0,
"name": "weekday-peak",
"start_hour": 8,
"start_minute": 0,
"weekdays": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
]
}
],
"timezone": "America/Los_Angeles"
}
Request backpressure settings for the environment.
Show child attributes
Show child attributes
{ "policy": "REJECT_ON_FULL" }
Response
The response to a request to update an environment's settings.
The environment after the update, matching the shape returned by GET.
Show child attributes
Show child attributes
Deprecated. Kept for legacy autoscaling-only update operation behavior.
ACCEPTED, QUEUED, UNCHANGED Deprecated. Kept for legacy autoscaling-only update operation behavior.
Was this page helpful?
curl --request PATCH \
--url https://api.baseten.co/v1/models/{model_id}/environments/{env_name} \
--header "Authorization: Bearer $BASETEN_API_KEY" \
--data '{
"autoscaling_settings": {
"autoscaling_window": 800,
"concurrency_target": 3,
"max_replica": 2,
"max_scale_down_rate": null,
"min_replica": 1,
"scale_down_delay": 60,
"target_in_flight_tokens": null,
"target_utilization_percentage": null
},
"promotion_settings": {
"promotion_cleanup_strategy": null,
"ramp_up_duration_seconds": 600,
"ramp_up_while_promoting": true,
"redeploy_on_promotion": true,
"rolling_deploy": null,
"rolling_deploy_config": null
},
"autoscaling_schedule_settings": {
"schedules": [
{
"autoscaling_settings": {
"autoscaling_window": null,
"concurrency_target": null,
"max_replica": 8,
"max_scale_down_rate": null,
"min_replica": 2,
"scale_down_delay": null,
"target_in_flight_tokens": null,
"target_utilization_percentage": null
},
"cadence": "DAILY",
"enabled": true,
"end_hour": 10,
"end_minute": 0,
"name": "weekday-peak",
"start_hour": 8,
"start_minute": 0,
"weekdays": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
]
}
],
"timezone": "America/Los_Angeles"
},
"request_backpressure_settings": {
"policy": "REJECT_ON_FULL"
}
}'import requests
import os
API_KEY = os.environ.get("BASETEN_API_KEY", "<YOUR_API_KEY>")
url = "https://api.baseten.co/v1/models/{model_id}/environments/{env_name}"
headers = {"Authorization": f"Bearer {API_KEY}"}
response = requests.request(
"PATCH",
url,
headers=headers,
json={'autoscaling_settings': {'autoscaling_window': 800, 'concurrency_target': 3, 'max_replica': 2, 'max_scale_down_rate': None, 'min_replica': 1, 'scale_down_delay': 60, 'target_in_flight_tokens': None, 'target_utilization_percentage': None}, 'promotion_settings': {'promotion_cleanup_strategy': None, 'ramp_up_duration_seconds': 600, 'ramp_up_while_promoting': True, 'redeploy_on_promotion': True, 'rolling_deploy': None, 'rolling_deploy_config': None}, 'autoscaling_schedule_settings': {'schedules': [{'autoscaling_settings': {'autoscaling_window': None, 'concurrency_target': None, 'max_replica': 8, 'max_scale_down_rate': None, 'min_replica': 2, 'scale_down_delay': None, 'target_in_flight_tokens': None, 'target_utilization_percentage': None}, 'cadence': 'DAILY', 'enabled': True, 'end_hour': 10, 'end_minute': 0, 'name': 'weekday-peak', 'start_hour': 8, 'start_minute': 0, 'weekdays': ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY']}], 'timezone': 'America/Los_Angeles'}, 'request_backpressure_settings': {'policy': 'REJECT_ON_FULL'}}
)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
autoscaling_settings: {
autoscaling_window: 800,
concurrency_target: 3,
max_replica: 2,
max_scale_down_rate: null,
min_replica: 1,
scale_down_delay: 60,
target_in_flight_tokens: null,
target_utilization_percentage: null
},
promotion_settings: {
promotion_cleanup_strategy: null,
ramp_up_duration_seconds: 600,
ramp_up_while_promoting: true,
redeploy_on_promotion: true,
rolling_deploy: null,
rolling_deploy_config: null
},
autoscaling_schedule_settings: {
schedules: [
{
autoscaling_settings: {
autoscaling_window: null,
concurrency_target: null,
max_replica: 8,
max_scale_down_rate: null,
min_replica: 2,
scale_down_delay: null,
target_in_flight_tokens: null,
target_utilization_percentage: null
},
cadence: 'DAILY',
enabled: true,
end_hour: 10,
end_minute: 0,
name: 'weekday-peak',
start_hour: 8,
start_minute: 0,
weekdays: ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY']
}
],
timezone: 'America/Los_Angeles'
},
request_backpressure_settings: {policy: 'REJECT_ON_FULL'}
})
};
fetch('https://api.baseten.co/v1/models/{model_id}/environments/{env_name}', 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/models/{model_id}/environments/{env_name}",
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([
'autoscaling_settings' => [
'autoscaling_window' => 800,
'concurrency_target' => 3,
'max_replica' => 2,
'max_scale_down_rate' => null,
'min_replica' => 1,
'scale_down_delay' => 60,
'target_in_flight_tokens' => null,
'target_utilization_percentage' => null
],
'promotion_settings' => [
'promotion_cleanup_strategy' => null,
'ramp_up_duration_seconds' => 600,
'ramp_up_while_promoting' => true,
'redeploy_on_promotion' => true,
'rolling_deploy' => null,
'rolling_deploy_config' => null
],
'autoscaling_schedule_settings' => [
'schedules' => [
[
'autoscaling_settings' => [
'autoscaling_window' => null,
'concurrency_target' => null,
'max_replica' => 8,
'max_scale_down_rate' => null,
'min_replica' => 2,
'scale_down_delay' => null,
'target_in_flight_tokens' => null,
'target_utilization_percentage' => null
],
'cadence' => 'DAILY',
'enabled' => true,
'end_hour' => 10,
'end_minute' => 0,
'name' => 'weekday-peak',
'start_hour' => 8,
'start_minute' => 0,
'weekdays' => [
'MONDAY',
'TUESDAY',
'WEDNESDAY',
'THURSDAY',
'FRIDAY'
]
]
],
'timezone' => 'America/Los_Angeles'
],
'request_backpressure_settings' => [
'policy' => 'REJECT_ON_FULL'
]
]),
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/models/{model_id}/environments/{env_name}"
payload := strings.NewReader("{\n \"autoscaling_settings\": {\n \"autoscaling_window\": 800,\n \"concurrency_target\": 3,\n \"max_replica\": 2,\n \"max_scale_down_rate\": null,\n \"min_replica\": 1,\n \"scale_down_delay\": 60,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"promotion_settings\": {\n \"promotion_cleanup_strategy\": null,\n \"ramp_up_duration_seconds\": 600,\n \"ramp_up_while_promoting\": true,\n \"redeploy_on_promotion\": true,\n \"rolling_deploy\": null,\n \"rolling_deploy_config\": null\n },\n \"autoscaling_schedule_settings\": {\n \"schedules\": [\n {\n \"autoscaling_settings\": {\n \"autoscaling_window\": null,\n \"concurrency_target\": null,\n \"max_replica\": 8,\n \"max_scale_down_rate\": null,\n \"min_replica\": 2,\n \"scale_down_delay\": null,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"cadence\": \"DAILY\",\n \"enabled\": true,\n \"end_hour\": 10,\n \"end_minute\": 0,\n \"name\": \"weekday-peak\",\n \"start_hour\": 8,\n \"start_minute\": 0,\n \"weekdays\": [\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\"\n ]\n }\n ],\n \"timezone\": \"America/Los_Angeles\"\n },\n \"request_backpressure_settings\": {\n \"policy\": \"REJECT_ON_FULL\"\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/models/{model_id}/environments/{env_name}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"autoscaling_settings\": {\n \"autoscaling_window\": 800,\n \"concurrency_target\": 3,\n \"max_replica\": 2,\n \"max_scale_down_rate\": null,\n \"min_replica\": 1,\n \"scale_down_delay\": 60,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"promotion_settings\": {\n \"promotion_cleanup_strategy\": null,\n \"ramp_up_duration_seconds\": 600,\n \"ramp_up_while_promoting\": true,\n \"redeploy_on_promotion\": true,\n \"rolling_deploy\": null,\n \"rolling_deploy_config\": null\n },\n \"autoscaling_schedule_settings\": {\n \"schedules\": [\n {\n \"autoscaling_settings\": {\n \"autoscaling_window\": null,\n \"concurrency_target\": null,\n \"max_replica\": 8,\n \"max_scale_down_rate\": null,\n \"min_replica\": 2,\n \"scale_down_delay\": null,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"cadence\": \"DAILY\",\n \"enabled\": true,\n \"end_hour\": 10,\n \"end_minute\": 0,\n \"name\": \"weekday-peak\",\n \"start_hour\": 8,\n \"start_minute\": 0,\n \"weekdays\": [\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\"\n ]\n }\n ],\n \"timezone\": \"America/Los_Angeles\"\n },\n \"request_backpressure_settings\": {\n \"policy\": \"REJECT_ON_FULL\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baseten.co/v1/models/{model_id}/environments/{env_name}")
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 \"autoscaling_settings\": {\n \"autoscaling_window\": 800,\n \"concurrency_target\": 3,\n \"max_replica\": 2,\n \"max_scale_down_rate\": null,\n \"min_replica\": 1,\n \"scale_down_delay\": 60,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"promotion_settings\": {\n \"promotion_cleanup_strategy\": null,\n \"ramp_up_duration_seconds\": 600,\n \"ramp_up_while_promoting\": true,\n \"redeploy_on_promotion\": true,\n \"rolling_deploy\": null,\n \"rolling_deploy_config\": null\n },\n \"autoscaling_schedule_settings\": {\n \"schedules\": [\n {\n \"autoscaling_settings\": {\n \"autoscaling_window\": null,\n \"concurrency_target\": null,\n \"max_replica\": 8,\n \"max_scale_down_rate\": null,\n \"min_replica\": 2,\n \"scale_down_delay\": null,\n \"target_in_flight_tokens\": null,\n \"target_utilization_percentage\": null\n },\n \"cadence\": \"DAILY\",\n \"enabled\": true,\n \"end_hour\": 10,\n \"end_minute\": 0,\n \"name\": \"weekday-peak\",\n \"start_hour\": 8,\n \"start_minute\": 0,\n \"weekdays\": [\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\"\n ]\n }\n ],\n \"timezone\": \"America/Los_Angeles\"\n },\n \"request_backpressure_settings\": {\n \"policy\": \"REJECT_ON_FULL\"\n }\n}"
response = http.request(request)
puts response.read_body{
"environment": {
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"model_id": "<string>",
"current_deployment": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"model_id": "<string>",
"is_production": true,
"is_development": true,
"status": "BUILDING",
"active_replica_count": 123,
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
},
"instance_type_name": "<string>",
"environment": "<string>",
"request_backpressure_settings": {
"policy": "QUEUE_ON_FULL"
},
"labels": {},
"region": {
"slug": "us",
"display_name": "United States"
}
},
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
},
"promotion_settings": {
"redeploy_on_promotion": true,
"rolling_deploy": true,
"promotion_cleanup_strategy": "SCALE_TO_ZERO",
"rolling_deploy_config": {
"rolling_deploy_strategy": "REPLICA",
"max_surge_percent": 25,
"max_unavailable_percent": 10,
"stabilization_time_seconds": 300,
"replica_overhead_percent": 0
},
"ramp_up_while_promoting": true,
"ramp_up_duration_seconds": 600
},
"instance_type": {
"id": "<string>",
"name": "<string>",
"memory_limit_mib": 123,
"millicpu_limit": 123,
"gpu_count": 123,
"gpu_type": "<string>",
"gpu_memory_limit_mib": 123
},
"request_backpressure_settings": {
"policy": "QUEUE_ON_FULL"
},
"candidate_deployment": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"model_id": "<string>",
"is_production": true,
"is_development": true,
"status": "BUILDING",
"active_replica_count": 123,
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
},
"instance_type_name": "<string>",
"environment": "<string>",
"request_backpressure_settings": {
"policy": "QUEUE_ON_FULL"
},
"labels": {},
"region": {
"slug": "us",
"display_name": "United States"
}
},
"in_progress_promotion": {
"status": "RELEASING",
"percent_traffic_to_new_version": 123,
"error_message": "<string>",
"rolling_deploy": true
},
"autoscaling_schedules": {
"schedules": [
{
"id": "<string>",
"name": "<string>",
"enabled": true,
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
},
"cadence": "DAILY",
"weekdays": [
"SUNDAY"
],
"start_minute": 123,
"end_minute": 123,
"start_hour": 123,
"end_hour": 123
}
],
"applied_state": {
"schedule_id": "<string>",
"autoscaling_settings": {
"min_replica": 123,
"max_replica": 123,
"autoscaling_window": 123,
"scale_down_delay": 123,
"concurrency_target": 123,
"target_utilization_percentage": 123,
"target_in_flight_tokens": 123,
"max_scale_down_rate": 123
}
},
"timezone": "<string>"
}
},
"status": "ACCEPTED",
"message": "<string>"
}