curl --request PATCH \
--url https://api.akua.dev/v1/compute_configs/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'if-match: <if-match>' \
--data '
{
"name": "<string>",
"provider_config": {
"region": "<string>",
"image": "<string>",
"machine_type_filter": "<string>"
},
"credential_scope": {
"kind": "system"
}
}
'import requests
url = "https://api.akua.dev/v1/compute_configs/{id}"
payload = {
"name": "<string>",
"provider_config": {
"region": "<string>",
"image": "<string>",
"machine_type_filter": "<string>"
},
"credential_scope": { "kind": "system" }
}
headers = {
"if-match": "<if-match>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'if-match': '<if-match>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
provider_config: {region: '<string>', image: '<string>', machine_type_filter: '<string>'},
credential_scope: {kind: 'system'}
})
};
fetch('https://api.akua.dev/v1/compute_configs/{id}', 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.akua.dev/v1/compute_configs/{id}",
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([
'name' => '<string>',
'provider_config' => [
'region' => '<string>',
'image' => '<string>',
'machine_type_filter' => '<string>'
],
'credential_scope' => [
'kind' => 'system'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"if-match: <if-match>"
],
]);
$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.akua.dev/v1/compute_configs/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"provider_config\": {\n \"region\": \"<string>\",\n \"image\": \"<string>\",\n \"machine_type_filter\": \"<string>\"\n },\n \"credential_scope\": {\n \"kind\": \"system\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("if-match", "<if-match>")
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.akua.dev/v1/compute_configs/{id}")
.header("if-match", "<if-match>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"provider_config\": {\n \"region\": \"<string>\",\n \"image\": \"<string>\",\n \"machine_type_filter\": \"<string>\"\n },\n \"credential_scope\": {\n \"kind\": \"system\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.akua.dev/v1/compute_configs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["if-match"] = '<if-match>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"provider_config\": {\n \"region\": \"<string>\",\n \"image\": \"<string>\",\n \"machine_type_filter\": \"<string>\"\n },\n \"credential_scope\": {\n \"kind\": \"system\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"workspace_id": "<string>",
"name": "<string>",
"provider": "hcloud",
"provider_config": {
"region": "<string>",
"image": "<string>",
"machine_type_filter": "<string>"
},
"credential_scope": {
"kind": "system"
},
"created_at": 1,
"updated_at": 1,
"etag": "<string>"
}{
"success": false,
"errors": [
{
"code": 7002,
"message": "Resource not found",
"path": [
"body",
"name"
],
"metadata": {}
}
],
"result": {}
}{
"success": false,
"errors": [
{
"code": 7002,
"message": "Resource not found",
"path": [
"body",
"name"
],
"metadata": {}
}
],
"result": {}
}{
"success": false,
"errors": [
{
"code": 7002,
"message": "Resource not found",
"path": [
"body",
"name"
],
"metadata": {}
}
],
"result": {}
}{
"success": false,
"errors": [
{
"code": 7002,
"message": "Resource not found",
"path": [
"body",
"name"
],
"metadata": {}
}
],
"result": {}
}Update compute config
Updates mutable fields of a compute config.
curl --request PATCH \
--url https://api.akua.dev/v1/compute_configs/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'if-match: <if-match>' \
--data '
{
"name": "<string>",
"provider_config": {
"region": "<string>",
"image": "<string>",
"machine_type_filter": "<string>"
},
"credential_scope": {
"kind": "system"
}
}
'import requests
url = "https://api.akua.dev/v1/compute_configs/{id}"
payload = {
"name": "<string>",
"provider_config": {
"region": "<string>",
"image": "<string>",
"machine_type_filter": "<string>"
},
"credential_scope": { "kind": "system" }
}
headers = {
"if-match": "<if-match>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'if-match': '<if-match>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
provider_config: {region: '<string>', image: '<string>', machine_type_filter: '<string>'},
credential_scope: {kind: 'system'}
})
};
fetch('https://api.akua.dev/v1/compute_configs/{id}', 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.akua.dev/v1/compute_configs/{id}",
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([
'name' => '<string>',
'provider_config' => [
'region' => '<string>',
'image' => '<string>',
'machine_type_filter' => '<string>'
],
'credential_scope' => [
'kind' => 'system'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"if-match: <if-match>"
],
]);
$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.akua.dev/v1/compute_configs/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"provider_config\": {\n \"region\": \"<string>\",\n \"image\": \"<string>\",\n \"machine_type_filter\": \"<string>\"\n },\n \"credential_scope\": {\n \"kind\": \"system\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("if-match", "<if-match>")
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.akua.dev/v1/compute_configs/{id}")
.header("if-match", "<if-match>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"provider_config\": {\n \"region\": \"<string>\",\n \"image\": \"<string>\",\n \"machine_type_filter\": \"<string>\"\n },\n \"credential_scope\": {\n \"kind\": \"system\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.akua.dev/v1/compute_configs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["if-match"] = '<if-match>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"provider_config\": {\n \"region\": \"<string>\",\n \"image\": \"<string>\",\n \"machine_type_filter\": \"<string>\"\n },\n \"credential_scope\": {\n \"kind\": \"system\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"workspace_id": "<string>",
"name": "<string>",
"provider": "hcloud",
"provider_config": {
"region": "<string>",
"image": "<string>",
"machine_type_filter": "<string>"
},
"credential_scope": {
"kind": "system"
},
"created_at": 1,
"updated_at": 1,
"etag": "<string>"
}{
"success": false,
"errors": [
{
"code": 7002,
"message": "Resource not found",
"path": [
"body",
"name"
],
"metadata": {}
}
],
"result": {}
}{
"success": false,
"errors": [
{
"code": 7002,
"message": "Resource not found",
"path": [
"body",
"name"
],
"metadata": {}
}
],
"result": {}
}{
"success": false,
"errors": [
{
"code": 7002,
"message": "Resource not found",
"path": [
"body",
"name"
],
"metadata": {}
}
],
"result": {}
}{
"success": false,
"errors": [
{
"code": 7002,
"message": "Resource not found",
"path": [
"body",
"name"
],
"metadata": {}
}
],
"result": {}
}Authorizations
workspace API token (sk_akua_...) or OAuth2 JWT. Create tokens at https://akua.dev/developers/api-tokens
Headers
Optional workspace/scope context for the request. Carries a single workspace wire id (ws_…) today. Only needed for broad tokens — a workspace-owned token implies its workspace.
1 - 53"ws_j572abc123def456"
Optional caller-supplied idempotency key. Any non-empty key up to 64 characters is accepted. Endpoint-specific documentation describes how the key is used.
1 - 64"create-prod-2026-05-07"
The etag of the resource version the client last read. Required on writes when the resource exposes an etag field. Mismatch returns 409 ABORTED with the current etag in the error metadata.
1 - 256"42"
Path Parameters
1 - 54Body
Response
Compute config updated
1 - 541 - 531 - 100hcloud Show child attributes
Show child attributes
- Option 1
- Option 2
Show child attributes
Show child attributes
Unix timestamp (seconds)
x >= 0Unix timestamp (seconds)
x >= 0