curl --request PUT \
--url https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"outpost_pool_id": "<string>",
"platform": "<string>"
}
'import requests
url = "https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform"
payload = {
"outpost_pool_id": "<string>",
"platform": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({outpost_pool_id: '<string>', platform: '<string>'})
};
fetch('https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform', 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.devin.ai/v3beta1/organizations/{org_id}/default-platform",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'outpost_pool_id' => '<string>',
'platform' => '<string>'
]),
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.devin.ai/v3beta1/organizations/{org_id}/default-platform"
payload := strings.NewReader("{\n \"outpost_pool_id\": \"<string>\",\n \"platform\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"outpost_pool_id\": \"<string>\",\n \"platform\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"outpost_pool_id\": \"<string>\",\n \"platform\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"outpost_pool_id": "<string>",
"outpost_pool_name": "<string>",
"platform": "<string>"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Set Organization Default Platform (Devin API)
Set or clear the organization’s default Devin session placement to a hosted platform or an outpost pool via the v3 organization API
curl --request PUT \
--url https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"outpost_pool_id": "<string>",
"platform": "<string>"
}
'import requests
url = "https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform"
payload = {
"outpost_pool_id": "<string>",
"platform": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({outpost_pool_id: '<string>', platform: '<string>'})
};
fetch('https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform', 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.devin.ai/v3beta1/organizations/{org_id}/default-platform",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'outpost_pool_id' => '<string>',
'platform' => '<string>'
]),
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.devin.ai/v3beta1/organizations/{org_id}/default-platform"
payload := strings.NewReader("{\n \"outpost_pool_id\": \"<string>\",\n \"platform\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"outpost_pool_id\": \"<string>\",\n \"platform\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3beta1/organizations/{org_id}/default-platform")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"outpost_pool_id\": \"<string>\",\n \"platform\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"outpost_pool_id": "<string>",
"outpost_pool_name": "<string>",
"platform": "<string>"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}platform usam primeiro o padrão pessoal de quem as criou e, na ausência dele, o padrão da organização.
Permissões
Requer um usuário de serviço ou um token de acesso pessoal com a permissãoManageOrgSettings no nível da organização.
Campos da requisição
Envie no máximo um dos seguintes campos:platform: um rótulo de plataforma hospedada configurado para a organização (por exemplo,linux,windowsoumacos) ou o nome de um pool do outpost compartilhado, sem distinção entre maiúsculas e minúsculas. As plataformas têm prioridade quando um nome corresponde tanto a uma plataforma quanto a um pool.outpost_pool_id: o ID de um pool do outpost compartilhado disponível para a organização.
{}) ou ambos os campos como null para remover a configuração padrão. O corpo da requisição é obrigatório.
Somente pools do outpost compartilhados podem ser usados. Outposts pessoais não podem ser definidos como padrão da organização, pois apenas seu proprietário pode iniciar sessões neles.
Organizações exclusivas para Outposts
Quando a conta Enterprise está no modo exclusivo para Outposts, apenas pools do outpost são aceitos. Rótulos da plataforma hospedada retornam400.
Erros
400quandoplatformnão corresponde a nenhuma plataforma configurada nem a nenhum pool do outpost compartilhado, corresponde a vários pools do outpost ou indica uma plataforma hospedada em uma organização que usa apenas Outposts; ou quandooutpost_pool_idnão identifica um pool compartilhado disponível para a organização. O corpo da resposta de erro lista as plataformas e os pools do outpost disponíveis.403quando o solicitante não tem a permissãoManageOrgSettings.422quando tantoplatformquantooutpost_pool_idestão definidos.
Exemplo
curl -X PUT "https://api.devin.ai/v3beta1/organizations/$ORG_ID/default-platform" \
-H "Authorization: Bearer $DEVIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform": "gpu-pool"}'
Autorizações
Credencial de usuário de serviço (prefixo: cog_)
Parâmetros de caminho
ID da organização (prefixo: org-)
"org-abc123def456"
Corpo
Defina o local de execução padrão da organização para novas sessões.
Envie no máximo um dos campos platform e outpost_pool_id; envie ambos como
null (por exemplo, {}) para remover o padrão.
ID de um pool do outpost compartilhado disponível para a organização.
128Um rótulo de plataforma hospedada configurado para a organização (por exemplo, 'linux', 'windows', 'macos') ou o nome de um pool do outpost compartilhado, sem distinção entre maiúsculas e minúsculas; as plataformas têm prioridade quando um nome corresponde a ambos. Valores não reconhecidos são rejeitados com um erro 400 que lista as plataformas e os pools do outpost disponíveis.
128Resposta
Resposta bem-sucedida
O local de execução padrão da organização para novas sessões.
Pool do outpost em que novas sessões são executadas por padrão. Null quando o padrão é uma plataforma hospedada ou não está definido.
Nome do pool do outpost padrão. Null quando o padrão não é um pool do outpost ou o pool não está mais disponível para a organização.
Rótulo da plataforma hospedada (por exemplo, 'linux', 'windows') em que novas sessões são executadas por padrão. Null quando o padrão é um pool do outpost ou não está definido.

