Update a project
Update project repositories, setup script, agent instructions, environment variables, VM sizes and defaults; enable or pause scheduled builds or the warm pool; rename or customize its appearance.
import Tembo from '@tembo-io/sdk';
const client = new Tembo();
const project = await client.projects.update('projectId', {});use tembo_rs::*;
let client = Tembo::from_env()?;
let response = client
.projects()
.update(
"example",
ProjectsUpdateBody {
description: None,
include_deps: None,
include_skills: None,
name: None,
setup_script: None,
code_repository_ids: None,
agent_instructions: None,
color: None,
icon: None,
default_for_sizes: None,
environment_variables: None,
schedule: None,
sizes: None,
warm_pool_enabled: None,
},
)
.send()
.await?;
curl --request PATCH \
--url https://api.tembo.io/v1/projects/{projectId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "<string>",
"includeDeps": true,
"includeSkills": true,
"name": "<string>",
"setupScript": "<string>",
"codeRepositoryIds": [
"<string>"
],
"agentInstructions": "<string>",
"defaultForSizes": [],
"environmentVariables": {},
"schedule": {
"cron": "<string>",
"enabled": true,
"timezone": "<string>"
},
"sizes": [],
"warmPoolEnabled": true
}
'import requests
url = "https://api.tembo.io/v1/projects/{projectId}"
payload = {
"description": "<string>",
"includeDeps": True,
"includeSkills": True,
"name": "<string>",
"setupScript": "<string>",
"codeRepositoryIds": ["<string>"],
"agentInstructions": "<string>",
"defaultForSizes": [],
"environmentVariables": {},
"schedule": {
"cron": "<string>",
"enabled": True,
"timezone": "<string>"
},
"sizes": [],
"warmPoolEnabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: '<string>',
includeDeps: true,
includeSkills: true,
name: '<string>',
setupScript: '<string>',
codeRepositoryIds: ['<string>'],
agentInstructions: '<string>',
defaultForSizes: [],
environmentVariables: {},
schedule: {cron: '<string>', enabled: true, timezone: '<string>'},
sizes: [],
warmPoolEnabled: true
})
};
fetch('https://api.tembo.io/v1/projects/{projectId}', 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.tembo.io/v1/projects/{projectId}",
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([
'description' => '<string>',
'includeDeps' => true,
'includeSkills' => true,
'name' => '<string>',
'setupScript' => '<string>',
'codeRepositoryIds' => [
'<string>'
],
'agentInstructions' => '<string>',
'defaultForSizes' => [
],
'environmentVariables' => [
],
'schedule' => [
'cron' => '<string>',
'enabled' => true,
'timezone' => '<string>'
],
'sizes' => [
],
'warmPoolEnabled' => true
]),
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.tembo.io/v1/projects/{projectId}"
payload := strings.NewReader("{\n \"description\": \"<string>\",\n \"includeDeps\": true,\n \"includeSkills\": true,\n \"name\": \"<string>\",\n \"setupScript\": \"<string>\",\n \"codeRepositoryIds\": [\n \"<string>\"\n ],\n \"agentInstructions\": \"<string>\",\n \"defaultForSizes\": [],\n \"environmentVariables\": {},\n \"schedule\": {\n \"cron\": \"<string>\",\n \"enabled\": true,\n \"timezone\": \"<string>\"\n },\n \"sizes\": [],\n \"warmPoolEnabled\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.tembo.io/v1/projects/{projectId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"<string>\",\n \"includeDeps\": true,\n \"includeSkills\": true,\n \"name\": \"<string>\",\n \"setupScript\": \"<string>\",\n \"codeRepositoryIds\": [\n \"<string>\"\n ],\n \"agentInstructions\": \"<string>\",\n \"defaultForSizes\": [],\n \"environmentVariables\": {},\n \"schedule\": {\n \"cron\": \"<string>\",\n \"enabled\": true,\n \"timezone\": \"<string>\"\n },\n \"sizes\": [],\n \"warmPoolEnabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tembo.io/v1/projects/{projectId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"<string>\",\n \"includeDeps\": true,\n \"includeSkills\": true,\n \"name\": \"<string>\",\n \"setupScript\": \"<string>\",\n \"codeRepositoryIds\": [\n \"<string>\"\n ],\n \"agentInstructions\": \"<string>\",\n \"defaultForSizes\": [],\n \"environmentVariables\": {},\n \"schedule\": {\n \"cron\": \"<string>\",\n \"enabled\": true,\n \"timezone\": \"<string>\"\n },\n \"sizes\": [],\n \"warmPoolEnabled\": true\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"id": "<string>",
"includeDeps": true,
"includeSkills": true,
"name": "<string>",
"setupScript": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"activeSnapshots": [
{
"id": "<string>",
"size": "nano",
"builtAt": "2023-11-07T05:31:56Z"
}
],
"agentInstructions": "<string>",
"codeRepositoryIds": [
"<string>"
],
"color": "neutral",
"defaultForSizes": [
"nano"
],
"icon": "folder",
"onboardingDefault": true,
"sizes": [
"nano"
],
"warmPoolEnabled": true
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
1 - 255Body
Short project description, or null to clear it.
300Include project dependencies when building the environment. Defaults to true on creation.
Include skills in the project environment. Defaults to true on creation.
Project display name.
1 - 120Setup script to run while building the environment, or null to clear it.
100000Repository IDs included in the project environment. On update, replaces the repository selection.
1 - 255Instructions supplied to agents using this project, or null to clear them.
20000Project display color.
neutral, red, orange, yellow, green, teal, blue, purple, pink Project display icon.
folder, code, terminal, book, brain, bug, building, cloud, globe, idea, tools, magic, processor, sandbox, server, tasks, tactics, images, database, api, mobile, package VM sizes for which this project is the organization default. An empty array removes its default assignments.
nano, micro, medium, large, xl, xxl, ultra Replace the complete environment-variable map. Use createProjectEnvironmentVariables to add or replace individual keys instead.
Show child attributes
Show child attributes
Change the project build schedule, including enabling or pausing it.
Show child attributes
Show child attributes
Replace the workspace VM sizes built for this project.
1nano, micro, medium, large, xl, xxl, ultra Enable or disable prewarmed VMs for this project.
Response
Update a project
1 - 255Show child attributes
Show child attributes
200001 - 255neutral, red, orange, yellow, green, teal, blue, purple, pink nano, micro, small, medium, large, xl, xxl, ultra folder, code, terminal, book, brain, bug, building, cloud, globe, idea, tools, magic, processor, sandbox, server, tasks, tactics, images, database, api, mobile, package True for the project created during onboarding until it is first edited
nano, micro, medium, large, xl, xxl, ultra Was this page helpful?
import Tembo from '@tembo-io/sdk';
const client = new Tembo();
const project = await client.projects.update('projectId', {});use tembo_rs::*;
let client = Tembo::from_env()?;
let response = client
.projects()
.update(
"example",
ProjectsUpdateBody {
description: None,
include_deps: None,
include_skills: None,
name: None,
setup_script: None,
code_repository_ids: None,
agent_instructions: None,
color: None,
icon: None,
default_for_sizes: None,
environment_variables: None,
schedule: None,
sizes: None,
warm_pool_enabled: None,
},
)
.send()
.await?;
curl --request PATCH \
--url https://api.tembo.io/v1/projects/{projectId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "<string>",
"includeDeps": true,
"includeSkills": true,
"name": "<string>",
"setupScript": "<string>",
"codeRepositoryIds": [
"<string>"
],
"agentInstructions": "<string>",
"defaultForSizes": [],
"environmentVariables": {},
"schedule": {
"cron": "<string>",
"enabled": true,
"timezone": "<string>"
},
"sizes": [],
"warmPoolEnabled": true
}
'import requests
url = "https://api.tembo.io/v1/projects/{projectId}"
payload = {
"description": "<string>",
"includeDeps": True,
"includeSkills": True,
"name": "<string>",
"setupScript": "<string>",
"codeRepositoryIds": ["<string>"],
"agentInstructions": "<string>",
"defaultForSizes": [],
"environmentVariables": {},
"schedule": {
"cron": "<string>",
"enabled": True,
"timezone": "<string>"
},
"sizes": [],
"warmPoolEnabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: '<string>',
includeDeps: true,
includeSkills: true,
name: '<string>',
setupScript: '<string>',
codeRepositoryIds: ['<string>'],
agentInstructions: '<string>',
defaultForSizes: [],
environmentVariables: {},
schedule: {cron: '<string>', enabled: true, timezone: '<string>'},
sizes: [],
warmPoolEnabled: true
})
};
fetch('https://api.tembo.io/v1/projects/{projectId}', 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.tembo.io/v1/projects/{projectId}",
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([
'description' => '<string>',
'includeDeps' => true,
'includeSkills' => true,
'name' => '<string>',
'setupScript' => '<string>',
'codeRepositoryIds' => [
'<string>'
],
'agentInstructions' => '<string>',
'defaultForSizes' => [
],
'environmentVariables' => [
],
'schedule' => [
'cron' => '<string>',
'enabled' => true,
'timezone' => '<string>'
],
'sizes' => [
],
'warmPoolEnabled' => true
]),
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.tembo.io/v1/projects/{projectId}"
payload := strings.NewReader("{\n \"description\": \"<string>\",\n \"includeDeps\": true,\n \"includeSkills\": true,\n \"name\": \"<string>\",\n \"setupScript\": \"<string>\",\n \"codeRepositoryIds\": [\n \"<string>\"\n ],\n \"agentInstructions\": \"<string>\",\n \"defaultForSizes\": [],\n \"environmentVariables\": {},\n \"schedule\": {\n \"cron\": \"<string>\",\n \"enabled\": true,\n \"timezone\": \"<string>\"\n },\n \"sizes\": [],\n \"warmPoolEnabled\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.tembo.io/v1/projects/{projectId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"<string>\",\n \"includeDeps\": true,\n \"includeSkills\": true,\n \"name\": \"<string>\",\n \"setupScript\": \"<string>\",\n \"codeRepositoryIds\": [\n \"<string>\"\n ],\n \"agentInstructions\": \"<string>\",\n \"defaultForSizes\": [],\n \"environmentVariables\": {},\n \"schedule\": {\n \"cron\": \"<string>\",\n \"enabled\": true,\n \"timezone\": \"<string>\"\n },\n \"sizes\": [],\n \"warmPoolEnabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tembo.io/v1/projects/{projectId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"<string>\",\n \"includeDeps\": true,\n \"includeSkills\": true,\n \"name\": \"<string>\",\n \"setupScript\": \"<string>\",\n \"codeRepositoryIds\": [\n \"<string>\"\n ],\n \"agentInstructions\": \"<string>\",\n \"defaultForSizes\": [],\n \"environmentVariables\": {},\n \"schedule\": {\n \"cron\": \"<string>\",\n \"enabled\": true,\n \"timezone\": \"<string>\"\n },\n \"sizes\": [],\n \"warmPoolEnabled\": true\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"id": "<string>",
"includeDeps": true,
"includeSkills": true,
"name": "<string>",
"setupScript": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"activeSnapshots": [
{
"id": "<string>",
"size": "nano",
"builtAt": "2023-11-07T05:31:56Z"
}
],
"agentInstructions": "<string>",
"codeRepositoryIds": [
"<string>"
],
"color": "neutral",
"defaultForSizes": [
"nano"
],
"icon": "folder",
"onboardingDefault": true,
"sizes": [
"nano"
],
"warmPoolEnabled": true
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}