curl --request POST \
--url https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"profileConfig": {},
"replaceProfileConfig": false,
"clusterInputs": {},
"componentOutputs": {}
}
'import requests
url = "https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve"
payload = {
"profileConfig": {},
"replaceProfileConfig": False,
"clusterInputs": {},
"componentOutputs": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
profileConfig: {},
replaceProfileConfig: false,
clusterInputs: {},
componentOutputs: {}
})
};
fetch('https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve', 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.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve",
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([
'profileConfig' => [
],
'replaceProfileConfig' => false,
'clusterInputs' => [
],
'componentOutputs' => [
]
]),
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.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve"
payload := strings.NewReader("{\n \"profileConfig\": {},\n \"replaceProfileConfig\": false,\n \"clusterInputs\": {},\n \"componentOutputs\": {}\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"profileConfig\": {},\n \"replaceProfileConfig\": false,\n \"clusterInputs\": {},\n \"componentOutputs\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"profileConfig\": {},\n \"replaceProfileConfig\": false,\n \"clusterInputs\": {},\n \"componentOutputs\": {}\n}"
response = http.request(request)
puts response.read_body{
"clusterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"componentKey": "<string>",
"fields": [
{
"key": "<string>",
"type": "string",
"required": true,
"label": "<string>",
"sensitive": true,
"constraints": {
"allowedValues": [
"<string>"
],
"min": 123,
"max": 123,
"minLength": 123,
"maxLength": 123,
"pattern": "<string>"
},
"defaultValue": "<string>",
"description": "<string>",
"format": "kubernetes-resource-yaml",
"templates": [
{
"id": "<string>",
"label": "<string>",
"value": "<string>"
}
]
}
],
"requirements": [
{
"key": "<string>",
"type": "string",
"required": true,
"label": "<string>",
"sensitive": true,
"constraints": {
"allowedValues": [
"<string>"
],
"min": 123,
"max": 123,
"minLength": 123,
"maxLength": 123,
"pattern": "<string>"
},
"scope": "PLATFORM_PROFILE",
"status": "MISSING",
"defaultValue": "<string>",
"description": "<string>",
"format": "kubernetes-resource-yaml",
"templates": [
{
"id": "<string>",
"label": "<string>",
"value": "<string>"
}
]
}
],
"componentBindings": [
{
"input": "<string>",
"fromComponent": "<string>",
"output": "<string>"
}
],
"violations": [
{
"code": "<string>",
"fieldPath": "<string>",
"message": "<string>"
}
]
}Resolve a platform component configuration of the cluster
Resolves the fields and runtime requirements of a component from the cluster context, its stored platform configuration (the default template release when it has none) and the draft values of the request. This operation is read-only.
curl --request POST \
--url https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"profileConfig": {},
"replaceProfileConfig": false,
"clusterInputs": {},
"componentOutputs": {}
}
'import requests
url = "https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve"
payload = {
"profileConfig": {},
"replaceProfileConfig": False,
"clusterInputs": {},
"componentOutputs": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
profileConfig: {},
replaceProfileConfig: false,
clusterInputs: {},
componentOutputs: {}
})
};
fetch('https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve', 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.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve",
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([
'profileConfig' => [
],
'replaceProfileConfig' => false,
'clusterInputs' => [
],
'componentOutputs' => [
]
]),
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.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve"
payload := strings.NewReader("{\n \"profileConfig\": {},\n \"replaceProfileConfig\": false,\n \"clusterInputs\": {},\n \"componentOutputs\": {}\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"profileConfig\": {},\n \"replaceProfileConfig\": false,\n \"clusterInputs\": {},\n \"componentOutputs\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qovery.com/v1/cluster/{clusterId}/platformConfiguration/component/{componentKey}/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"profileConfig\": {},\n \"replaceProfileConfig\": false,\n \"clusterInputs\": {},\n \"componentOutputs\": {}\n}"
response = http.request(request)
puts response.read_body{
"clusterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"componentKey": "<string>",
"fields": [
{
"key": "<string>",
"type": "string",
"required": true,
"label": "<string>",
"sensitive": true,
"constraints": {
"allowedValues": [
"<string>"
],
"min": 123,
"max": 123,
"minLength": 123,
"maxLength": 123,
"pattern": "<string>"
},
"defaultValue": "<string>",
"description": "<string>",
"format": "kubernetes-resource-yaml",
"templates": [
{
"id": "<string>",
"label": "<string>",
"value": "<string>"
}
]
}
],
"requirements": [
{
"key": "<string>",
"type": "string",
"required": true,
"label": "<string>",
"sensitive": true,
"constraints": {
"allowedValues": [
"<string>"
],
"min": 123,
"max": 123,
"minLength": 123,
"maxLength": 123,
"pattern": "<string>"
},
"scope": "PLATFORM_PROFILE",
"status": "MISSING",
"defaultValue": "<string>",
"description": "<string>",
"format": "kubernetes-resource-yaml",
"templates": [
{
"id": "<string>",
"label": "<string>",
"value": "<string>"
}
]
}
],
"componentBindings": [
{
"input": "<string>",
"fromComponent": "<string>",
"output": "<string>"
}
],
"violations": [
{
"code": "<string>",
"fieldPath": "<string>",
"message": "<string>"
}
]
}Authorizations
JWT tokens should be used with OIDC account (human to machine). JWT tokens used by the Qovery console to communicate with the API have a TTL. Curl Example ' curl https://console.qovery.com/organization -H "Authorization: Bearer $qovery_token" '
Path Parameters
Cluster ID
Platform component key
Body
Configuration values keyed by their catalog field name
Show child attributes
Show child attributes
For an existing cluster, validate profileConfig as a complete draft instead of merging it with saved values. Omitted keys are reset to their catalog defaults. Template previews already use a complete draft and ignore this flag.
Show child attributes
Show child attributes
String values keyed first by component key and then by input key
Show child attributes
Show child attributes
Response
Resolved component configuration
Generic catalog field descriptor matching the shared q-core field response. Scalar fields retain their existing shape; objects and arrays describe nested configuration without flattening its values. Blueprint keeps its existing BlueprintManifestVariableField response contract through a dedicated adapter.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?