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"
}Establecer la plataforma predeterminada de la organización (API de Devin)
Establece o borra la ubicación predeterminada de las sesiones de Devin de la organización en una plataforma alojada o en un pool de Outposts mediante la API de organización v3
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 explícito usan primero el valor predeterminado personal de quien las crea y, en su defecto, este.
Permisos
Requiere un usuario de servicio o un token de acceso personal con el permisoManageOrgSettings a nivel de organización.
Campos de la solicitud
Envía como máximo uno de los siguientes:platform: una etiqueta de plataforma alojada configurada para la organización (por ejemplo,linux,windowsomacos) o el nombre de un pool de outposts compartido; no distingue entre mayúsculas y minúsculas. Si un nombre coincide con ambos, tiene prioridad la plataforma.outpost_pool_id: el ID de un pool de outposts compartido disponible para la organización.
{}), o ambos campos como null, para borrar el valor predeterminado. El cuerpo de la solicitud es obligatorio.
Solo se admiten pools de outposts compartidos. Los outposts personales no pueden ser el valor predeterminado de la organización porque solo su propietario puede iniciar sesiones en ellos.
Organizaciones solo con Outposts
Cuando la Enterprise está en modo solo Outposts, únicamente se aceptan pools de Outposts. Las etiquetas de plataforma alojada devuelven un error400.
Errores
400cuandoplatformno coincide con ninguna plataforma configurada ni con ningún pool de Outposts compartido, coincide con varios pools de Outposts o hace referencia a una plataforma alojada en una organización que solo usa Outposts; o cuandooutpost_pool_idno corresponde a un pool compartido disponible para la organización. El cuerpo del error indica las plataformas y los pools de Outposts disponibles.403cuando el autor de la llamada no tiene el permisoManageOrgSettings.422cuando se especifican a la vezplatformyoutpost_pool_id.
Ejemplo
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"}'
Autorizaciones
Credencial de usuario de servicio (prefijo: cog_)
Parámetros de ruta
ID de la organización (prefijo: org-)
"org-abc123def456"
Cuerpo
Establece la ubicación de ejecución predeterminada de la organización para las nuevas sesiones.
Envía como máximo uno de los campos platform y outpost_pool_id; envía ambos como
null (por ejemplo, {}) para borrar el valor predeterminado.
ID de un pool de outposts compartido disponible para la organización.
128Una etiqueta de plataforma alojada configurada para la organización (p. ej., 'linux', 'windows', 'macos') o el nombre de un pool de outposts compartido, sin distinguir entre mayúsculas y minúsculas; las plataformas tienen prioridad si un nombre coincide tanto con una plataforma como con un pool. Los valores no reconocidos se rechazan con un error 400 que enumera las plataformas y los pools de outposts disponibles.
128Respuesta
Respuesta satisfactoria
Ubicación de ejecución predeterminada de la organización para las nuevas sesiones.
Pool de outposts en el que se ejecutan las nuevas sesiones de forma predeterminada. Null cuando el valor predeterminado es una plataforma alojada o no está definido.
Nombre del pool de outposts predeterminado. Null cuando el valor predeterminado no es un pool de outposts o el pool ya no está disponible para la organización.
Etiqueta de la plataforma alojada (p. ej., 'linux', 'windows') en la que se ejecutan las nuevas sesiones de forma predeterminada. Null cuando el valor predeterminado es un pool de outposts o no está definido.

