curl --request GET \
--url https://api.akua.dev/v1/clusters/{id}/capabilities \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.akua.dev/v1/clusters/{id}/capabilities"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.akua.dev/v1/clusters/{id}/capabilities', 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/clusters/{id}/capabilities",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.akua.dev/v1/clusters/{id}/capabilities"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.akua.dev/v1/clusters/{id}/capabilities")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.akua.dev/v1/clusters/{id}/capabilities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"catalog": {
"required_baseline": [
"cilium-cni"
],
"missing": [
"cilium-cni"
]
},
"api_groups": [
"<string>"
],
"storage_classes": [
{
"name": "<string>",
"provisioner": "<string>",
"is_default": true,
"reclaim_policy": "<string>",
"volume_binding_mode": "<string>"
}
],
"gateway_classes": [
"<string>"
],
"gateways": [
{
"namespace": "<string>",
"name": "<string>",
"gateway_class_name": "<string>",
"listeners": [
{
"name": "<string>",
"protocol": "<string>",
"port": 123,
"hostname": "<string>"
}
],
"addresses": [
{
"type": "<string>",
"value": "<string>"
}
],
"status": "Ready",
"status_message": "<string>"
}
],
"ingress_classes": [
"<string>"
],
"cloudflare_tunnel_connectors": [
{
"namespace": "<string>",
"name": "<string>",
"ready": true,
"desired_replicas": 1,
"available_replicas": 1,
"status_message": "<string>"
}
],
"nodes": [
{
"name": "<string>",
"roles": [
"<string>"
],
"version": "<string>",
"cpu_capacity": "<string>",
"memory_capacity": "<string>",
"os_image": "<string>",
"architecture": "<string>",
"ready": true,
"worker_capacity": true,
"schedulable": true,
"addresses": [
{
"type": "<string>",
"value": "<string>"
}
],
"status_message": "<string>",
"created_at": "<string>",
"operating_system": "<string>"
}
],
"freshness": {
"state": "missing",
"max_age_seconds": 1,
"age_seconds": null,
"last_successful_at": null,
"last_refresh_status": "FAILED",
"last_refresh_error": "<string>"
},
"default_gateway": {
"namespace": "<string>",
"name": "<string>"
}
}{
"_tag": "Unauthorized",
"success": false,
"errors": [],
"result": {}
}{
"_tag": "Forbidden",
"success": false,
"errors": [],
"result": {}
}{
"_tag": "NotFound",
"success": false,
"errors": [],
"result": {}
}Get cluster capabilities
Gets the last observed Kubernetes capability snapshot for a cluster.
curl --request GET \
--url https://api.akua.dev/v1/clusters/{id}/capabilities \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.akua.dev/v1/clusters/{id}/capabilities"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.akua.dev/v1/clusters/{id}/capabilities', 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/clusters/{id}/capabilities",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.akua.dev/v1/clusters/{id}/capabilities"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.akua.dev/v1/clusters/{id}/capabilities")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.akua.dev/v1/clusters/{id}/capabilities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"catalog": {
"required_baseline": [
"cilium-cni"
],
"missing": [
"cilium-cni"
]
},
"api_groups": [
"<string>"
],
"storage_classes": [
{
"name": "<string>",
"provisioner": "<string>",
"is_default": true,
"reclaim_policy": "<string>",
"volume_binding_mode": "<string>"
}
],
"gateway_classes": [
"<string>"
],
"gateways": [
{
"namespace": "<string>",
"name": "<string>",
"gateway_class_name": "<string>",
"listeners": [
{
"name": "<string>",
"protocol": "<string>",
"port": 123,
"hostname": "<string>"
}
],
"addresses": [
{
"type": "<string>",
"value": "<string>"
}
],
"status": "Ready",
"status_message": "<string>"
}
],
"ingress_classes": [
"<string>"
],
"cloudflare_tunnel_connectors": [
{
"namespace": "<string>",
"name": "<string>",
"ready": true,
"desired_replicas": 1,
"available_replicas": 1,
"status_message": "<string>"
}
],
"nodes": [
{
"name": "<string>",
"roles": [
"<string>"
],
"version": "<string>",
"cpu_capacity": "<string>",
"memory_capacity": "<string>",
"os_image": "<string>",
"architecture": "<string>",
"ready": true,
"worker_capacity": true,
"schedulable": true,
"addresses": [
{
"type": "<string>",
"value": "<string>"
}
],
"status_message": "<string>",
"created_at": "<string>",
"operating_system": "<string>"
}
],
"freshness": {
"state": "missing",
"max_age_seconds": 1,
"age_seconds": null,
"last_successful_at": null,
"last_refresh_status": "FAILED",
"last_refresh_error": "<string>"
},
"default_gateway": {
"namespace": "<string>",
"name": "<string>"
}
}{
"_tag": "Unauthorized",
"success": false,
"errors": [],
"result": {}
}{
"_tag": "Forbidden",
"success": false,
"errors": [],
"result": {}
}{
"_tag": "NotFound",
"success": false,
"errors": [],
"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"
Path Parameters
Cluster ID.
1 - 54Response
Cluster capabilities
Managed Cluster catalog report derived from platform-owned Install package metadata. Null for imported Clusters. Required baseline names are separate from all compatible catalog names with no Install; Install presence does not imply readiness or health.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
- Option 1
- Option 2
Show child attributes
Show child attributes
Show child attributes
Show child attributes