curl --request POST \
--url https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"items": [
{
"cluster_id": "<string>",
"databricks_workspace_id": "<string>"
}
],
"enabled": true,
"config": {
"auto_downscale": false,
"max_cluster_size_capping": false
}
}
'import requests
url = "https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings"
payload = {
"items": [
{
"cluster_id": "<string>",
"databricks_workspace_id": "<string>"
}
],
"enabled": True,
"config": {
"auto_downscale": False,
"max_cluster_size_capping": False
}
}
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
items: [{cluster_id: '<string>', databricks_workspace_id: '<string>'}],
enabled: true,
config: {auto_downscale: false, max_cluster_size_capping: false}
})
};
fetch('https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings', 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.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'cluster_id' => '<string>',
'databricks_workspace_id' => '<string>'
]
],
'enabled' => true,
'config' => [
'auto_downscale' => false,
'max_cluster_size_capping' => false
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-tenant-id: <x-tenant-id>"
],
]);
$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.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings"
payload := strings.NewReader("{\n \"items\": [\n {\n \"cluster_id\": \"<string>\",\n \"databricks_workspace_id\": \"<string>\"\n }\n ],\n \"enabled\": true,\n \"config\": {\n \"auto_downscale\": false,\n \"max_cluster_size_capping\": false\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-tenant-id", "<x-tenant-id>")
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.post("https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"cluster_id\": \"<string>\",\n \"databricks_workspace_id\": \"<string>\"\n }\n ],\n \"enabled\": true,\n \"config\": {\n \"auto_downscale\": false,\n \"max_cluster_size_capping\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"cluster_id\": \"<string>\",\n \"databricks_workspace_id\": \"<string>\"\n }\n ],\n \"enabled\": true,\n \"config\": {\n \"auto_downscale\": false,\n \"max_cluster_size_capping\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_id": "<string>",
"cluster_name": "<string>",
"dbx_conn_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parent_workspace_id": "<string>",
"connection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"enabled": true,
"enabled_at": "2023-11-07T05:31:56Z",
"disabled_at": "2023-11-07T05:31:56Z",
"config": {
"auto_downscale": false,
"max_cluster_size_capping": false,
"poll_interval": 30,
"hard_max_workers": 123,
"current_cap": 123,
"min_workers": 123,
"original_max_workers": 123,
"last_committed_max_workers": 123,
"pending_resize_confirmation": {
"target_max": 123,
"revert_value": 123,
"attempts_left": 123
},
"cap_increment_strategy": "double",
"cap_pressure_polls_required": 3,
"cleanup_pending": false
},
"permission_level": "can_manage",
"resource_ineligibility_reason": "fixed_size",
"discovery_error": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"row_count": 123,
"failures": [
{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"index": 123,
"type": "about:blank",
"details": [
{}
]
}
],
"page_token": "<string>"
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}Turn automated savings on or off for Databricks all-purpose clusters
Apply the same automated savings settings to a batch of all-purpose clusters.
Each item is checked on its own. items contains the updated clusters with
their new settings, and failures contains the rejected items. Both are in
request order. A rejected item does not stop the other items. An item is
rejected with not_found when its workspace or its cluster does not exist.
curl --request POST \
--url https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"items": [
{
"cluster_id": "<string>",
"databricks_workspace_id": "<string>"
}
],
"enabled": true,
"config": {
"auto_downscale": false,
"max_cluster_size_capping": false
}
}
'import requests
url = "https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings"
payload = {
"items": [
{
"cluster_id": "<string>",
"databricks_workspace_id": "<string>"
}
],
"enabled": True,
"config": {
"auto_downscale": False,
"max_cluster_size_capping": False
}
}
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
items: [{cluster_id: '<string>', databricks_workspace_id: '<string>'}],
enabled: true,
config: {auto_downscale: false, max_cluster_size_capping: false}
})
};
fetch('https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings', 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.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'cluster_id' => '<string>',
'databricks_workspace_id' => '<string>'
]
],
'enabled' => true,
'config' => [
'auto_downscale' => false,
'max_cluster_size_capping' => false
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-tenant-id: <x-tenant-id>"
],
]);
$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.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings"
payload := strings.NewReader("{\n \"items\": [\n {\n \"cluster_id\": \"<string>\",\n \"databricks_workspace_id\": \"<string>\"\n }\n ],\n \"enabled\": true,\n \"config\": {\n \"auto_downscale\": false,\n \"max_cluster_size_capping\": false\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-tenant-id", "<x-tenant-id>")
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.post("https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"cluster_id\": \"<string>\",\n \"databricks_workspace_id\": \"<string>\"\n }\n ],\n \"enabled\": true,\n \"config\": {\n \"auto_downscale\": false,\n \"max_cluster_size_capping\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.select.dev/v2/databricks-apc-clusters/actions/batch-update-automated-savings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"cluster_id\": \"<string>\",\n \"databricks_workspace_id\": \"<string>\"\n }\n ],\n \"enabled\": true,\n \"config\": {\n \"auto_downscale\": false,\n \"max_cluster_size_capping\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_id": "<string>",
"cluster_name": "<string>",
"dbx_conn_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parent_workspace_id": "<string>",
"connection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"enabled": true,
"enabled_at": "2023-11-07T05:31:56Z",
"disabled_at": "2023-11-07T05:31:56Z",
"config": {
"auto_downscale": false,
"max_cluster_size_capping": false,
"poll_interval": 30,
"hard_max_workers": 123,
"current_cap": 123,
"min_workers": 123,
"original_max_workers": 123,
"last_committed_max_workers": 123,
"pending_resize_confirmation": {
"target_max": 123,
"revert_value": 123,
"attempts_left": 123
},
"cap_increment_strategy": "double",
"cap_pressure_polls_required": 3,
"cleanup_pending": false
},
"permission_level": "can_manage",
"resource_ineligibility_reason": "fixed_size",
"discovery_error": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"row_count": 123,
"failures": [
{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"index": 123,
"type": "about:blank",
"details": [
{}
]
}
],
"page_token": "<string>"
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"code": "<string>",
"retryable": true,
"type": "about:blank",
"details": [
{}
]
}Authorizations
Organization API key (sl_…).
Headers
The organization ID the request is scoped to.
Body
Turn automated savings on or off for a batch of all-purpose clusters.
The clusters to update. Each cluster gets the same settings.
1 - 100 elementsShow child attributes
Show child attributes
True when the request leaves at least one automated savings feature on, false when it turns every feature off. The features themselves change only through config, so send a value that agrees with it.
The features to change. Only the fields you send change. Set auto_downscale or max_cluster_size_capping to turn that feature on or off. Automated savings is on while at least one of the two is on. Omit to keep the current settings.
Show child attributes
Show child attributes
Response
Successful Response
Show child attributes
Show child attributes
The number of applied entries.
The entries that were not applied, in request order. Empty when every entry was applied.
Show child attributes
Show child attributes
Opaque cursor for the next page; empty/absent on the last page.

