From 1b2c0567bfad884aadcb3bbeb81af84c76afe1c3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 20:05:54 +0000 Subject: [PATCH 001/151] feat(api): add time range filters to event list method --- .stats.yml | 4 ++-- src/resources/events.ts | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f91b5129..19ac5c03 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1923b5d3865532d64d80c22746aa63991bbf227cf1cbefc8cdb14a374c4c5b89.yml -openapi_spec_hash: 304200ebfa8622f5f6846895528f06e3 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-18081d3ce0bf5a7c07f195ffcf7934a53c1822f2439270d4e03b89a3993aa3e1.yml +openapi_spec_hash: 38600260362ddb6b1419e21838e97783 config_hash: 469d30a2d44895c8c53a5aac370a56f1 diff --git a/src/resources/events.ts b/src/resources/events.ts index 4fc6a446..0d84a7ff 100644 --- a/src/resources/events.ts +++ b/src/resources/events.ts @@ -37,6 +37,16 @@ export class Events extends APIResource { * pageSize: 20 * ``` * + * - Filter by time range: + * + * ```yaml + * filter: + * from: "2024-01-01T00:00:00Z" + * to: "2024-02-01T00:00:00Z" + * pagination: + * pageSize: 20 + * ``` + * * @example * ```ts * // Automatically fetches more pages as needed. @@ -247,9 +257,19 @@ export namespace EventListParams { actorPrincipals?: Array; + /** + * from filters audit logs created at or after this timestamp (inclusive). + */ + from?: string | null; + subjectIds?: Array; subjectTypes?: Array; + + /** + * to filters audit logs created before this timestamp (exclusive). + */ + to?: string | null; } /** From a287ad3af6bf663011161691ca7913a446541a42 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 08:55:25 +0000 Subject: [PATCH 002/151] feat(api): add bpfDebugLevel field to KernelControlsConfig in environments --- .stats.yml | 6 +++--- api.md | 1 + src/client.ts | 2 ++ src/resources/environments/environments.ts | 10 ++++++++++ src/resources/environments/index.ts | 1 + src/resources/index.ts | 1 + 6 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 19ac5c03..6bc49b87 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-18081d3ce0bf5a7c07f195ffcf7934a53c1822f2439270d4e03b89a3993aa3e1.yml -openapi_spec_hash: 38600260362ddb6b1419e21838e97783 -config_hash: 469d30a2d44895c8c53a5aac370a56f1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-630c480e52441c340adc8a1e95c59e866136b0126b253234bdd578e75cdbbfa8.yml +openapi_spec_hash: 5888d9e3eb30cf12d42cee3ac3932160 +config_hash: b478642d4e5f97aab620afc5c51bb2ea diff --git a/api.md b/api.md index fedc0405..3743efb9 100644 --- a/api.md +++ b/api.md @@ -108,6 +108,7 @@ Methods: Types: - AdmissionLevel +- BpfDebugLevel - Environment - EnvironmentActivitySignal - EnvironmentMetadata diff --git a/src/client.ts b/src/client.ts index 4c6c90a2..f4058584 100644 --- a/src/client.ts +++ b/src/client.ts @@ -228,6 +228,7 @@ import { } from './resources/usage'; import { AdmissionLevel, + BpfDebugLevel, Environment, EnvironmentActivitySignal, EnvironmentCreateEnvironmentTokenParams, @@ -1352,6 +1353,7 @@ export declare namespace Gitpod { export { Environments as Environments, type AdmissionLevel as AdmissionLevel, + type BpfDebugLevel as BpfDebugLevel, type Environment as Environment, type EnvironmentActivitySignal as EnvironmentActivitySignal, type EnvironmentMetadata as EnvironmentMetadata, diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index 4475f7ee..1b5987df 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -569,6 +569,15 @@ export type AdmissionLevel = | 'ADMISSION_LEVEL_ORGANIZATION' | 'ADMISSION_LEVEL_CREATOR_ONLY'; +/** + * BPFDebugLevel controls the verbosity of BPF trace_pipe output (bpf_printk). + * Applies to all BPF-based agents (veto exec, future agents). + */ +export type BpfDebugLevel = + | 'BPF_DEBUG_LEVEL_UNSPECIFIED' + | 'BPF_DEBUG_LEVEL_INFO' + | 'BPF_DEBUG_LEVEL_VERBOSE'; + /** * +resource get environment */ @@ -1941,6 +1950,7 @@ Environments.Classes = Classes; export declare namespace Environments { export { type AdmissionLevel as AdmissionLevel, + type BpfDebugLevel as BpfDebugLevel, type Environment as Environment, type EnvironmentActivitySignal as EnvironmentActivitySignal, type EnvironmentMetadata as EnvironmentMetadata, diff --git a/src/resources/environments/index.ts b/src/resources/environments/index.ts index cdbafd6f..b608089c 100644 --- a/src/resources/environments/index.ts +++ b/src/resources/environments/index.ts @@ -10,6 +10,7 @@ export { Classes, type ClassListParams } from './classes'; export { Environments, type AdmissionLevel, + type BpfDebugLevel, type Environment, type EnvironmentActivitySignal, type EnvironmentMetadata, diff --git a/src/resources/index.ts b/src/resources/index.ts index a91cbd35..8a63d22c 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -69,6 +69,7 @@ export { export { Environments, type AdmissionLevel, + type BpfDebugLevel, type Environment, type EnvironmentActivitySignal, type EnvironmentMetadata, From 84bf167dd9dd77c72968cd5267d9a2b25a6caa76 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 09:46:20 +0000 Subject: [PATCH 003/151] fix(api): rename executableDenyList to vetoExecPolicy in policies --- .stats.yml | 4 ++-- src/resources/organizations/policies.ts | 20 +++++++++---------- .../organizations/policies.test.ts | 10 +++++----- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6bc49b87..ae4752ab 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-630c480e52441c340adc8a1e95c59e866136b0126b253234bdd578e75cdbbfa8.yml -openapi_spec_hash: 5888d9e3eb30cf12d42cee3ac3932160 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6537d9d31bcf213ac7dab540eebd4b21a511ebb6dc9f602296f13e71aa7c859a.yml +openapi_spec_hash: f6629cb53a0e7f5dc97956e9ae439289 config_hash: b478642d4e5f97aab620afc5c51bb2ea diff --git a/src/resources/organizations/policies.ts b/src/resources/organizations/policies.ts index 62c3924c..fecce480 100644 --- a/src/resources/organizations/policies.ts +++ b/src/resources/organizations/policies.ts @@ -252,11 +252,6 @@ export interface OrganizationPolicies { */ editorVersionRestrictions?: { [key: string]: OrganizationPolicies.EditorVersionRestrictions }; - /** - * executable_deny_list contains the veto exec policy for environments. - */ - executableDenyList?: VetoExecPolicy; - /** * maximum_environment_lifetime controls for how long environments are allowed to * be reused. 0 means no maximum lifetime. Maximum duration is 180 days (15552000 @@ -277,6 +272,11 @@ export interface OrganizationPolicies { * environments. */ securityAgentPolicy?: SecurityAgentPolicy; + + /** + * veto_exec_policy contains the veto exec policy for environments. + */ + vetoExecPolicy?: VetoExecPolicy; } export namespace OrganizationPolicies { @@ -387,11 +387,6 @@ export interface PolicyUpdateParams { */ editorVersionRestrictions?: { [key: string]: PolicyUpdateParams.EditorVersionRestrictions }; - /** - * executable_deny_list contains the veto exec policy for environments. - */ - executableDenyList?: VetoExecPolicy | null; - /** * maximum_environment_lifetime controls for how long environments are allowed to * be reused. 0 means no maximum lifetime. Maximum duration is 180 days (15552000 @@ -453,6 +448,11 @@ export interface PolicyUpdateParams { * security_agent_policy contains security agent configuration updates */ securityAgentPolicy?: PolicyUpdateParams.SecurityAgentPolicy | null; + + /** + * veto_exec_policy contains the veto exec policy for environments. + */ + vetoExecPolicy?: VetoExecPolicy | null; } export namespace PolicyUpdateParams { diff --git a/tests/api-resources/organizations/policies.test.ts b/tests/api-resources/organizations/policies.test.ts index 1cdd3501..d6c32c93 100644 --- a/tests/api-resources/organizations/policies.test.ts +++ b/tests/api-resources/organizations/policies.test.ts @@ -59,11 +59,6 @@ describe('resource policies', () => { defaultEnvironmentImage: 'defaultEnvironmentImage', deleteArchivedEnvironmentsAfter: '+9125115.360s', editorVersionRestrictions: { foo: { allowedVersions: ['string'] } }, - executableDenyList: { - action: 'KERNEL_CONTROLS_ACTION_UNSPECIFIED', - enabled: true, - executables: ['string'], - }, maximumEnvironmentLifetime: '+9125115.360s', maximumEnvironmentsPerUser: '20', maximumEnvironmentTimeout: '3600s', @@ -82,6 +77,11 @@ describe('resource policies', () => { tags: 'tags', }, }, + vetoExecPolicy: { + action: 'KERNEL_CONTROLS_ACTION_UNSPECIFIED', + enabled: true, + executables: ['string'], + }, }); }); }); From d7effeca87947f2c067de984a7fac9f4e498eaac Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:05:24 +0000 Subject: [PATCH 004/151] chore(internal): remove mock server code --- scripts/mock | 41 ----------------------------------------- scripts/test | 46 ---------------------------------------------- 2 files changed, 87 deletions(-) delete mode 100755 scripts/mock diff --git a/scripts/mock b/scripts/mock deleted file mode 100755 index 0b28f6ea..00000000 --- a/scripts/mock +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash - -set -e - -cd "$(dirname "$0")/.." - -if [[ -n "$1" && "$1" != '--'* ]]; then - URL="$1" - shift -else - URL="$(grep 'openapi_spec_url' .stats.yml | cut -d' ' -f2)" -fi - -# Check if the URL is empty -if [ -z "$URL" ]; then - echo "Error: No OpenAPI spec path/url provided or found in .stats.yml" - exit 1 -fi - -echo "==> Starting mock server with URL ${URL}" - -# Run prism mock on the given spec -if [ "$1" == "--daemon" ]; then - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & - - # Wait for server to come online - echo -n "Waiting for server" - while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do - echo -n "." - sleep 0.1 - done - - if grep -q "✖ fatal" ".prism.log"; then - cat .prism.log - exit 1 - fi - - echo -else - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" -fi diff --git a/scripts/test b/scripts/test index 7bce0516..548da9bb 100755 --- a/scripts/test +++ b/scripts/test @@ -4,53 +4,7 @@ set -e cd "$(dirname "$0")/.." -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -NC='\033[0m' # No Color -function prism_is_running() { - curl --silent "http://localhost:4010" >/dev/null 2>&1 -} - -kill_server_on_port() { - pids=$(lsof -t -i tcp:"$1" || echo "") - if [ "$pids" != "" ]; then - kill "$pids" - echo "Stopped $pids." - fi -} - -function is_overriding_api_base_url() { - [ -n "$TEST_API_BASE_URL" ] -} - -if ! is_overriding_api_base_url && ! prism_is_running ; then - # When we exit this script, make sure to kill the background mock server process - trap 'kill_server_on_port 4010' EXIT - - # Start the dev server - ./scripts/mock --daemon -fi - -if is_overriding_api_base_url ; then - echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}" - echo -elif ! prism_is_running ; then - echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server" - echo -e "running against your OpenAPI spec." - echo - echo -e "To run the server, pass in the path or url of your OpenAPI" - echo -e "spec to the prism command:" - echo - echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}" - echo - - exit 1 -else - echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}" - echo -fi echo "==> Running tests" ./node_modules/.bin/jest "$@" From cd79de5fbf0ffd6dcc51c8a0d930065335254f1f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 17:20:55 +0000 Subject: [PATCH 005/151] chore: update mock server docs --- tests/api-resources/accounts.test.ts | 18 +++++------ tests/api-resources/agents.test.ts | 24 +++++++-------- tests/api-resources/editors.test.ts | 10 +++---- .../automations/automations.test.ts | 2 +- .../environments/automations/services.test.ts | 14 ++++----- .../automations/tasks/executions.test.ts | 6 ++-- .../automations/tasks/tasks.test.ts | 12 ++++---- .../environments/classes.test.ts | 2 +- .../environments/environments.test.ts | 28 ++++++++--------- tests/api-resources/errors.test.ts | 2 +- tests/api-resources/events.test.ts | 4 +-- tests/api-resources/gateways.test.ts | 2 +- tests/api-resources/groups/groups.test.ts | 10 +++---- .../api-resources/groups/memberships.test.ts | 10 +++---- .../groups/role-assignments.test.ts | 6 ++-- tests/api-resources/groups/shares.test.ts | 4 +-- tests/api-resources/identity.test.ts | 6 ++-- .../organizations/announcement-banner.test.ts | 8 ++--- .../organizations/custom-domains.test.ts | 16 +++++----- .../domain-verifications.test.ts | 20 ++++++------- .../organizations/invites.test.ts | 12 ++++---- .../organizations/organizations.test.ts | 30 +++++++++---------- .../organizations/policies.test.ts | 8 ++--- .../organizations/scim-configurations.test.ts | 22 +++++++------- .../organizations/sso-configurations.test.ts | 20 ++++++------- tests/api-resources/prebuilds.test.ts | 22 +++++++------- .../projects/environment-clases.test.ts | 4 +-- tests/api-resources/projects/policies.test.ts | 8 ++--- tests/api-resources/projects/projects.test.ts | 20 ++++++------- .../configurations/configurations.test.ts | 2 +- .../environment-classes.test.ts | 8 ++--- .../host-authentication-tokens.test.ts | 10 +++---- .../runners/configurations/schema.test.ts | 2 +- .../configurations/scm-integrations.test.ts | 10 +++---- tests/api-resources/runners/policies.test.ts | 8 ++--- tests/api-resources/runners/runners.test.ts | 24 +++++++-------- tests/api-resources/secrets.test.ts | 10 +++---- tests/api-resources/usage.test.ts | 2 +- tests/api-resources/users/dotfiles.test.ts | 4 +-- tests/api-resources/users/pats.test.ts | 6 ++-- tests/api-resources/users/users.test.ts | 8 ++--- 41 files changed, 222 insertions(+), 222 deletions(-) diff --git a/tests/api-resources/accounts.test.ts b/tests/api-resources/accounts.test.ts index 11942fad..c632b8a1 100644 --- a/tests/api-resources/accounts.test.ts +++ b/tests/api-resources/accounts.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource accounts', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.accounts.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource accounts', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: only required params', async () => { const responsePromise = client.accounts.delete({ accountId: 'f53d2330-3795-4c5d-a1f3-453121af9c60' }); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource accounts', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: required and optional params', async () => { const response = await client.accounts.delete({ accountId: 'f53d2330-3795-4c5d-a1f3-453121af9c60', @@ -40,7 +40,7 @@ describe('resource accounts', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getSSOLoginURL: only required params', async () => { const responsePromise = client.accounts.getSSOLoginURL({ email: 'user@company.com' }); const rawResponse = await responsePromise.asResponse(); @@ -52,7 +52,7 @@ describe('resource accounts', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getSSOLoginURL: required and optional params', async () => { const response = await client.accounts.getSSOLoginURL({ email: 'user@company.com', @@ -60,7 +60,7 @@ describe('resource accounts', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listJoinableOrganizations', async () => { const responsePromise = client.accounts.listJoinableOrganizations({}); const rawResponse = await responsePromise.asResponse(); @@ -72,7 +72,7 @@ describe('resource accounts', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listLoginProviders', async () => { const responsePromise = client.accounts.listLoginProviders({}); const rawResponse = await responsePromise.asResponse(); @@ -84,7 +84,7 @@ describe('resource accounts', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listSSOLogins: only required params', async () => { const responsePromise = client.accounts.listSSOLogins({ email: 'dev@stainless.com' }); const rawResponse = await responsePromise.asResponse(); @@ -96,7 +96,7 @@ describe('resource accounts', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listSSOLogins: required and optional params', async () => { const response = await client.accounts.listSSOLogins({ email: 'dev@stainless.com', diff --git a/tests/api-resources/agents.test.ts b/tests/api-resources/agents.test.ts index a283db74..59366e28 100644 --- a/tests/api-resources/agents.test.ts +++ b/tests/api-resources/agents.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource agents', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('createExecutionConversationToken', async () => { const responsePromise = client.agents.createExecutionConversationToken({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createPrompt', async () => { const responsePromise = client.agents.createPrompt({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('deleteExecution', async () => { const responsePromise = client.agents.deleteExecution({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('deletePrompt', async () => { const responsePromise = client.agents.deletePrompt({}); const rawResponse = await responsePromise.asResponse(); @@ -56,7 +56,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listExecutions', async () => { const responsePromise = client.agents.listExecutions({}); const rawResponse = await responsePromise.asResponse(); @@ -68,7 +68,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listPrompts', async () => { const responsePromise = client.agents.listPrompts({}); const rawResponse = await responsePromise.asResponse(); @@ -80,7 +80,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieveExecution', async () => { const responsePromise = client.agents.retrieveExecution({}); const rawResponse = await responsePromise.asResponse(); @@ -92,7 +92,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrievePrompt', async () => { const responsePromise = client.agents.retrievePrompt({}); const rawResponse = await responsePromise.asResponse(); @@ -104,7 +104,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('sendToExecution', async () => { const responsePromise = client.agents.sendToExecution({}); const rawResponse = await responsePromise.asResponse(); @@ -116,7 +116,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('startExecution', async () => { const responsePromise = client.agents.startExecution({}); const rawResponse = await responsePromise.asResponse(); @@ -128,7 +128,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('stopExecution', async () => { const responsePromise = client.agents.stopExecution({}); const rawResponse = await responsePromise.asResponse(); @@ -140,7 +140,7 @@ describe('resource agents', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('updatePrompt', async () => { const responsePromise = client.agents.updatePrompt({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/editors.test.ts b/tests/api-resources/editors.test.ts index 6979c29b..7ab4511e 100644 --- a/tests/api-resources/editors.test.ts +++ b/tests/api-resources/editors.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource editors', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.editors.retrieve({ id: 'd2c94c27-3b76-4a42-b88c-95a85e392c68' }); const rawResponse = await responsePromise.asResponse(); @@ -20,12 +20,12 @@ describe('resource editors', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.editors.retrieve({ id: 'd2c94c27-3b76-4a42-b88c-95a85e392c68' }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.editors.list({}); const rawResponse = await responsePromise.asResponse(); @@ -37,7 +37,7 @@ describe('resource editors', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('resolveURL: only required params', async () => { const responsePromise = client.editors.resolveURL({ editorId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -53,7 +53,7 @@ describe('resource editors', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('resolveURL: required and optional params', async () => { const response = await client.editors.resolveURL({ editorId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', diff --git a/tests/api-resources/environments/automations/automations.test.ts b/tests/api-resources/environments/automations/automations.test.ts index ed997129..18e6c4c4 100644 --- a/tests/api-resources/environments/automations/automations.test.ts +++ b/tests/api-resources/environments/automations/automations.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource automations', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('upsert', async () => { const responsePromise = client.environments.automations.upsert({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/environments/automations/services.test.ts b/tests/api-resources/environments/automations/services.test.ts index 23335143..90acd206 100644 --- a/tests/api-resources/environments/automations/services.test.ts +++ b/tests/api-resources/environments/automations/services.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource services', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.environments.automations.services.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource services', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.environments.automations.services.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource services', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.environments.automations.services.update({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource services', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.environments.automations.services.list({}); const rawResponse = await responsePromise.asResponse(); @@ -56,7 +56,7 @@ describe('resource services', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.environments.automations.services.delete({}); const rawResponse = await responsePromise.asResponse(); @@ -68,7 +68,7 @@ describe('resource services', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('start', async () => { const responsePromise = client.environments.automations.services.start({}); const rawResponse = await responsePromise.asResponse(); @@ -80,7 +80,7 @@ describe('resource services', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('stop', async () => { const responsePromise = client.environments.automations.services.stop({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/environments/automations/tasks/executions.test.ts b/tests/api-resources/environments/automations/tasks/executions.test.ts index 2c2bc87a..198d06da 100644 --- a/tests/api-resources/environments/automations/tasks/executions.test.ts +++ b/tests/api-resources/environments/automations/tasks/executions.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource executions', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.environments.automations.tasks.executions.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource executions', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.environments.automations.tasks.executions.list({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource executions', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('stop', async () => { const responsePromise = client.environments.automations.tasks.executions.stop({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/environments/automations/tasks/tasks.test.ts b/tests/api-resources/environments/automations/tasks/tasks.test.ts index d19f0356..467bfedc 100644 --- a/tests/api-resources/environments/automations/tasks/tasks.test.ts +++ b/tests/api-resources/environments/automations/tasks/tasks.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource tasks', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.environments.automations.tasks.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource tasks', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.environments.automations.tasks.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource tasks', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.environments.automations.tasks.update({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource tasks', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.environments.automations.tasks.list({}); const rawResponse = await responsePromise.asResponse(); @@ -56,7 +56,7 @@ describe('resource tasks', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.environments.automations.tasks.delete({}); const rawResponse = await responsePromise.asResponse(); @@ -68,7 +68,7 @@ describe('resource tasks', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('start', async () => { const responsePromise = client.environments.automations.tasks.start({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/environments/classes.test.ts b/tests/api-resources/environments/classes.test.ts index 91d2fa4a..0d97bd45 100644 --- a/tests/api-resources/environments/classes.test.ts +++ b/tests/api-resources/environments/classes.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource classes', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.environments.classes.list({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/environments/environments.test.ts b/tests/api-resources/environments/environments.test.ts index 6a295134..f2cec224 100644 --- a/tests/api-resources/environments/environments.test.ts +++ b/tests/api-resources/environments/environments.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource environments', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.environments.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.environments.retrieve({ environmentId: '07e03a28-65a5-4d98-b532-8ea67b188048', @@ -34,14 +34,14 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.environments.retrieve({ environmentId: '07e03a28-65a5-4d98-b532-8ea67b188048', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.environments.update({}); const rawResponse = await responsePromise.asResponse(); @@ -53,7 +53,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.environments.list({}); const rawResponse = await responsePromise.asResponse(); @@ -65,7 +65,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.environments.delete({}); const rawResponse = await responsePromise.asResponse(); @@ -77,7 +77,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createEnvironmentToken: only required params', async () => { const responsePromise = client.environments.createEnvironmentToken({ environmentId: '07e03a28-65a5-4d98-b532-8ea67b188048', @@ -91,14 +91,14 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createEnvironmentToken: required and optional params', async () => { const response = await client.environments.createEnvironmentToken({ environmentId: '07e03a28-65a5-4d98-b532-8ea67b188048', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createFromProject', async () => { const responsePromise = client.environments.createFromProject({}); const rawResponse = await responsePromise.asResponse(); @@ -110,7 +110,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createLogsToken', async () => { const responsePromise = client.environments.createLogsToken({}); const rawResponse = await responsePromise.asResponse(); @@ -122,7 +122,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('markActive', async () => { const responsePromise = client.environments.markActive({}); const rawResponse = await responsePromise.asResponse(); @@ -134,7 +134,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('start', async () => { const responsePromise = client.environments.start({}); const rawResponse = await responsePromise.asResponse(); @@ -146,7 +146,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('stop', async () => { const responsePromise = client.environments.stop({}); const rawResponse = await responsePromise.asResponse(); @@ -158,7 +158,7 @@ describe('resource environments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('unarchive', async () => { const responsePromise = client.environments.unarchive({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/errors.test.ts b/tests/api-resources/errors.test.ts index f09b290b..ee413092 100644 --- a/tests/api-resources/errors.test.ts +++ b/tests/api-resources/errors.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource errors', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('reportErrors', async () => { const responsePromise = client.errors.reportErrors({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/events.test.ts b/tests/api-resources/events.test.ts index 55d5cc42..b8cb6355 100644 --- a/tests/api-resources/events.test.ts +++ b/tests/api-resources/events.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource events', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.events.list({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource events', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism doesn't support application/jsonl responses + // Mock server doesn't support application/jsonl responses test.skip('watch', async () => { const responsePromise = client.events.watch({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/gateways.test.ts b/tests/api-resources/gateways.test.ts index fe35f0f6..4186e205 100644 --- a/tests/api-resources/gateways.test.ts +++ b/tests/api-resources/gateways.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource gateways', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.gateways.list({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/groups/groups.test.ts b/tests/api-resources/groups/groups.test.ts index 97c3ca06..3798086c 100644 --- a/tests/api-resources/groups/groups.test.ts +++ b/tests/api-resources/groups/groups.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource groups', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.groups.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource groups', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.groups.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource groups', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.groups.update({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource groups', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.groups.list({}); const rawResponse = await responsePromise.asResponse(); @@ -56,7 +56,7 @@ describe('resource groups', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.groups.delete({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/groups/memberships.test.ts b/tests/api-resources/groups/memberships.test.ts index e28a932a..e9d8ad18 100644 --- a/tests/api-resources/groups/memberships.test.ts +++ b/tests/api-resources/groups/memberships.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource memberships', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.groups.memberships.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource memberships', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.groups.memberships.retrieve({ subject: {} }); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource memberships', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.groups.memberships.retrieve({ subject: { id: 'f53d2330-3795-4c5d-a1f3-453121af9c60', principal: 'PRINCIPAL_USER' }, @@ -40,7 +40,7 @@ describe('resource memberships', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.groups.memberships.list({}); const rawResponse = await responsePromise.asResponse(); @@ -52,7 +52,7 @@ describe('resource memberships', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.groups.memberships.delete({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/groups/role-assignments.test.ts b/tests/api-resources/groups/role-assignments.test.ts index 5b4a4eb4..6b07ee9c 100644 --- a/tests/api-resources/groups/role-assignments.test.ts +++ b/tests/api-resources/groups/role-assignments.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource roleAssignments', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.groups.roleAssignments.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource roleAssignments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.groups.roleAssignments.list({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource roleAssignments', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.groups.roleAssignments.delete({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/groups/shares.test.ts b/tests/api-resources/groups/shares.test.ts index ad152ded..f86d3d6f 100644 --- a/tests/api-resources/groups/shares.test.ts +++ b/tests/api-resources/groups/shares.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource shares', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.groups.shares.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource shares', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.groups.shares.delete({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/identity.test.ts b/tests/api-resources/identity.test.ts index 64730a65..961c99fb 100644 --- a/tests/api-resources/identity.test.ts +++ b/tests/api-resources/identity.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource identity', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('exchangeToken', async () => { const responsePromise = client.identity.exchangeToken({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource identity', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getAuthenticatedIdentity', async () => { const responsePromise = client.identity.getAuthenticatedIdentity({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource identity', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getIDToken', async () => { const responsePromise = client.identity.getIDToken({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/organizations/announcement-banner.test.ts b/tests/api-resources/organizations/announcement-banner.test.ts index 6724f457..754c8e0f 100644 --- a/tests/api-resources/organizations/announcement-banner.test.ts +++ b/tests/api-resources/organizations/announcement-banner.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource announcementBanner', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: only required params', async () => { const responsePromise = client.organizations.announcementBanner.update({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -22,7 +22,7 @@ describe('resource announcementBanner', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: required and optional params', async () => { const response = await client.organizations.announcementBanner.update({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -31,7 +31,7 @@ describe('resource announcementBanner', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('get: only required params', async () => { const responsePromise = client.organizations.announcementBanner.get({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -45,7 +45,7 @@ describe('resource announcementBanner', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('get: required and optional params', async () => { const response = await client.organizations.announcementBanner.get({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', diff --git a/tests/api-resources/organizations/custom-domains.test.ts b/tests/api-resources/organizations/custom-domains.test.ts index c3b3cac3..9dc81ff7 100644 --- a/tests/api-resources/organizations/custom-domains.test.ts +++ b/tests/api-resources/organizations/custom-domains.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource customDomains', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.organizations.customDomains.create({ domainName: 'workspaces.acme-corp.com', @@ -23,7 +23,7 @@ describe('resource customDomains', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: required and optional params', async () => { const response = await client.organizations.customDomains.create({ domainName: 'workspaces.acme-corp.com', @@ -34,7 +34,7 @@ describe('resource customDomains', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.organizations.customDomains.retrieve({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -48,14 +48,14 @@ describe('resource customDomains', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.organizations.customDomains.retrieve({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: only required params', async () => { const responsePromise = client.organizations.customDomains.update({ domainName: 'workspaces.acme-corp.com', @@ -70,7 +70,7 @@ describe('resource customDomains', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: required and optional params', async () => { const response = await client.organizations.customDomains.update({ domainName: 'workspaces.acme-corp.com', @@ -81,7 +81,7 @@ describe('resource customDomains', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: only required params', async () => { const responsePromise = client.organizations.customDomains.delete({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -95,7 +95,7 @@ describe('resource customDomains', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: required and optional params', async () => { const response = await client.organizations.customDomains.delete({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', diff --git a/tests/api-resources/organizations/domain-verifications.test.ts b/tests/api-resources/organizations/domain-verifications.test.ts index 6b753edc..c204dd68 100644 --- a/tests/api-resources/organizations/domain-verifications.test.ts +++ b/tests/api-resources/organizations/domain-verifications.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource domainVerifications', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.organizations.domainVerifications.create({ domain: 'acme-corp.com', @@ -23,7 +23,7 @@ describe('resource domainVerifications', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: required and optional params', async () => { const response = await client.organizations.domainVerifications.create({ domain: 'acme-corp.com', @@ -31,7 +31,7 @@ describe('resource domainVerifications', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.organizations.domainVerifications.retrieve({ domainVerificationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -45,14 +45,14 @@ describe('resource domainVerifications', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.organizations.domainVerifications.retrieve({ domainVerificationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list: only required params', async () => { const responsePromise = client.organizations.domainVerifications.list({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -66,7 +66,7 @@ describe('resource domainVerifications', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list: required and optional params', async () => { const response = await client.organizations.domainVerifications.list({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -76,7 +76,7 @@ describe('resource domainVerifications', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: only required params', async () => { const responsePromise = client.organizations.domainVerifications.delete({ domainVerificationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -90,14 +90,14 @@ describe('resource domainVerifications', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: required and optional params', async () => { const response = await client.organizations.domainVerifications.delete({ domainVerificationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('verify: only required params', async () => { const responsePromise = client.organizations.domainVerifications.verify({ domainVerificationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -111,7 +111,7 @@ describe('resource domainVerifications', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('verify: required and optional params', async () => { const response = await client.organizations.domainVerifications.verify({ domainVerificationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', diff --git a/tests/api-resources/organizations/invites.test.ts b/tests/api-resources/organizations/invites.test.ts index 5c5c0db2..5b82ca98 100644 --- a/tests/api-resources/organizations/invites.test.ts +++ b/tests/api-resources/organizations/invites.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource invites', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.organizations.invites.create({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -22,14 +22,14 @@ describe('resource invites', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: required and optional params', async () => { const response = await client.organizations.invites.create({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.organizations.invites.retrieve({ organizationId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', @@ -43,14 +43,14 @@ describe('resource invites', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.organizations.invites.retrieve({ organizationId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getSummary: only required params', async () => { const responsePromise = client.organizations.invites.getSummary({ inviteId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -64,7 +64,7 @@ describe('resource invites', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getSummary: required and optional params', async () => { const response = await client.organizations.invites.getSummary({ inviteId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', diff --git a/tests/api-resources/organizations/organizations.test.ts b/tests/api-resources/organizations/organizations.test.ts index 4a979d51..52a8d17d 100644 --- a/tests/api-resources/organizations/organizations.test.ts +++ b/tests/api-resources/organizations/organizations.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource organizations', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.organizations.create({ name: 'Acme Corp Engineering' }); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource organizations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: required and optional params', async () => { const response = await client.organizations.create({ name: 'Acme Corp Engineering', @@ -29,7 +29,7 @@ describe('resource organizations', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.organizations.retrieve({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -43,14 +43,14 @@ describe('resource organizations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.organizations.retrieve({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: only required params', async () => { const responsePromise = client.organizations.update({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -64,7 +64,7 @@ describe('resource organizations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: required and optional params', async () => { const response = await client.organizations.update({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -73,7 +73,7 @@ describe('resource organizations', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: only required params', async () => { const responsePromise = client.organizations.delete({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -87,14 +87,14 @@ describe('resource organizations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: required and optional params', async () => { const response = await client.organizations.delete({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('join', async () => { const responsePromise = client.organizations.join({}); const rawResponse = await responsePromise.asResponse(); @@ -106,7 +106,7 @@ describe('resource organizations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('leave: only required params', async () => { const responsePromise = client.organizations.leave({ userId: 'f53d2330-3795-4c5d-a1f3-453121af9c60' }); const rawResponse = await responsePromise.asResponse(); @@ -118,12 +118,12 @@ describe('resource organizations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('leave: required and optional params', async () => { const response = await client.organizations.leave({ userId: 'f53d2330-3795-4c5d-a1f3-453121af9c60' }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listMembers: only required params', async () => { const responsePromise = client.organizations.listMembers({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -137,7 +137,7 @@ describe('resource organizations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listMembers: required and optional params', async () => { const response = await client.organizations.listMembers({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -155,7 +155,7 @@ describe('resource organizations', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('setRole: only required params', async () => { const responsePromise = client.organizations.setRole({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -170,7 +170,7 @@ describe('resource organizations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('setRole: required and optional params', async () => { const response = await client.organizations.setRole({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', diff --git a/tests/api-resources/organizations/policies.test.ts b/tests/api-resources/organizations/policies.test.ts index d6c32c93..9de80ee5 100644 --- a/tests/api-resources/organizations/policies.test.ts +++ b/tests/api-resources/organizations/policies.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource policies', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.organizations.policies.retrieve({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -22,14 +22,14 @@ describe('resource policies', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.organizations.policies.retrieve({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: only required params', async () => { const responsePromise = client.organizations.policies.update({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -43,7 +43,7 @@ describe('resource policies', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: required and optional params', async () => { const response = await client.organizations.policies.update({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', diff --git a/tests/api-resources/organizations/scim-configurations.test.ts b/tests/api-resources/organizations/scim-configurations.test.ts index 7ac728b3..bf121156 100644 --- a/tests/api-resources/organizations/scim-configurations.test.ts +++ b/tests/api-resources/organizations/scim-configurations.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource scimConfigurations', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.organizations.scimConfigurations.create({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -23,7 +23,7 @@ describe('resource scimConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: required and optional params', async () => { const response = await client.organizations.scimConfigurations.create({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -33,7 +33,7 @@ describe('resource scimConfigurations', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.organizations.scimConfigurations.retrieve({ scimConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -47,14 +47,14 @@ describe('resource scimConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.organizations.scimConfigurations.retrieve({ scimConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: only required params', async () => { const responsePromise = client.organizations.scimConfigurations.update({ scimConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -68,7 +68,7 @@ describe('resource scimConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: required and optional params', async () => { const response = await client.organizations.scimConfigurations.update({ scimConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -78,7 +78,7 @@ describe('resource scimConfigurations', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.organizations.scimConfigurations.list({}); const rawResponse = await responsePromise.asResponse(); @@ -90,7 +90,7 @@ describe('resource scimConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: only required params', async () => { const responsePromise = client.organizations.scimConfigurations.delete({ scimConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -104,14 +104,14 @@ describe('resource scimConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: required and optional params', async () => { const response = await client.organizations.scimConfigurations.delete({ scimConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('regenerateToken: only required params', async () => { const responsePromise = client.organizations.scimConfigurations.regenerateToken({ scimConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -125,7 +125,7 @@ describe('resource scimConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('regenerateToken: required and optional params', async () => { const response = await client.organizations.scimConfigurations.regenerateToken({ scimConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', diff --git a/tests/api-resources/organizations/sso-configurations.test.ts b/tests/api-resources/organizations/sso-configurations.test.ts index 24160551..c173f8c5 100644 --- a/tests/api-resources/organizations/sso-configurations.test.ts +++ b/tests/api-resources/organizations/sso-configurations.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource ssoConfigurations', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.organizations.ssoConfigurations.create({ clientId: '012345678-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com', @@ -25,7 +25,7 @@ describe('resource ssoConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: required and optional params', async () => { const response = await client.organizations.ssoConfigurations.create({ clientId: '012345678-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com', @@ -39,7 +39,7 @@ describe('resource ssoConfigurations', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.organizations.ssoConfigurations.retrieve({ ssoConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -53,14 +53,14 @@ describe('resource ssoConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.organizations.ssoConfigurations.retrieve({ ssoConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: only required params', async () => { const responsePromise = client.organizations.ssoConfigurations.update({ ssoConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -74,7 +74,7 @@ describe('resource ssoConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update: required and optional params', async () => { const response = await client.organizations.ssoConfigurations.update({ ssoConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -90,7 +90,7 @@ describe('resource ssoConfigurations', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list: only required params', async () => { const responsePromise = client.organizations.ssoConfigurations.list({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -104,7 +104,7 @@ describe('resource ssoConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list: required and optional params', async () => { const response = await client.organizations.ssoConfigurations.list({ organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -114,7 +114,7 @@ describe('resource ssoConfigurations', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: only required params', async () => { const responsePromise = client.organizations.ssoConfigurations.delete({ ssoConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', @@ -128,7 +128,7 @@ describe('resource ssoConfigurations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: required and optional params', async () => { const response = await client.organizations.ssoConfigurations.delete({ ssoConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts index 8c9ffe8c..cad3a1f1 100644 --- a/tests/api-resources/prebuilds.test.ts +++ b/tests/api-resources/prebuilds.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource prebuilds', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.prebuilds.create({ projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -23,7 +23,7 @@ describe('resource prebuilds', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: required and optional params', async () => { const response = await client.prebuilds.create({ projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', @@ -36,7 +36,7 @@ describe('resource prebuilds', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: only required params', async () => { const responsePromise = client.prebuilds.retrieve({ prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048' }); const rawResponse = await responsePromise.asResponse(); @@ -48,12 +48,12 @@ describe('resource prebuilds', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve: required and optional params', async () => { const response = await client.prebuilds.retrieve({ prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048' }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.prebuilds.list({}); const rawResponse = await responsePromise.asResponse(); @@ -65,7 +65,7 @@ describe('resource prebuilds', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: only required params', async () => { const responsePromise = client.prebuilds.delete({ prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048' }); const rawResponse = await responsePromise.asResponse(); @@ -77,12 +77,12 @@ describe('resource prebuilds', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete: required and optional params', async () => { const response = await client.prebuilds.delete({ prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048' }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('cancel: only required params', async () => { const responsePromise = client.prebuilds.cancel({ prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048' }); const rawResponse = await responsePromise.asResponse(); @@ -94,12 +94,12 @@ describe('resource prebuilds', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('cancel: required and optional params', async () => { const response = await client.prebuilds.cancel({ prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048' }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createLogsToken: only required params', async () => { const responsePromise = client.prebuilds.createLogsToken({ prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048', @@ -113,7 +113,7 @@ describe('resource prebuilds', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createLogsToken: required and optional params', async () => { const response = await client.prebuilds.createLogsToken({ prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048', diff --git a/tests/api-resources/projects/environment-clases.test.ts b/tests/api-resources/projects/environment-clases.test.ts index 1d6fe4fd..bd248651 100644 --- a/tests/api-resources/projects/environment-clases.test.ts +++ b/tests/api-resources/projects/environment-clases.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource environmentClases', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.projects.environmentClases.update({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource environmentClases', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.projects.environmentClases.list({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/projects/policies.test.ts b/tests/api-resources/projects/policies.test.ts index cc633a7d..7a394d6c 100644 --- a/tests/api-resources/projects/policies.test.ts +++ b/tests/api-resources/projects/policies.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource policies', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.projects.policies.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource policies', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.projects.policies.update({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource policies', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.projects.policies.list({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource policies', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.projects.policies.delete({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/projects/projects.test.ts b/tests/api-resources/projects/projects.test.ts index 02de0f17..7de717d1 100644 --- a/tests/api-resources/projects/projects.test.ts +++ b/tests/api-resources/projects/projects.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource projects', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.projects.create({ initializer: {} }); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource projects', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('create: required and optional params', async () => { const response = await client.projects.create({ initializer: { @@ -52,7 +52,7 @@ describe('resource projects', () => { }); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.projects.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -64,7 +64,7 @@ describe('resource projects', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.projects.update({}); const rawResponse = await responsePromise.asResponse(); @@ -76,7 +76,7 @@ describe('resource projects', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.projects.list({}); const rawResponse = await responsePromise.asResponse(); @@ -88,7 +88,7 @@ describe('resource projects', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.projects.delete({}); const rawResponse = await responsePromise.asResponse(); @@ -100,7 +100,7 @@ describe('resource projects', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('bulkCreate', async () => { const responsePromise = client.projects.bulkCreate({}); const rawResponse = await responsePromise.asResponse(); @@ -112,7 +112,7 @@ describe('resource projects', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('bulkDelete', async () => { const responsePromise = client.projects.bulkDelete({}); const rawResponse = await responsePromise.asResponse(); @@ -124,7 +124,7 @@ describe('resource projects', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('bulkUpdate', async () => { const responsePromise = client.projects.bulkUpdate({}); const rawResponse = await responsePromise.asResponse(); @@ -136,7 +136,7 @@ describe('resource projects', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createFromEnvironment', async () => { const responsePromise = client.projects.createFromEnvironment({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/runners/configurations/configurations.test.ts b/tests/api-resources/runners/configurations/configurations.test.ts index c9d288c4..5c85a81f 100644 --- a/tests/api-resources/runners/configurations/configurations.test.ts +++ b/tests/api-resources/runners/configurations/configurations.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource configurations', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('validate', async () => { const responsePromise = client.runners.configurations.validate({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/runners/configurations/environment-classes.test.ts b/tests/api-resources/runners/configurations/environment-classes.test.ts index 00956b2f..14262aca 100644 --- a/tests/api-resources/runners/configurations/environment-classes.test.ts +++ b/tests/api-resources/runners/configurations/environment-classes.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource environmentClasses', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.runners.configurations.environmentClasses.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource environmentClasses', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.runners.configurations.environmentClasses.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource environmentClasses', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.runners.configurations.environmentClasses.update({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource environmentClasses', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.runners.configurations.environmentClasses.list({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/runners/configurations/host-authentication-tokens.test.ts b/tests/api-resources/runners/configurations/host-authentication-tokens.test.ts index c2fa2c6a..5f9d135d 100644 --- a/tests/api-resources/runners/configurations/host-authentication-tokens.test.ts +++ b/tests/api-resources/runners/configurations/host-authentication-tokens.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource hostAuthenticationTokens', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.runners.configurations.hostAuthenticationTokens.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource hostAuthenticationTokens', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.runners.configurations.hostAuthenticationTokens.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource hostAuthenticationTokens', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.runners.configurations.hostAuthenticationTokens.update({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource hostAuthenticationTokens', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.runners.configurations.hostAuthenticationTokens.list({}); const rawResponse = await responsePromise.asResponse(); @@ -56,7 +56,7 @@ describe('resource hostAuthenticationTokens', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.runners.configurations.hostAuthenticationTokens.delete({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/runners/configurations/schema.test.ts b/tests/api-resources/runners/configurations/schema.test.ts index 69e50381..006eb617 100644 --- a/tests/api-resources/runners/configurations/schema.test.ts +++ b/tests/api-resources/runners/configurations/schema.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource schema', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.runners.configurations.schema.retrieve({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/runners/configurations/scm-integrations.test.ts b/tests/api-resources/runners/configurations/scm-integrations.test.ts index 76405f70..9aa22598 100644 --- a/tests/api-resources/runners/configurations/scm-integrations.test.ts +++ b/tests/api-resources/runners/configurations/scm-integrations.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource scmIntegrations', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.runners.configurations.scmIntegrations.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource scmIntegrations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.runners.configurations.scmIntegrations.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource scmIntegrations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.runners.configurations.scmIntegrations.update({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource scmIntegrations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.runners.configurations.scmIntegrations.list({}); const rawResponse = await responsePromise.asResponse(); @@ -56,7 +56,7 @@ describe('resource scmIntegrations', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.runners.configurations.scmIntegrations.delete({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/runners/policies.test.ts b/tests/api-resources/runners/policies.test.ts index b0cfcda2..8a1fcd5a 100644 --- a/tests/api-resources/runners/policies.test.ts +++ b/tests/api-resources/runners/policies.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource policies', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.runners.policies.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource policies', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.runners.policies.update({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource policies', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.runners.policies.list({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource policies', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.runners.policies.delete({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/runners/runners.test.ts b/tests/api-resources/runners/runners.test.ts index 62caf162..8fae36b4 100644 --- a/tests/api-resources/runners/runners.test.ts +++ b/tests/api-resources/runners/runners.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource runners', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.runners.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('retrieve', async () => { const responsePromise = client.runners.retrieve({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('update', async () => { const responsePromise = client.runners.update({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.runners.list({}); const rawResponse = await responsePromise.asResponse(); @@ -56,7 +56,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.runners.delete({}); const rawResponse = await responsePromise.asResponse(); @@ -68,7 +68,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('checkAuthenticationForHost', async () => { const responsePromise = client.runners.checkAuthenticationForHost({}); const rawResponse = await responsePromise.asResponse(); @@ -80,7 +80,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('checkRepositoryAccess', async () => { const responsePromise = client.runners.checkRepositoryAccess({}); const rawResponse = await responsePromise.asResponse(); @@ -92,7 +92,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createLogsToken', async () => { const responsePromise = client.runners.createLogsToken({}); const rawResponse = await responsePromise.asResponse(); @@ -104,7 +104,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('createRunnerToken', async () => { const responsePromise = client.runners.createRunnerToken({}); const rawResponse = await responsePromise.asResponse(); @@ -116,7 +116,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('listScmOrganizations', async () => { const responsePromise = client.runners.listScmOrganizations({}); const rawResponse = await responsePromise.asResponse(); @@ -128,7 +128,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('parseContextURL', async () => { const responsePromise = client.runners.parseContextURL({}); const rawResponse = await responsePromise.asResponse(); @@ -140,7 +140,7 @@ describe('resource runners', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('searchRepositories', async () => { const responsePromise = client.runners.searchRepositories({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/secrets.test.ts b/tests/api-resources/secrets.test.ts index 45ae5032..1d657a98 100644 --- a/tests/api-resources/secrets.test.ts +++ b/tests/api-resources/secrets.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource secrets', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('create', async () => { const responsePromise = client.secrets.create({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource secrets', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.secrets.list({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource secrets', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.secrets.delete({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource secrets', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getValue', async () => { const responsePromise = client.secrets.getValue({}); const rawResponse = await responsePromise.asResponse(); @@ -56,7 +56,7 @@ describe('resource secrets', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('updateValue', async () => { const responsePromise = client.secrets.updateValue({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/usage.test.ts b/tests/api-resources/usage.test.ts index 36bec989..5fc407b3 100644 --- a/tests/api-resources/usage.test.ts +++ b/tests/api-resources/usage.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource usage', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('listEnvironmentRuntimeRecords', async () => { const responsePromise = client.usage.listEnvironmentRuntimeRecords({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/users/dotfiles.test.ts b/tests/api-resources/users/dotfiles.test.ts index e46faac9..55f4ed54 100644 --- a/tests/api-resources/users/dotfiles.test.ts +++ b/tests/api-resources/users/dotfiles.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource dotfiles', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('get', async () => { const responsePromise = client.users.dotfiles.get({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource dotfiles', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('set', async () => { const responsePromise = client.users.dotfiles.set({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/users/pats.test.ts b/tests/api-resources/users/pats.test.ts index 819b516a..2c4b2bbc 100644 --- a/tests/api-resources/users/pats.test.ts +++ b/tests/api-resources/users/pats.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource pats', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('list', async () => { const responsePromise = client.users.pats.list({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource pats', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('delete', async () => { const responsePromise = client.users.pats.delete({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource pats', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('get', async () => { const responsePromise = client.users.pats.get({}); const rawResponse = await responsePromise.asResponse(); diff --git a/tests/api-resources/users/users.test.ts b/tests/api-resources/users/users.test.ts index ca85341a..4d1f2e32 100644 --- a/tests/api-resources/users/users.test.ts +++ b/tests/api-resources/users/users.test.ts @@ -8,7 +8,7 @@ const client = new Gitpod({ }); describe('resource users', () => { - // Prism tests are disabled + // Mock server tests are disabled test.skip('deleteUser', async () => { const responsePromise = client.users.deleteUser({}); const rawResponse = await responsePromise.asResponse(); @@ -20,7 +20,7 @@ describe('resource users', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getAuthenticatedUser', async () => { const responsePromise = client.users.getAuthenticatedUser({}); const rawResponse = await responsePromise.asResponse(); @@ -32,7 +32,7 @@ describe('resource users', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('getUser', async () => { const responsePromise = client.users.getUser({}); const rawResponse = await responsePromise.asResponse(); @@ -44,7 +44,7 @@ describe('resource users', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Prism tests are disabled + // Mock server tests are disabled test.skip('setSuspended', async () => { const responsePromise = client.users.setSuspended({}); const rawResponse = await responsePromise.asResponse(); From d8634ebcccd65fd8957b47de226243dcc56bd0d1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 17:48:01 +0000 Subject: [PATCH 006/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ae4752ab..56f22061 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6537d9d31bcf213ac7dab540eebd4b21a511ebb6dc9f602296f13e71aa7c859a.yml -openapi_spec_hash: f6629cb53a0e7f5dc97956e9ae439289 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-3017822d8c133c3d60f2bf1a65bc81fa8e11737d46d90d2316d5ef57285ed30f.yml +openapi_spec_hash: 2a1219326c8d17de457653ca29023ebf config_hash: b478642d4e5f97aab620afc5c51bb2ea From 9e5570d13dbf4c3101e679038a8e4bdb2460882d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 18:35:49 +0000 Subject: [PATCH 007/151] chore(test): update skip reason message --- tests/api-resources/events.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/api-resources/events.test.ts b/tests/api-resources/events.test.ts index b8cb6355..7cfdf0e8 100644 --- a/tests/api-resources/events.test.ts +++ b/tests/api-resources/events.test.ts @@ -20,7 +20,7 @@ describe('resource events', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - // Mock server doesn't support application/jsonl responses + // Mock server tests are disabled test.skip('watch', async () => { const responsePromise = client.events.watch({}); const rawResponse = await responsePromise.asResponse(); From a2c14c0e1702564a2855ea6d7f49605dd6e7e4c1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 19:14:33 +0000 Subject: [PATCH 008/151] feat(api): add resourceIds to role assignments, simplify executable deny list in policies --- .stats.yml | 4 ++-- src/resources/groups/role-assignments.ts | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.stats.yml b/.stats.yml index 56f22061..3974e04c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-3017822d8c133c3d60f2bf1a65bc81fa8e11737d46d90d2316d5ef57285ed30f.yml -openapi_spec_hash: 2a1219326c8d17de457653ca29023ebf +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6a3ce4fa1cddca171e56bb663ad37610241027c3e149cdda77d579e1c5f4411a.yml +openapi_spec_hash: fd261ea098c45e8ab600e18bbd9650c5 config_hash: b478642d4e5f97aab620afc5c51bb2ea diff --git a/src/resources/groups/role-assignments.ts b/src/resources/groups/role-assignments.ts index 25ad4e4b..f228dba4 100644 --- a/src/resources/groups/role-assignments.ts +++ b/src/resources/groups/role-assignments.ts @@ -254,13 +254,21 @@ export namespace RoleAssignmentListParams { groupId?: string; /** - * resource_id filters the response to only role assignments for this specific - * resource When provided, users with :grant permission on the resource can see its - * role assignments even if they don't belong to the assigned groups Empty string - * is allowed and means no filtering by resource + * Filters by a single resource. Use this when listing all groups that have access + * to a specific resource (e.g. share dialogs). Non-admin callers with :grant + * permission on the resource can see role assignments from groups they don't + * belong to. Mutually exclusive with resource_ids. */ resourceId?: string; + /** + * Filters by multiple resources in a single request. Use this for batch permission + * lookups (e.g. checking the caller's own permissions across several resources). + * Does not support the :grant permission bypass. Mutually exclusive with + * resource_id. + */ + resourceIds?: Array; + /** * resource_roles filters the response to only role assignments with these specific * roles From fc992b1972538d484f1427e433c6a6970e2ea0a3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:13:47 +0000 Subject: [PATCH 009/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3974e04c..6d8985d5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6a3ce4fa1cddca171e56bb663ad37610241027c3e149cdda77d579e1c5f4411a.yml -openapi_spec_hash: fd261ea098c45e8ab600e18bbd9650c5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-978293eecaf6753561be22655bba682fef03e1dc5cc002c276fa117261135c70.yml +openapi_spec_hash: b4bdaf1d7daffb0b6fd8d7fcee562aa0 config_hash: b478642d4e5f97aab620afc5c51bb2ea From c1f3de2107207a80e3cb7884dba5e5cbbc079685 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 15:41:11 +0000 Subject: [PATCH 010/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6d8985d5..bce04790 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-978293eecaf6753561be22655bba682fef03e1dc5cc002c276fa117261135c70.yml -openapi_spec_hash: b4bdaf1d7daffb0b6fd8d7fcee562aa0 -config_hash: b478642d4e5f97aab620afc5c51bb2ea +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-425b7af32f0a85fcc19ebbb2487b0c4dc36a01a91f93fba6c708b1d64f56abb5.yml +openapi_spec_hash: c104046b6c75375623038a3bcb35a373 +config_hash: 9310e62fdd4819bba6317f3479cfff1c From 8646e6ea9fc56779c5785cb0a614116064320cbc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 16:52:32 +0000 Subject: [PATCH 011/151] feat(api): add SONNET_4_6 model variants to AgentExecution --- .stats.yml | 4 ++-- src/resources/agents.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index bce04790..74d90fa9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-425b7af32f0a85fcc19ebbb2487b0c4dc36a01a91f93fba6c708b1d64f56abb5.yml -openapi_spec_hash: c104046b6c75375623038a3bcb35a373 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5bd1d582d09b3f50f2658008d810dd7fbcb56e8b95f05c1ae56246c24aee39e2.yml +openapi_spec_hash: 14b0c544bf9b9558dcea53e09bd5f473 config_hash: 9310e62fdd4819bba6317f3479cfff1c diff --git a/src/resources/agents.ts b/src/resources/agents.ts index dd6e5dfe..cd119fbe 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -850,6 +850,8 @@ export namespace AgentExecution { | 'SUPPORTED_MODEL_SONNET_4_EXTENDED' | 'SUPPORTED_MODEL_SONNET_4_5' | 'SUPPORTED_MODEL_SONNET_4_5_EXTENDED' + | 'SUPPORTED_MODEL_SONNET_4_6' + | 'SUPPORTED_MODEL_SONNET_4_6_EXTENDED' | 'SUPPORTED_MODEL_OPUS_4' | 'SUPPORTED_MODEL_OPUS_4_EXTENDED' | 'SUPPORTED_MODEL_OPUS_4_5' From b87306930d710a13c53c98b56b96b812c3521d84 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 09:23:17 +0000 Subject: [PATCH 012/151] feat(api): add CountResponseRelation type --- .stats.yml | 6 +++--- api.md | 1 + src/client.ts | 2 ++ src/resources/index.ts | 1 + src/resources/organizations/index.ts | 1 + src/resources/organizations/organizations.ts | 6 ++++++ 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 74d90fa9..40fec4f8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5bd1d582d09b3f50f2658008d810dd7fbcb56e8b95f05c1ae56246c24aee39e2.yml -openapi_spec_hash: 14b0c544bf9b9558dcea53e09bd5f473 -config_hash: 9310e62fdd4819bba6317f3479cfff1c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5498c80829cdba9708b7765af11a4c6668383640159e195835b768d1d0070a2c.yml +openapi_spec_hash: 9bbcc41c34e3fcc108e19e4335fa82cd +config_hash: e561ac157e2bab45b5c366f2cf6b526e diff --git a/api.md b/api.md index 3743efb9..bec91fb4 100644 --- a/api.md +++ b/api.md @@ -336,6 +336,7 @@ Methods: Types: +- CountResponseRelation - InviteDomains - Organization - OrganizationMember diff --git a/src/client.ts b/src/client.ts index f4058584..761c0bab 100644 --- a/src/client.ts +++ b/src/client.ts @@ -279,6 +279,7 @@ import { GroupsGroupsPage, } from './resources/groups/groups'; import { + CountResponseRelation, InviteDomains, Organization, OrganizationCreateParams, @@ -1442,6 +1443,7 @@ export declare namespace Gitpod { export { Organizations as Organizations, + type CountResponseRelation as CountResponseRelation, type InviteDomains as InviteDomains, type Organization as Organization, type OrganizationMember as OrganizationMember, diff --git a/src/resources/index.ts b/src/resources/index.ts index 8a63d22c..4f574622 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -152,6 +152,7 @@ export { } from './identity'; export { Organizations, + type CountResponseRelation, type InviteDomains, type Organization, type OrganizationMember, diff --git a/src/resources/organizations/index.ts b/src/resources/organizations/index.ts index 82cec164..6f89c99d 100644 --- a/src/resources/organizations/index.ts +++ b/src/resources/organizations/index.ts @@ -48,6 +48,7 @@ export { } from './invites'; export { Organizations, + type CountResponseRelation, type InviteDomains, type Organization, type OrganizationMember, diff --git a/src/resources/organizations/organizations.ts b/src/resources/organizations/organizations.ts index 98605481..9c504676 100644 --- a/src/resources/organizations/organizations.ts +++ b/src/resources/organizations/organizations.ts @@ -451,6 +451,11 @@ export class Organizations extends APIResource { export type OrganizationMembersMembersPage = MembersPage; +export type CountResponseRelation = + | 'COUNT_RESPONSE_RELATION_UNSPECIFIED' + | 'COUNT_RESPONSE_RELATION_EQ' + | 'COUNT_RESPONSE_RELATION_GTE'; + export interface InviteDomains { /** * domains is the list of domains that are allowed to join the organization @@ -974,6 +979,7 @@ Organizations.SSOConfigurations = SSOConfigurations; export declare namespace Organizations { export { + type CountResponseRelation as CountResponseRelation, type InviteDomains as InviteDomains, type Organization as Organization, type OrganizationMember as OrganizationMember, From 3322c72b72dd47a46c674074f580aef9a36dcedd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 09:23:44 +0000 Subject: [PATCH 013/151] feat(api): add sort parameter to projects list and Sort/SortOrder types --- .stats.yml | 6 ++--- api.md | 2 ++ src/client.ts | 4 +++ src/resources/index.ts | 2 ++ src/resources/organizations/organizations.ts | 3 ++- src/resources/projects/index.ts | 2 ++ src/resources/projects/projects.ts | 26 ++++++++++++++++++++ 7 files changed, 41 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 40fec4f8..1f90a3f0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5498c80829cdba9708b7765af11a4c6668383640159e195835b768d1d0070a2c.yml -openapi_spec_hash: 9bbcc41c34e3fcc108e19e4335fa82cd -config_hash: e561ac157e2bab45b5c366f2cf6b526e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-8507bc4eff2dbfe0392f2a2e18b337827935aaa2d99046653efca1c43a5f82cd.yml +openapi_spec_hash: 8a9387a75d5d0dcaa53d01ba6f52f2c9 +config_hash: 37a21c5644cb6c8f1d592ea2ec7c66d7 diff --git a/api.md b/api.md index bec91fb4..36140ac9 100644 --- a/api.md +++ b/api.md @@ -518,6 +518,8 @@ Types: - ProjectPhase - ProjectPrebuildConfiguration - RecommendedEditors +- Sort +- SortOrder - ProjectCreateResponse - ProjectRetrieveResponse - ProjectUpdateResponse diff --git a/src/client.ts b/src/client.ts index 761c0bab..16a9b394 100644 --- a/src/client.ts +++ b/src/client.ts @@ -327,6 +327,8 @@ import { Projects, ProjectsProjectsPage, RecommendedEditors, + Sort, + SortOrder, } from './resources/projects/projects'; import { GatewayInfo, @@ -1495,6 +1497,8 @@ export declare namespace Gitpod { type ProjectPhase as ProjectPhase, type ProjectPrebuildConfiguration as ProjectPrebuildConfiguration, type RecommendedEditors as RecommendedEditors, + type Sort as Sort, + type SortOrder as SortOrder, type ProjectCreateResponse as ProjectCreateResponse, type ProjectRetrieveResponse as ProjectRetrieveResponse, type ProjectUpdateResponse as ProjectUpdateResponse, diff --git a/src/resources/index.ts b/src/resources/index.ts index 4f574622..e4842066 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -202,6 +202,8 @@ export { type ProjectPhase, type ProjectPrebuildConfiguration, type RecommendedEditors, + type Sort, + type SortOrder, type ProjectCreateResponse, type ProjectRetrieveResponse, type ProjectUpdateResponse, diff --git a/src/resources/organizations/organizations.ts b/src/resources/organizations/organizations.ts index 9c504676..3d3738f2 100644 --- a/src/resources/organizations/organizations.ts +++ b/src/resources/organizations/organizations.ts @@ -101,6 +101,7 @@ import { SSOConfigurations, SSOConfigurationsSSOConfigurationsPage, } from './sso-configurations'; +import * as ProjectsAPI from '../projects/projects'; import { APIPromise } from '../../core/api-promise'; import { MembersPage, type MembersPageParams, PagePromise } from '../../core/pagination'; import { RequestOptions } from '../../internal/request-options'; @@ -957,7 +958,7 @@ export namespace OrganizationListMembersParams { export interface Sort { field?: 'SORT_FIELD_UNSPECIFIED' | 'SORT_FIELD_NAME' | 'SORT_FIELD_DATE_JOINED'; - order?: 'SORT_ORDER_UNSPECIFIED' | 'SORT_ORDER_ASC' | 'SORT_ORDER_DESC'; + order?: ProjectsAPI.SortOrder; } } diff --git a/src/resources/projects/index.ts b/src/resources/projects/index.ts index e26d15ed..db4cd95c 100644 --- a/src/resources/projects/index.ts +++ b/src/resources/projects/index.ts @@ -27,6 +27,8 @@ export { type ProjectPhase, type ProjectPrebuildConfiguration, type RecommendedEditors, + type Sort, + type SortOrder, type ProjectCreateResponse, type ProjectRetrieveResponse, type ProjectUpdateResponse, diff --git a/src/resources/projects/projects.ts b/src/resources/projects/projects.ts index a2c94140..b7250f1d 100644 --- a/src/resources/projects/projects.ts +++ b/src/resources/projects/projects.ts @@ -866,6 +866,17 @@ export namespace RecommendedEditors { } } +export interface Sort { + /** + * Field name to sort by, in camelCase. + */ + field?: string; + + order?: SortOrder; +} + +export type SortOrder = 'SORT_ORDER_UNSPECIFIED' | 'SORT_ORDER_ASC' | 'SORT_ORDER_DESC'; + export interface ProjectCreateResponse { project?: Project; } @@ -1089,6 +1100,19 @@ export interface ProjectListParams extends ProjectsPageParams { * Body param: pagination contains the pagination options for listing organizations */ pagination?: ProjectListParams.Pagination; + + /** + * Body param: sort specifies the order of results. Defaults to popularity + * descending. + * + * Supported fields: + * + * - "id": Sort by project ID (UUID v7, effectively creation order). Produces a + * stable, deterministic result set suitable for consistent pagination. + * - "popularity": Sort by popularity — a precomputed score based on recent + * environment creation activity. Updated periodically by a background job. + */ + sort?: Sort; } export namespace ProjectListParams { @@ -1273,6 +1297,8 @@ export declare namespace Projects { type ProjectPhase as ProjectPhase, type ProjectPrebuildConfiguration as ProjectPrebuildConfiguration, type RecommendedEditors as RecommendedEditors, + type Sort as Sort, + type SortOrder as SortOrder, type ProjectCreateResponse as ProjectCreateResponse, type ProjectRetrieveResponse as ProjectRetrieveResponse, type ProjectUpdateResponse as ProjectUpdateResponse, From a41d7779a86a0fe8ac15d487c42e3e457031373b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 12:45:41 +0000 Subject: [PATCH 014/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1f90a3f0..3db0e689 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-8507bc4eff2dbfe0392f2a2e18b337827935aaa2d99046653efca1c43a5f82cd.yml -openapi_spec_hash: 8a9387a75d5d0dcaa53d01ba6f52f2c9 -config_hash: 37a21c5644cb6c8f1d592ea2ec7c66d7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5d1c02f2a41e5b4854c72832120cacaae793b68dd4406b4966af82294fee09eb.yml +openapi_spec_hash: 33524cdb0c70aabb217543c199d29a36 +config_hash: d1efd0fb13278cef73ed308a4a0a1294 From 43ff14ca7e7126233cd7dd75cd191766b96ab492 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 16:37:36 +0000 Subject: [PATCH 015/151] fix(docs/contributing): correct pnpm link command --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b3703f04..3103a72c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -60,7 +60,7 @@ $ yarn link @gitpod/sdk # With pnpm $ pnpm link --global $ cd ../my-package -$ pnpm link -—global @gitpod/sdk +$ pnpm link --global @gitpod/sdk ``` ## Running tests From 87da72cd4b6639e77669b464d448bb00c3c46ae2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 12:03:07 +0000 Subject: [PATCH 016/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3db0e689..89c49bab 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5d1c02f2a41e5b4854c72832120cacaae793b68dd4406b4966af82294fee09eb.yml -openapi_spec_hash: 33524cdb0c70aabb217543c199d29a36 -config_hash: d1efd0fb13278cef73ed308a4a0a1294 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-efebbf89daf148b007793d595d4a27693d32c2af05de5cad7bd627acb289fd48.yml +openapi_spec_hash: 579a0ad85d72fe97b7ccf94147c4cf8b +config_hash: bc00f6f75db39f10e08429d65d1a3256 From ea8bd4601cd47901373669cfb8ff603ec7ceb7b9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 14:46:37 +0000 Subject: [PATCH 017/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 89c49bab..b87101b1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-efebbf89daf148b007793d595d4a27693d32c2af05de5cad7bd627acb289fd48.yml -openapi_spec_hash: 579a0ad85d72fe97b7ccf94147c4cf8b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d558cd59c0afb87b242c1b7988b9f661f9f9da27b5c70f716b985f389c9e4525.yml +openapi_spec_hash: f4e3d1e1193f667b1dfeedd599cc8037 config_hash: bc00f6f75db39f10e08429d65d1a3256 From 9d76eec94560e54ade252bc561af00f376ce4692 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 13:53:06 +0000 Subject: [PATCH 018/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index b87101b1..9c22cddb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d558cd59c0afb87b242c1b7988b9f661f9f9da27b5c70f716b985f389c9e4525.yml -openapi_spec_hash: f4e3d1e1193f667b1dfeedd599cc8037 -config_hash: bc00f6f75db39f10e08429d65d1a3256 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6ec331208d75a70905e27db1628fb6c8377570c165c96fac6be6c2584f96b457.yml +openapi_spec_hash: 4b329837363160d2f32748841d820d43 +config_hash: 5ae1121a61e0263e40f13c9d7d45c935 From 1b40ec9b2d39a90bc0c82691bf7b7c5b47f2799c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 09:38:15 +0000 Subject: [PATCH 019/151] feat(api): add lockdownAt field to EnvironmentStatus --- .stats.yml | 4 ++-- src/resources/environments/environments.ts | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9c22cddb..535aacc3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6ec331208d75a70905e27db1628fb6c8377570c165c96fac6be6c2584f96b457.yml -openapi_spec_hash: 4b329837363160d2f32748841d820d43 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-2b5d25c42aae80b17781d652e385cb0c6efa9473c3c5e131df8d8add561f4223.yml +openapi_spec_hash: b973ecdb8f4d13f56b64c4cafa605697 config_hash: 5ae1121a61e0263e40f13c9d7d45c935 diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index 1b5987df..32f7698f 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -657,6 +657,13 @@ export interface EnvironmentMetadata { */ lastStartedAt?: string; + /** + * lockdown_at is the time at which the environment becomes locked down due to the + * organization's maximum environment lifetime policy. Nil when no lifetime policy + * applies. + */ + lockdownAt?: string; + /** * name is the name of the environment as specified by the user */ From b0d4c6f3ed3fcc3c34c590684e03f50f441bc880 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 15:42:19 +0000 Subject: [PATCH 020/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 535aacc3..0352f93a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-2b5d25c42aae80b17781d652e385cb0c6efa9473c3c5e131df8d8add561f4223.yml -openapi_spec_hash: b973ecdb8f4d13f56b64c4cafa605697 -config_hash: 5ae1121a61e0263e40f13c9d7d45c935 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1fab56fc7ffb9bb5d047373fb5b6e87bd4c9a0fe9722aaf8883cd610e7e49076.yml +openapi_spec_hash: f6cc68597aa394e0aff61a1134760180 +config_hash: 3baf22e1ba2ea473a953cae5b4983a59 From d10fab019c0ca47dd875ed2b316d795bc3f6cd47 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 15:57:08 +0000 Subject: [PATCH 021/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0352f93a..22d7adbc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1fab56fc7ffb9bb5d047373fb5b6e87bd4c9a0fe9722aaf8883cd610e7e49076.yml -openapi_spec_hash: f6cc68597aa394e0aff61a1134760180 -config_hash: 3baf22e1ba2ea473a953cae5b4983a59 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-15f2c0c63051be741e815dc5bdf3c872d44be772c59a2da699d8159ddde1ed8b.yml +openapi_spec_hash: f9694289a0a4550b5aaba20045aeb661 +config_hash: 46181938e983742bbe5ea736cb76993b From b25ce90fcccaa5dab211114e17d9c155f26b05c5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 16:01:53 +0000 Subject: [PATCH 022/151] chore(internal): move stringifyQuery implementation to internal function --- src/client.ts | 22 +++++----------------- src/internal/utils.ts | 1 + src/internal/utils/query.ts | 23 +++++++++++++++++++++++ tests/stringifyQuery.test.ts | 6 ++---- 4 files changed, 31 insertions(+), 21 deletions(-) create mode 100644 src/internal/utils/query.ts diff --git a/src/client.ts b/src/client.ts index 16a9b394..c6dd1324 100644 --- a/src/client.ts +++ b/src/client.ts @@ -18,6 +18,7 @@ import type { APIResponseProps } from './internal/parse'; import { getPlatformHeaders } from './internal/detect-platform'; import * as Shims from './internal/shims'; import * as Opts from './internal/request-options'; +import { stringifyQuery } from './internal/utils/query'; import { VERSION } from './version'; import * as Errors from './core/error'; import * as Pagination from './core/pagination'; @@ -572,21 +573,8 @@ export class Gitpod { /** * Basic re-implementation of `qs.stringify` for primitive types. */ - protected stringifyQuery(query: Record): string { - return Object.entries(query) - .filter(([_, value]) => typeof value !== 'undefined') - .map(([key, value]) => { - if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') { - return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`; - } - if (value === null) { - return `${encodeURIComponent(key)}=`; - } - throw new Errors.GitpodError( - `Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`, - ); - }) - .join('&'); + protected stringifyQuery(query: object | Record): string { + return stringifyQuery(query); } private getUserAgent(): string { @@ -623,7 +611,7 @@ export class Gitpod { } if (typeof query === 'object' && query && !Array.isArray(query)) { - url.search = this.stringifyQuery(query as Record); + url.search = this.stringifyQuery(query); } return url.toString(); @@ -1086,7 +1074,7 @@ export class Gitpod { ) { return { bodyHeaders: { 'content-type': 'application/x-www-form-urlencoded' }, - body: this.stringifyQuery(body as Record), + body: this.stringifyQuery(body), }; } else { return this.#encoder({ body, headers }); diff --git a/src/internal/utils.ts b/src/internal/utils.ts index 3cbfacce..c591353b 100644 --- a/src/internal/utils.ts +++ b/src/internal/utils.ts @@ -6,3 +6,4 @@ export * from './utils/env'; export * from './utils/log'; export * from './utils/uuid'; export * from './utils/sleep'; +export * from './utils/query'; diff --git a/src/internal/utils/query.ts b/src/internal/utils/query.ts new file mode 100644 index 00000000..202dd642 --- /dev/null +++ b/src/internal/utils/query.ts @@ -0,0 +1,23 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +import { GitpodError } from '../../core/error'; + +/** + * Basic re-implementation of `qs.stringify` for primitive types. + */ +export function stringifyQuery(query: object | Record) { + return Object.entries(query) + .filter(([_, value]) => typeof value !== 'undefined') + .map(([key, value]) => { + if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') { + return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`; + } + if (value === null) { + return `${encodeURIComponent(key)}=`; + } + throw new GitpodError( + `Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`, + ); + }) + .join('&'); +} diff --git a/tests/stringifyQuery.test.ts b/tests/stringifyQuery.test.ts index a5c8902d..e60a5e41 100644 --- a/tests/stringifyQuery.test.ts +++ b/tests/stringifyQuery.test.ts @@ -1,8 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { Gitpod } from '@gitpod/sdk'; - -const { stringifyQuery } = Gitpod.prototype as any; +import { stringifyQuery } from '@gitpod/sdk/internal/utils/query'; describe(stringifyQuery, () => { for (const [input, expected] of [ @@ -15,7 +13,7 @@ describe(stringifyQuery, () => { 'e=f', )}=${encodeURIComponent('g&h')}`, ], - ]) { + ] as const) { it(`${JSON.stringify(input)} -> ${expected}`, () => { expect(stringifyQuery(input)).toEqual(expected); }); From 1b36502903ea6f8a6b558bd152379137191907a8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 16:17:41 +0000 Subject: [PATCH 023/151] docs(api): clarify resourceId/resourceIds permission behavior in groups role assignments --- .stats.yml | 4 ++-- src/resources/groups/role-assignments.ts | 15 +++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.stats.yml b/.stats.yml index 22d7adbc..097d11e0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-15f2c0c63051be741e815dc5bdf3c872d44be772c59a2da699d8159ddde1ed8b.yml -openapi_spec_hash: f9694289a0a4550b5aaba20045aeb661 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6ddb2652b5fb1610666e18a37fff845ede972439790678f3a8cda6c10e359f68.yml +openapi_spec_hash: 264d8d361658501f45a7ac14ffd82e62 config_hash: 46181938e983742bbe5ea736cb76993b diff --git a/src/resources/groups/role-assignments.ts b/src/resources/groups/role-assignments.ts index f228dba4..1c8b950c 100644 --- a/src/resources/groups/role-assignments.ts +++ b/src/resources/groups/role-assignments.ts @@ -254,18 +254,17 @@ export namespace RoleAssignmentListParams { groupId?: string; /** - * Filters by a single resource. Use this when listing all groups that have access - * to a specific resource (e.g. share dialogs). Non-admin callers with :grant - * permission on the resource can see role assignments from groups they don't - * belong to. Mutually exclusive with resource_ids. + * Filters by a single resource. Non-admin callers with :grant permission on the + * resource can see role assignments from groups they don't belong to. Mutually + * exclusive with resource_ids. */ resourceId?: string; /** - * Filters by multiple resources in a single request. Use this for batch permission - * lookups (e.g. checking the caller's own permissions across several resources). - * Does not support the :grant permission bypass. Mutually exclusive with - * resource_id. + * Filters by multiple resources in a single request. Non-admin callers with :grant + * permission on a resource can see all role assignments for that resource, even + * from groups they don't belong to. The :grant check is applied per-resource + * within the batch. Mutually exclusive with resource_id. */ resourceIds?: Array; From decbf22e3a3f6e4825f56ccb73e938d05f07138a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 09:24:37 +0000 Subject: [PATCH 024/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 097d11e0..764f7c36 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6ddb2652b5fb1610666e18a37fff845ede972439790678f3a8cda6c10e359f68.yml -openapi_spec_hash: 264d8d361658501f45a7ac14ffd82e62 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-c3174438205baf14c66a8d57efd38f1e64bb9c5979146334023a742f4b65426c.yml +openapi_spec_hash: 128c9686ed1c6174e71eab661ef63bce config_hash: 46181938e983742bbe5ea736cb76993b From 4378ae76a8d9b668c2b428009c39ec35aa8dc781 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 10:39:34 +0000 Subject: [PATCH 025/151] feat(types): remove agent execution enum values from Principal and ResourceRole --- .stats.yml | 4 ++-- src/resources/shared.ts | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 764f7c36..9c136dfd 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-c3174438205baf14c66a8d57efd38f1e64bb9c5979146334023a742f4b65426c.yml -openapi_spec_hash: 128c9686ed1c6174e71eab661ef63bce +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b6950e81b6a48c630d396d3d36e8d4cfb10e92bb9839cddf44ecc7dd06bab57b.yml +openapi_spec_hash: a9719dc002914a9fbb09bea594104777 config_hash: 46181938e983742bbe5ea736cb76993b diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 536a56d3..251f7f25 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -172,8 +172,7 @@ export type Principal = | 'PRINCIPAL_RUNNER' | 'PRINCIPAL_ENVIRONMENT' | 'PRINCIPAL_SERVICE_ACCOUNT' - | 'PRINCIPAL_RUNNER_MANAGER' - | 'PRINCIPAL_AGENT_EXECUTION'; + | 'PRINCIPAL_RUNNER_MANAGER'; export interface ProjectEnvironmentClass { /** @@ -236,7 +235,6 @@ export type ResourceRole = | 'RESOURCE_ROLE_ENVIRONMENT_TASK_ENV' | 'RESOURCE_ROLE_SERVICE_ACCOUNT_IDENTITY' | 'RESOURCE_ROLE_SERVICE_ACCOUNT_ADMIN' - | 'RESOURCE_ROLE_AGENT_EXECUTION_IDENTITY' | 'RESOURCE_ROLE_AGENT_EXECUTION_USER' | 'RESOURCE_ROLE_AGENT_EXECUTION_ADMIN' | 'RESOURCE_ROLE_AGENT_EXECUTION_RUNNER' From 8bc4dd780908d6853d89b803caa340bf25537f4d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 11:14:52 +0000 Subject: [PATCH 026/151] feat(api): add filter parameter to groups list method --- .stats.yml | 4 ++-- src/resources/groups/groups.ts | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9c136dfd..84c0c592 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b6950e81b6a48c630d396d3d36e8d4cfb10e92bb9839cddf44ecc7dd06bab57b.yml -openapi_spec_hash: a9719dc002914a9fbb09bea594104777 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-776b637a72fdf509d1426a6fd7529f935fb920ba7dc55e4da9e32130f63df330.yml +openapi_spec_hash: 43b107cede38b82de2a9812840ebd18f config_hash: 46181938e983742bbe5ea736cb76993b diff --git a/src/resources/groups/groups.ts b/src/resources/groups/groups.ts index 6f472401..47ee809f 100644 --- a/src/resources/groups/groups.ts +++ b/src/resources/groups/groups.ts @@ -493,6 +493,11 @@ export interface GroupUpdateParams { } export interface GroupListParams extends GroupsPageParams { + /** + * Body param: filter contains options for filtering the list of groups. + */ + filter?: GroupListParams.Filter; + /** * Body param: pagination contains the pagination options for listing groups */ @@ -500,6 +505,16 @@ export interface GroupListParams extends GroupsPageParams { } export namespace GroupListParams { + /** + * filter contains options for filtering the list of groups. + */ + export interface Filter { + /** + * search performs case-insensitive search across group name, description, and ID + */ + search?: string; + } + /** * pagination contains the pagination options for listing groups */ From 5ac6ca1e6ad000bc26499d0c6f654f7a256c1344 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 15:10:55 +0000 Subject: [PATCH 027/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 84c0c592..aa052ca9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-776b637a72fdf509d1426a6fd7529f935fb920ba7dc55e4da9e32130f63df330.yml -openapi_spec_hash: 43b107cede38b82de2a9812840ebd18f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-cd2fb0d9ef1292b69e2a8bf7de48849e0eb9f3f44428c472603b611240b8c4d5.yml +openapi_spec_hash: 1485a4c623b139485bde309b7a597edb config_hash: 46181938e983742bbe5ea736cb76993b From 6caf4b80439d71507343b99b72950959079abe18 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 19:30:43 +0000 Subject: [PATCH 028/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index aa052ca9..6f6fe282 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-cd2fb0d9ef1292b69e2a8bf7de48849e0eb9f3f44428c472603b611240b8c4d5.yml -openapi_spec_hash: 1485a4c623b139485bde309b7a597edb -config_hash: 46181938e983742bbe5ea736cb76993b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d7f548d9bd50aca802b55ace7e9194d8dbe4a96a1258abcc4786cb00094b6802.yml +openapi_spec_hash: d29ac6bb840f1dcfec0ab4b7e1235060 +config_hash: 343503f34d4ea5e1d46f58f24519a796 From ad400e2a897ed2b82a4dff08de92b16d74b0e6d1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 23:07:36 +0000 Subject: [PATCH 029/151] chore(docs): add missing descriptions --- src/client.ts | 11 +++++++++++ src/resources/errors.ts | 4 ++++ src/resources/prebuilds.ts | 4 ++++ src/resources/usage.ts | 3 +++ 4 files changed, 22 insertions(+) diff --git a/src/client.ts b/src/client.ts index c6dd1324..ba89f33e 100644 --- a/src/client.ts +++ b/src/client.ts @@ -1104,16 +1104,27 @@ export class Gitpod { agents: API.Agents = new API.Agents(this); editors: API.Editors = new API.Editors(this); environments: API.Environments = new API.Environments(this); + /** + * ErrorsService provides endpoints for clients to report errors + * that will be sent to error reporting systems. + */ errors: API.Errors = new API.Errors(this); events: API.Events = new API.Events(this); gateways: API.Gateways = new API.Gateways(this); groups: API.Groups = new API.Groups(this); identity: API.Identity = new API.Identity(this); organizations: API.Organizations = new API.Organizations(this); + /** + * PrebuildService manages prebuilds for projects to enable faster environment startup times. + * Prebuilds create snapshots of environments that can be used to provision new environments quickly. + */ prebuilds: API.Prebuilds = new API.Prebuilds(this); projects: API.Projects = new API.Projects(this); runners: API.Runners = new API.Runners(this); secrets: API.Secrets = new API.Secrets(this); + /** + * UsageService provides usage information about environments, users, and projects. + */ usage: API.Usage = new API.Usage(this); users: API.Users = new API.Users(this); } diff --git a/src/resources/errors.ts b/src/resources/errors.ts index c78f5e2e..921bcfdd 100644 --- a/src/resources/errors.ts +++ b/src/resources/errors.ts @@ -4,6 +4,10 @@ import { APIResource } from '../core/resource'; import { APIPromise } from '../core/api-promise'; import { RequestOptions } from '../internal/request-options'; +/** + * ErrorsService provides endpoints for clients to report errors + * that will be sent to error reporting systems. + */ export class Errors extends APIResource { /** * ReportErrors allows clients to report batches of errors that will be sent to diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index 5857fed9..d9c31124 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -7,6 +7,10 @@ import { APIPromise } from '../core/api-promise'; import { PagePromise, PrebuildsPage, type PrebuildsPageParams } from '../core/pagination'; import { RequestOptions } from '../internal/request-options'; +/** + * PrebuildService manages prebuilds for projects to enable faster environment startup times. + * Prebuilds create snapshots of environments that can be used to provision new environments quickly. + */ export class Prebuilds extends APIResource { /** * Creates a prebuild for a project. diff --git a/src/resources/usage.ts b/src/resources/usage.ts index fa5f052a..0782706e 100644 --- a/src/resources/usage.ts +++ b/src/resources/usage.ts @@ -4,6 +4,9 @@ import { APIResource } from '../core/resource'; import { PagePromise, RecordsPage, type RecordsPageParams } from '../core/pagination'; import { RequestOptions } from '../internal/request-options'; +/** + * UsageService provides usage information about environments, users, and projects. + */ export class Usage extends APIResource { /** * Lists completed environment runtime records within a specified date range. From 4e4cf9c8c51749944cd4d37f98ca46fd48524b0f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 12:12:30 +0000 Subject: [PATCH 030/151] feat(api): add acknowledgeToken parameter to environments start method --- .stats.yml | 4 ++-- src/resources/environments/environments.ts | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6f6fe282..5d8449d1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d7f548d9bd50aca802b55ace7e9194d8dbe4a96a1258abcc4786cb00094b6802.yml -openapi_spec_hash: d29ac6bb840f1dcfec0ab4b7e1235060 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b501e4da71906d7d2cfb49ff85c4d1316592623392cf00cb535938b7844f469b.yml +openapi_spec_hash: 5b1bd959ae6f6a909b3d00acbb49ea78 config_hash: 343503f34d4ea5e1d46f58f24519a796 diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index 32f7698f..94afff84 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -1927,6 +1927,13 @@ export interface EnvironmentMarkActiveParams { } export interface EnvironmentStartParams { + /** + * acknowledge_token is the HMAC token from a previous + * EnvironmentMaxLifetimeEnforcementDetails response, allowing the user to start an + * environment past its max lifetime in warn mode. + */ + acknowledgeToken?: string; + /** * environment_id specifies which environment should be started. */ From 6d86bcd2259185a84d4e74029157538784dcb54b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 13:30:33 +0000 Subject: [PATCH 031/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5d8449d1..43eb27f6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b501e4da71906d7d2cfb49ff85c4d1316592623392cf00cb535938b7844f469b.yml -openapi_spec_hash: 5b1bd959ae6f6a909b3d00acbb49ea78 -config_hash: 343503f34d4ea5e1d46f58f24519a796 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5b98a29682165caf4e36ec765ee98bde27789f634486cbf4f5410eb15e8748d2.yml +openapi_spec_hash: f013c12b05b6813f3b3c06b95e443543 +config_hash: 2ccc720c40279ba2b77b64507b6e9621 From 94df067216a9386a0486f609136b0fa4a76eb452 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:13:29 +0000 Subject: [PATCH 032/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 43eb27f6..8d505c88 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5b98a29682165caf4e36ec765ee98bde27789f634486cbf4f5410eb15e8748d2.yml -openapi_spec_hash: f013c12b05b6813f3b3c06b95e443543 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7f650e7c07a6256395063855ce265987aa6bc16d3d8d0d740f1e4bf6d63d162c.yml +openapi_spec_hash: 11306b12c04b848e239afdd71e3034f9 config_hash: 2ccc720c40279ba2b77b64507b6e9621 From 81f9de95fe254996fccd889b72921ef2b82ff91c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:45:42 +0000 Subject: [PATCH 033/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8d505c88..3e687310 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7f650e7c07a6256395063855ce265987aa6bc16d3d8d0d740f1e4bf6d63d162c.yml -openapi_spec_hash: 11306b12c04b848e239afdd71e3034f9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-def2db81f6becdef534b062180365fc518fd77f8a8dfaf6bc50a79b65f34530a.yml +openapi_spec_hash: cc85813a9997d3e1305d1f500253438f config_hash: 2ccc720c40279ba2b77b64507b6e9621 From 77917e43fbdc905617e238b8f2d0c1a9e5c9fade Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 20:21:09 +0000 Subject: [PATCH 034/151] fix(api): remove acknowledgeToken parameter from environments start method --- .stats.yml | 4 ++-- src/resources/environments/environments.ts | 7 ------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e687310..7fe5d35f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-def2db81f6becdef534b062180365fc518fd77f8a8dfaf6bc50a79b65f34530a.yml -openapi_spec_hash: cc85813a9997d3e1305d1f500253438f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-227a61cdae589a1212231e9cd93e8aeef25f78c3360bb3622bc1e749f8508971.yml +openapi_spec_hash: d55bb6b8967f31e9b8cb6f6de9f8fefd config_hash: 2ccc720c40279ba2b77b64507b6e9621 diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index 94afff84..32f7698f 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -1927,13 +1927,6 @@ export interface EnvironmentMarkActiveParams { } export interface EnvironmentStartParams { - /** - * acknowledge_token is the HMAC token from a previous - * EnvironmentMaxLifetimeEnforcementDetails response, allowing the user to start an - * environment past its max lifetime in warn mode. - */ - acknowledgeToken?: string; - /** * environment_id specifies which environment should be started. */ From 79c90efb5e97c77c1c8172996f45082487f0bf94 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 13:33:16 +0000 Subject: [PATCH 035/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7fe5d35f..d445b5f3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-227a61cdae589a1212231e9cd93e8aeef25f78c3360bb3622bc1e749f8508971.yml -openapi_spec_hash: d55bb6b8967f31e9b8cb6f6de9f8fefd -config_hash: 2ccc720c40279ba2b77b64507b6e9621 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7813baf7c65298927bd9044af861b813f95234a32b149904aa533e236a1d5bc4.yml +openapi_spec_hash: 9a58fc72434461a16e0107d0444d3692 +config_hash: bca433624b21694253f4bcfbae4755de From ece5fffacdd9476ef65965276c0bb723f2187232 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 15:02:15 +0000 Subject: [PATCH 036/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index d445b5f3..778894b9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7813baf7c65298927bd9044af861b813f95234a32b149904aa533e236a1d5bc4.yml -openapi_spec_hash: 9a58fc72434461a16e0107d0444d3692 -config_hash: bca433624b21694253f4bcfbae4755de +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7a29c69ab60c231f97fcde7e5c26c616622150422bac562e337d61766c9d706f.yml +openapi_spec_hash: 179a6c42e3237a19162cdad3abe057a1 +config_hash: 715e953acf41f9c19fd19ec85e91a053 From f0c24d2c95c87cfbe3dbe162c56dd2e0a4a0f770 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 08:55:53 +0000 Subject: [PATCH 037/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 778894b9..f7200a93 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7a29c69ab60c231f97fcde7e5c26c616622150422bac562e337d61766c9d706f.yml -openapi_spec_hash: 179a6c42e3237a19162cdad3abe057a1 -config_hash: 715e953acf41f9c19fd19ec85e91a053 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-10e4732dd5dee452719295e8f173113c23a344aef1303c499da41483996eebd3.yml +openapi_spec_hash: 8bd2f5a641f38119443a9441e6b2f509 +config_hash: 616ec36ed369bae528a26b639b765754 From d7dee782586a5d1685a6a3c740e3fa2dc4d80bd5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:17:46 +0000 Subject: [PATCH 038/151] feat: [backend/api] add backend search for group members --- .stats.yml | 4 ++-- src/resources/groups/memberships.ts | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f7200a93..df8dfa71 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-10e4732dd5dee452719295e8f173113c23a344aef1303c499da41483996eebd3.yml -openapi_spec_hash: 8bd2f5a641f38119443a9441e6b2f509 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-0ce6b31b2b602e71c429c0a3b6badb639c6a8efdda66ae724abaf57cdd279429.yml +openapi_spec_hash: 36b42ad4f9be97ce27e8d2243a3f9e1c config_hash: 616ec36ed369bae528a26b639b765754 diff --git a/src/resources/groups/memberships.ts b/src/resources/groups/memberships.ts index 977b08f2..b6ab33fd 100644 --- a/src/resources/groups/memberships.ts +++ b/src/resources/groups/memberships.ts @@ -245,6 +245,11 @@ export interface MembershipRetrieveParams { } export interface MembershipListParams extends MembersPageParams { + /** + * Body param: filter contains options for filtering the list of memberships. + */ + filter?: MembershipListParams.Filter; + /** * Body param */ @@ -257,6 +262,17 @@ export interface MembershipListParams extends MembersPageParams { } export namespace MembershipListParams { + /** + * filter contains options for filtering the list of memberships. + */ + export interface Filter { + /** + * search performs case-insensitive search across member name, email, ID, and + * service account name and description + */ + search?: string; + } + /** * pagination contains the pagination options for listing memberships */ From 07bb8ec587dd0b5b1d5b43ed506ab8733ebbd073 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:55:35 +0000 Subject: [PATCH 039/151] feat(api): add resourceTypeFilters parameter to events watch method --- .stats.yml | 4 ++-- src/resources/events.ts | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index df8dfa71..7f33d30f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-0ce6b31b2b602e71c429c0a3b6badb639c6a8efdda66ae724abaf57cdd279429.yml -openapi_spec_hash: 36b42ad4f9be97ce27e8d2243a3f9e1c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1968882466818a42e20c78ead4d7565ffb92872416a570e5d6a2f9e2cf024e58.yml +openapi_spec_hash: 510d568d2b22bcef55ffe1d1d6abd926 config_hash: 616ec36ed369bae528a26b639b765754 diff --git a/src/resources/events.ts b/src/resources/events.ts index 0d84a7ff..c37567b7 100644 --- a/src/resources/events.ts +++ b/src/resources/events.ts @@ -303,6 +303,40 @@ export interface EventWatchParams { * events are produed. */ organization?: boolean; + + /** + * Filters to limit which events are delivered on organization-scoped streams. When + * empty, all events for the scope are delivered. When populated, only events + * matching at least one filter entry are forwarded. Not supported for + * environment-scoped streams; setting this field returns an error. + */ + resourceTypeFilters?: Array; +} + +export namespace EventWatchParams { + /** + * ResourceTypeFilter restricts which events are delivered for a specific resource + * type. + */ + export interface ResourceTypeFilter { + /** + * If non-empty, only events where the resource was created by one of these user + * IDs are delivered. Skipped for DELETE operations (creator info is unavailable + * after deletion). Events with no creator information are skipped when this filter + * is set (fail-closed). + */ + creatorIds?: Array; + + /** + * If non-empty, only events for these specific resource IDs are delivered. + */ + resourceIds?: Array; + + /** + * The resource type to filter for. + */ + resourceType?: Shared.ResourceType; + } } export declare namespace Events { From e7abc9ea29b774fb0bb7253cd6db94e53f00e0a3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 14:58:07 +0000 Subject: [PATCH 040/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7f33d30f..8b7362ee 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1968882466818a42e20c78ead4d7565ffb92872416a570e5d6a2f9e2cf024e58.yml -openapi_spec_hash: 510d568d2b22bcef55ffe1d1d6abd926 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-77eb1a0016f04591ada6cf48b9981ee9c6a5d342a8c905ce968cb82ea2304886.yml +openapi_spec_hash: bf3810346fba6627bf4173f6dff0e0e0 config_hash: 616ec36ed369bae528a26b639b765754 From 510f3f8486518e6fb69f44cbc7b34e842b22c1ca Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 15:05:26 +0000 Subject: [PATCH 041/151] feat(api): add organizationTier to identity authenticated response --- .stats.yml | 4 ++-- src/resources/identity.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8b7362ee..9e855f1a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-77eb1a0016f04591ada6cf48b9981ee9c6a5d342a8c905ce968cb82ea2304886.yml -openapi_spec_hash: bf3810346fba6627bf4173f6dff0e0e0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-bb735be0ce5fbec3b2cfedea3c62451aaa06bba7c96529d2bd3926a1d18b6f5e.yml +openapi_spec_hash: 0aa3833a646110eb40cd4dc9062eecd3 config_hash: 616ec36ed369bae528a26b639b765754 diff --git a/src/resources/identity.ts b/src/resources/identity.ts index 3b2dc4bc..efe362aa 100644 --- a/src/resources/identity.ts +++ b/src/resources/identity.ts @@ -132,6 +132,8 @@ export interface IdentityExchangeTokenResponse { export interface IdentityGetAuthenticatedIdentityResponse { organizationId?: string; + organizationTier?: string; + /** * subject is the identity of the current user */ From 65feb2e073a0e84c1e1e6f1c087a8a5154e88453 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 08:41:38 +0000 Subject: [PATCH 042/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9e855f1a..4bda1716 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-bb735be0ce5fbec3b2cfedea3c62451aaa06bba7c96529d2bd3926a1d18b6f5e.yml -openapi_spec_hash: 0aa3833a646110eb40cd4dc9062eecd3 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7ec4b48b5de101f1adf65b9cb947dc94285681867703fa0934aad768c872b71d.yml +openapi_spec_hash: 23699c122dbe3e98ca77011ed8ffd465 config_hash: 616ec36ed369bae528a26b639b765754 From 858345c8d80809668d46f6b0757c0fb14702cb73 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 09:27:33 +0000 Subject: [PATCH 043/151] fix: fix request delays for retrying to be more respectful of high requested delays --- src/client.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client.ts b/src/client.ts index ba89f33e..d1007796 100644 --- a/src/client.ts +++ b/src/client.ts @@ -940,9 +940,9 @@ export class Gitpod { } } - // If the API asks us to wait a certain amount of time (and it's a reasonable amount), - // just do what it says, but otherwise calculate a default - if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) { + // If the API asks us to wait a certain amount of time, just do what it + // says, but otherwise calculate a default + if (timeoutMillis === undefined) { const maxRetries = options.maxRetries ?? this.maxRetries; timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries); } From 1c87f1a7ee9bb2b5b7bdbfbb5dc190d8279d6a1a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 13:34:49 +0000 Subject: [PATCH 044/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4bda1716..8b1fc591 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7ec4b48b5de101f1adf65b9cb947dc94285681867703fa0934aad768c872b71d.yml -openapi_spec_hash: 23699c122dbe3e98ca77011ed8ffd465 -config_hash: 616ec36ed369bae528a26b639b765754 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-da171ca89186ec1ab21ac52c18c8848af491b06c0362b45b369a4c63c5db4b8b.yml +openapi_spec_hash: 0843635678e90d8aea726f3aba6265d1 +config_hash: e276b61fe25bd7cbb0ddad1a103108e8 From f7ee36368822b4dbad149abf3d1944a6d3f1a2fb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 12:26:13 +0000 Subject: [PATCH 045/151] feat(api): add RUNNER_CAPABILITY_WARM_POOL to RunnerCapability enum --- .stats.yml | 4 ++-- src/resources/runners/runners.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8b1fc591..66c1ec9a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-da171ca89186ec1ab21ac52c18c8848af491b06c0362b45b369a4c63c5db4b8b.yml -openapi_spec_hash: 0843635678e90d8aea726f3aba6265d1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-cb8a5fb9581bfc498c35130cbe1fc78ca7249282b44af108c6cd3fccaf337265.yml +openapi_spec_hash: abeeb3d26bbf9b8a9b6704f2709ade3b config_hash: e276b61fe25bd7cbb0ddad1a103108e8 diff --git a/src/resources/runners/runners.ts b/src/resources/runners/runners.ts index 31deff26..f0f1eee2 100644 --- a/src/resources/runners/runners.ts +++ b/src/resources/runners/runners.ts @@ -623,7 +623,8 @@ export type RunnerCapability = | 'RUNNER_CAPABILITY_PREBUILDS_BEFORE_SNAPSHOT_TRIGGER' | 'RUNNER_CAPABILITY_LIST_SCM_ORGANIZATIONS' | 'RUNNER_CAPABILITY_CHECK_REPOSITORY_ACCESS' - | 'RUNNER_CAPABILITY_RUNNER_SIDE_AGENT'; + | 'RUNNER_CAPABILITY_RUNNER_SIDE_AGENT' + | 'RUNNER_CAPABILITY_WARM_POOL'; export interface RunnerConfiguration { /** From 49a254a20c1966e30bbd4d0e7efe1a124fd0f12e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 12:51:43 +0000 Subject: [PATCH 046/151] feat(api): add excludePromptContent parameter to agents list prompts method --- .stats.yml | 4 ++-- src/resources/agents.ts | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 66c1ec9a..c687f79e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-cb8a5fb9581bfc498c35130cbe1fc78ca7249282b44af108c6cd3fccaf337265.yml -openapi_spec_hash: abeeb3d26bbf9b8a9b6704f2709ade3b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-e4a03098a3a5e4104a7d4feb50e32642185be6792e839f19f17b95af1f0fea93.yml +openapi_spec_hash: 34c3f9d3172d66b7c9f788d282529681 config_hash: e276b61fe25bd7cbb0ddad1a103108e8 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index cd119fbe..723bbd5f 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1419,6 +1419,13 @@ export namespace AgentListPromptsParams { commandPrefix?: string; + /** + * exclude_prompt_content omits the large spec.prompt text from the response. Other + * spec fields (is_template, is_command, command, is_skill) are still returned. Use + * GetPrompt to retrieve the full prompt content when needed. + */ + excludePromptContent?: boolean; + isCommand?: boolean; isSkill?: boolean; From c47174a9c78d9785316d7f4085a4aea653b11cc1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 13:59:00 +0000 Subject: [PATCH 047/151] chore(types): move CountResponseRelation from organizations to shared --- .stats.yml | 6 +++--- api.md | 2 +- src/client.ts | 3 +-- src/resources/index.ts | 1 - src/resources/organizations/index.ts | 1 - src/resources/organizations/organizations.ts | 6 ------ src/resources/shared.ts | 5 +++++ 7 files changed, 10 insertions(+), 14 deletions(-) diff --git a/.stats.yml b/.stats.yml index c687f79e..bc99f504 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-e4a03098a3a5e4104a7d4feb50e32642185be6792e839f19f17b95af1f0fea93.yml -openapi_spec_hash: 34c3f9d3172d66b7c9f788d282529681 -config_hash: e276b61fe25bd7cbb0ddad1a103108e8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-14f83122502ae8a419398eb6c60cb80211dd32b25d85bf8e8892f836b2e7f8bd.yml +openapi_spec_hash: c0bed614e55432bf93d5179db05836aa +config_hash: b0027f25e9882d48e07f081a437d7732 diff --git a/api.md b/api.md index 36140ac9..fe841f3e 100644 --- a/api.md +++ b/api.md @@ -3,6 +3,7 @@ Types: - AutomationTrigger +- CountResponseRelation - EnvironmentClass - EnvironmentVariableItem - EnvironmentVariableSource @@ -336,7 +337,6 @@ Methods: Types: -- CountResponseRelation - InviteDomains - Organization - OrganizationMember diff --git a/src/client.ts b/src/client.ts index d1007796..3c2bc83c 100644 --- a/src/client.ts +++ b/src/client.ts @@ -280,7 +280,6 @@ import { GroupsGroupsPage, } from './resources/groups/groups'; import { - CountResponseRelation, InviteDomains, Organization, OrganizationCreateParams, @@ -1444,7 +1443,6 @@ export declare namespace Gitpod { export { Organizations as Organizations, - type CountResponseRelation as CountResponseRelation, type InviteDomains as InviteDomains, type Organization as Organization, type OrganizationMember as OrganizationMember, @@ -1597,6 +1595,7 @@ export declare namespace Gitpod { }; export type AutomationTrigger = API.AutomationTrigger; + export type CountResponseRelation = API.CountResponseRelation; export type EnvironmentClass = API.EnvironmentClass; export type EnvironmentVariableItem = API.EnvironmentVariableItem; export type EnvironmentVariableSource = API.EnvironmentVariableSource; diff --git a/src/resources/index.ts b/src/resources/index.ts index e4842066..ceb13641 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -152,7 +152,6 @@ export { } from './identity'; export { Organizations, - type CountResponseRelation, type InviteDomains, type Organization, type OrganizationMember, diff --git a/src/resources/organizations/index.ts b/src/resources/organizations/index.ts index 6f89c99d..82cec164 100644 --- a/src/resources/organizations/index.ts +++ b/src/resources/organizations/index.ts @@ -48,7 +48,6 @@ export { } from './invites'; export { Organizations, - type CountResponseRelation, type InviteDomains, type Organization, type OrganizationMember, diff --git a/src/resources/organizations/organizations.ts b/src/resources/organizations/organizations.ts index 3d3738f2..5d7d28fa 100644 --- a/src/resources/organizations/organizations.ts +++ b/src/resources/organizations/organizations.ts @@ -452,11 +452,6 @@ export class Organizations extends APIResource { export type OrganizationMembersMembersPage = MembersPage; -export type CountResponseRelation = - | 'COUNT_RESPONSE_RELATION_UNSPECIFIED' - | 'COUNT_RESPONSE_RELATION_EQ' - | 'COUNT_RESPONSE_RELATION_GTE'; - export interface InviteDomains { /** * domains is the list of domains that are allowed to join the organization @@ -980,7 +975,6 @@ Organizations.SSOConfigurations = SSOConfigurations; export declare namespace Organizations { export { - type CountResponseRelation as CountResponseRelation, type InviteDomains as InviteDomains, type Organization as Organization, type OrganizationMember as OrganizationMember, diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 251f7f25..e73e8cc5 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -39,6 +39,11 @@ export interface AutomationTrigger { prebuild?: boolean; } +export type CountResponseRelation = + | 'COUNT_RESPONSE_RELATION_UNSPECIFIED' + | 'COUNT_RESPONSE_RELATION_EQ' + | 'COUNT_RESPONSE_RELATION_GTE'; + export interface EnvironmentClass { /** * id is the unique identifier of the environment class From 94d202a93d30b848525b3fc64c719cac5658f5d3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 17:36:09 +0000 Subject: [PATCH 048/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index bc99f504..240399bb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-14f83122502ae8a419398eb6c60cb80211dd32b25d85bf8e8892f836b2e7f8bd.yml -openapi_spec_hash: c0bed614e55432bf93d5179db05836aa -config_hash: b0027f25e9882d48e07f081a437d7732 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-29973f5cca3188a76cec5213b5561bc79159c927dd53ba05ab23faffc3061058.yml +openapi_spec_hash: d4f8cd1e7e0d486f24ca7d7012e304e2 +config_hash: 41d143fd11898761ee80baf693afe8c7 From a4c7e10ee9bda8648752c8c56f49960a54cca88a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 12:59:33 +0000 Subject: [PATCH 049/151] chore(ci): skip uploading artifacts on stainless-internal branches --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cd066e6f..1ef64e78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,14 +55,18 @@ jobs: run: ./scripts/build - name: Get GitHub OIDC Token - if: github.repository == 'stainless-sdks/gitpod-typescript' + if: |- + github.repository == 'stainless-sdks/gitpod-typescript' && + !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc uses: actions/github-script@v8 with: script: core.setOutput('github_token', await core.getIDToken()); - name: Upload tarball - if: github.repository == 'stainless-sdks/gitpod-typescript' + if: |- + github.repository == 'stainless-sdks/gitpod-typescript' && + !startsWith(github.ref, 'refs/heads/stl/') env: URL: https://pkg.stainless.com/s AUTH: ${{ steps.github-oidc.outputs.github_token }} From 7424783edb1c99c339910557206e36d02cc9ad75 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:57:53 +0000 Subject: [PATCH 050/151] fix(client): preserve URL params already embedded in path --- src/client.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/client.ts b/src/client.ts index 3c2bc83c..f2fd9ef8 100644 --- a/src/client.ts +++ b/src/client.ts @@ -605,8 +605,9 @@ export class Gitpod { : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path)); const defaultQuery = this.defaultQuery(); - if (!isEmptyObj(defaultQuery)) { - query = { ...defaultQuery, ...query }; + const pathQuery = Object.fromEntries(url.searchParams); + if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) { + query = { ...pathQuery, ...defaultQuery, ...query }; } if (typeof query === 'object' && query && !Array.isArray(query)) { From 0ef9494e37d62933fea68a26d73c8932f7ebce11 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2026 02:41:56 +0000 Subject: [PATCH 051/151] feat(api): add sessionId parameter to agents and environments --- .stats.yml | 6 +++--- src/resources/agents.ts | 6 ++++++ src/resources/environments/environments.ts | 6 ++++++ src/resources/shared.ts | 5 ++++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 240399bb..6ca06ab7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-29973f5cca3188a76cec5213b5561bc79159c927dd53ba05ab23faffc3061058.yml -openapi_spec_hash: d4f8cd1e7e0d486f24ca7d7012e304e2 -config_hash: 41d143fd11898761ee80baf693afe8c7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d162e721d07ef5297f2abd69181b59d8a816e0336ff4a874f4ab71628d1cd6a1.yml +openapi_spec_hash: bbad573f1e007ffff0dc2b1fd002c628 +config_hash: ab6aa39d26327d859f6a418e5efa2b35 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index 723bbd5f..3dcfc018 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1489,6 +1489,12 @@ export interface AgentStartExecutionParams { */ runnerId?: string; + /** + * session_id is the ID of the session this agent execution belongs to. If empty, a + * new session is created implicitly. + */ + sessionId?: string; + /** * workflow_action_id is an optional reference to the workflow execution action * that created this agent execution. Used for tracking and event correlation. diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index 32f7698f..feb53404 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -1605,6 +1605,12 @@ export interface EnvironmentCreateParams { */ name?: string | null; + /** + * session_id is the ID of the session this environment belongs to. If empty, a new + * session is created implicitly. + */ + sessionId?: string; + /** * spec is the configuration of the environment that's required for the to start * the environment diff --git a/src/resources/shared.ts b/src/resources/shared.ts index e73e8cc5..c1f2bdb3 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -257,7 +257,10 @@ export type ResourceRole = | 'RESOURCE_ROLE_WEBHOOK_VIEWER' | 'RESOURCE_ROLE_WARMPOOL_RUNNER' | 'RESOURCE_ROLE_WARMPOOL_ADMIN' - | 'RESOURCE_ROLE_WARMPOOL_VIEWER'; + | 'RESOURCE_ROLE_WARMPOOL_VIEWER' + | 'RESOURCE_ROLE_SESSION_EDITOR' + | 'RESOURCE_ROLE_SESSION_CONTRIBUTOR' + | 'RESOURCE_ROLE_SESSION_VIEWER'; export type ResourceType = | 'RESOURCE_TYPE_UNSPECIFIED' From 17124f098f482d4d8160f40b26439eb0f741b5e0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 16:41:05 +0000 Subject: [PATCH 052/151] feat(api): add snapshotSizeBytes field to PrebuildStatus --- .stats.yml | 4 ++-- src/resources/prebuilds.ts | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6ca06ab7..cd730344 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d162e721d07ef5297f2abd69181b59d8a816e0336ff4a874f4ab71628d1cd6a1.yml -openapi_spec_hash: bbad573f1e007ffff0dc2b1fd002c628 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-8e3ee49e0108858b4375e383823a65ef1f13cfcd63ee9bbb6a73391691aaad57.yml +openapi_spec_hash: 7ec117af0ecf6980bc0d3c1f50ca3d0a config_hash: ab6aa39d26327d859f6a418e5efa2b35 diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index d9c31124..d3cdbaf8 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -365,6 +365,12 @@ export interface PrebuildStatus { */ snapshotCompletionPercentage?: number; + /** + * snapshot_size_bytes is the size of the snapshot in bytes. Only populated when + * the snapshot is available (phase is COMPLETED). + */ + snapshotSizeBytes?: string; + /** * status_version is incremented each time the status is updated. Used for * optimistic concurrency control. From 7e516ebcd34c8c064065d082d63d5d0ad359f5e4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 16:52:46 +0000 Subject: [PATCH 053/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index cd730344..c45eeffb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-8e3ee49e0108858b4375e383823a65ef1f13cfcd63ee9bbb6a73391691aaad57.yml -openapi_spec_hash: 7ec117af0ecf6980bc0d3c1f50ca3d0a -config_hash: ab6aa39d26327d859f6a418e5efa2b35 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-94c14ac4e7b3f6b74102d8be754d31027df8880df17d9159e510e43225bf0f7c.yml +openapi_spec_hash: 5dc17a3af8103c3981f79d9798e5231f +config_hash: b0b039a51d7272a198c8fce8124b782b From 3daa97802cc6ccbfc732028820ff17c46f775503 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 21:36:49 +0000 Subject: [PATCH 054/151] chore(internal): update dependencies to address dependabot vulnerabilities --- package.json | 11 +++++++++++ yarn.lock | 45 +++++++++------------------------------------ 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 0be43805..2aba7e90 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,17 @@ "typescript": "5.8.3", "typescript-eslint": "8.31.1" }, + "overrides": { + "minimatch": "^9.0.5" + }, + "pnpm": { + "overrides": { + "minimatch": "^9.0.5" + } + }, + "resolutions": { + "minimatch": "^9.0.5" + }, "exports": { ".": { "import": "./dist/index.mjs", diff --git a/yarn.lock b/yarn.lock index b1ef43e1..17b091f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1267,15 +1267,7 @@ bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: dependencies: tweetnacl "^0.14.3" -brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: +brace-expansion@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== @@ -1448,11 +1440,6 @@ commander@^10.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -2688,26 +2675,12 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2, minimatch@^5.0.1, minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.9" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" + integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^2.0.2" minimist@^1.2.6: version "1.2.6" @@ -2739,9 +2712,9 @@ mz@^2.4.0: thenify-all "^1.0.0" nan@^2.19.0, nan@^2.23.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.24.0.tgz#a8919b36e692aa5b260831910e4f81419fc0a283" - integrity sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg== + version "2.26.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.26.2.tgz#2e5e25764224c737b9897790b57c3294d4dcee9c" + integrity sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw== natural-compare@^1.4.0: version "1.4.0" From 3b7ab869b9ac7dbf5cf06dc192f23ab8c5d3f36c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:34:28 +0000 Subject: [PATCH 055/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index c45eeffb..da34b10d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 175 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-94c14ac4e7b3f6b74102d8be754d31027df8880df17d9159e510e43225bf0f7c.yml -openapi_spec_hash: 5dc17a3af8103c3981f79d9798e5231f -config_hash: b0b039a51d7272a198c8fce8124b782b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-aff091b0b0cbc5539f259dec6aa0f89853d79ad407b3252f769a6f90422dd0df.yml +openapi_spec_hash: a6873fd8f07ec0b9ecdc85d187ac4129 +config_hash: 834f0fffab6de425144c4705fcd7228a From 2ebb4cdb5f1461a96bac9b29cc4ffcf1dbf9c439 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:40:19 +0000 Subject: [PATCH 056/151] feat(api): add warm pool CRUD methods and types to prebuilds --- .stats.yml | 4 +- api.md | 14 + src/client.ts | 38 +++ src/core/pagination.ts | 55 ++++ src/resources/index.ts | 15 + src/resources/prebuilds.ts | 444 +++++++++++++++++++++++++- tests/api-resources/prebuilds.test.ts | 100 ++++++ 7 files changed, 667 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index da34b10d..3b477db3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 175 +configured_endpoints: 180 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-aff091b0b0cbc5539f259dec6aa0f89853d79ad407b3252f769a6f90422dd0df.yml openapi_spec_hash: a6873fd8f07ec0b9ecdc85d187ac4129 -config_hash: 834f0fffab6de425144c4705fcd7228a +config_hash: 0ec0dc7b6891f666565cf1521a8d172f diff --git a/api.md b/api.md index fe841f3e..d9527b29 100644 --- a/api.md +++ b/api.md @@ -493,11 +493,20 @@ Types: - PrebuildSpec - PrebuildStatus - PrebuildTrigger +- WarmPool +- WarmPoolMetadata +- WarmPoolPhase +- WarmPoolSpec +- WarmPoolStatus - PrebuildCreateResponse - PrebuildRetrieveResponse - PrebuildDeleteResponse - PrebuildCancelResponse - PrebuildCreateLogsTokenResponse +- PrebuildCreateWarmPoolResponse +- PrebuildDeleteWarmPoolResponse +- PrebuildRetrieveWarmPoolResponse +- PrebuildUpdateWarmPoolResponse Methods: @@ -507,6 +516,11 @@ Methods: - client.prebuilds.delete({ ...params }) -> unknown - client.prebuilds.cancel({ ...params }) -> PrebuildCancelResponse - client.prebuilds.createLogsToken({ ...params }) -> PrebuildCreateLogsTokenResponse +- client.prebuilds.createWarmPool({ ...params }) -> PrebuildCreateWarmPoolResponse +- client.prebuilds.deleteWarmPool({ ...params }) -> unknown +- client.prebuilds.listWarmPools({ ...params }) -> WarmPoolsWarmPoolsPage +- client.prebuilds.retrieveWarmPool({ ...params }) -> PrebuildRetrieveWarmPoolResponse +- client.prebuilds.updateWarmPool({ ...params }) -> PrebuildUpdateWarmPoolResponse # Projects diff --git a/src/client.ts b/src/client.ts index f2fd9ef8..1ba2d039 100644 --- a/src/client.ts +++ b/src/client.ts @@ -84,6 +84,8 @@ import { TasksPageResponse, type TokensPageParams, TokensPageResponse, + type WarmPoolsPageParams, + WarmPoolsPageResponse, } from './core/pagination'; import * as Uploads from './core/uploads'; import * as API from './resources/index'; @@ -193,18 +195,33 @@ import { PrebuildCreateLogsTokenResponse, PrebuildCreateParams, PrebuildCreateResponse, + PrebuildCreateWarmPoolParams, + PrebuildCreateWarmPoolResponse, PrebuildDeleteParams, PrebuildDeleteResponse, + PrebuildDeleteWarmPoolParams, + PrebuildDeleteWarmPoolResponse, PrebuildListParams, + PrebuildListWarmPoolsParams, PrebuildMetadata, PrebuildPhase, PrebuildRetrieveParams, PrebuildRetrieveResponse, + PrebuildRetrieveWarmPoolParams, + PrebuildRetrieveWarmPoolResponse, PrebuildSpec, PrebuildStatus, PrebuildTrigger, + PrebuildUpdateWarmPoolParams, + PrebuildUpdateWarmPoolResponse, Prebuilds, PrebuildsPrebuildsPage, + WarmPool, + WarmPoolMetadata, + WarmPoolPhase, + WarmPoolSpec, + WarmPoolStatus, + WarmPoolsWarmPoolsPage, } from './resources/prebuilds'; import { Secret, @@ -1284,6 +1301,12 @@ export declare namespace Gitpod { export import TokensPage = Pagination.TokensPage; export { type TokensPageParams as TokensPageParams, type TokensPageResponse as TokensPageResponse }; + export import WarmPoolsPage = Pagination.WarmPoolsPage; + export { + type WarmPoolsPageParams as WarmPoolsPageParams, + type WarmPoolsPageResponse as WarmPoolsPageResponse, + }; + export { Accounts as Accounts, type Account as Account, @@ -1473,18 +1496,33 @@ export declare namespace Gitpod { type PrebuildSpec as PrebuildSpec, type PrebuildStatus as PrebuildStatus, type PrebuildTrigger as PrebuildTrigger, + type WarmPool as WarmPool, + type WarmPoolMetadata as WarmPoolMetadata, + type WarmPoolPhase as WarmPoolPhase, + type WarmPoolSpec as WarmPoolSpec, + type WarmPoolStatus as WarmPoolStatus, type PrebuildCreateResponse as PrebuildCreateResponse, type PrebuildRetrieveResponse as PrebuildRetrieveResponse, type PrebuildDeleteResponse as PrebuildDeleteResponse, type PrebuildCancelResponse as PrebuildCancelResponse, type PrebuildCreateLogsTokenResponse as PrebuildCreateLogsTokenResponse, + type PrebuildCreateWarmPoolResponse as PrebuildCreateWarmPoolResponse, + type PrebuildDeleteWarmPoolResponse as PrebuildDeleteWarmPoolResponse, + type PrebuildRetrieveWarmPoolResponse as PrebuildRetrieveWarmPoolResponse, + type PrebuildUpdateWarmPoolResponse as PrebuildUpdateWarmPoolResponse, type PrebuildsPrebuildsPage as PrebuildsPrebuildsPage, + type WarmPoolsWarmPoolsPage as WarmPoolsWarmPoolsPage, type PrebuildCreateParams as PrebuildCreateParams, type PrebuildRetrieveParams as PrebuildRetrieveParams, type PrebuildListParams as PrebuildListParams, type PrebuildDeleteParams as PrebuildDeleteParams, type PrebuildCancelParams as PrebuildCancelParams, type PrebuildCreateLogsTokenParams as PrebuildCreateLogsTokenParams, + type PrebuildCreateWarmPoolParams as PrebuildCreateWarmPoolParams, + type PrebuildDeleteWarmPoolParams as PrebuildDeleteWarmPoolParams, + type PrebuildListWarmPoolsParams as PrebuildListWarmPoolsParams, + type PrebuildRetrieveWarmPoolParams as PrebuildRetrieveWarmPoolParams, + type PrebuildUpdateWarmPoolParams as PrebuildUpdateWarmPoolParams, }; export { diff --git a/src/core/pagination.ts b/src/core/pagination.ts index 06774be0..57924f38 100644 --- a/src/core/pagination.ts +++ b/src/core/pagination.ts @@ -1780,3 +1780,58 @@ export class TokensPage extends AbstractPage implements TokensPageRe }; } } + +export interface WarmPoolsPageResponse { + pagination: WarmPoolsPageResponse.Pagination; + + warmPools: Array; +} + +export namespace WarmPoolsPageResponse { + export interface Pagination { + nextToken?: string; + } +} + +export interface WarmPoolsPageParams { + pageSize?: number; + + token?: string; +} + +export class WarmPoolsPage extends AbstractPage implements WarmPoolsPageResponse { + pagination: WarmPoolsPageResponse.Pagination; + + warmPools: Array; + + constructor( + client: Gitpod, + response: Response, + body: WarmPoolsPageResponse, + options: FinalRequestOptions, + ) { + super(client, response, body, options); + + this.pagination = body.pagination || {}; + this.warmPools = body.warmPools || []; + } + + getPaginatedItems(): Item[] { + return this.warmPools ?? []; + } + + nextPageRequestOptions(): PageRequestOptions | null { + const cursor = this.pagination?.nextToken; + if (!cursor) { + return null; + } + + return { + ...this.options, + query: { + ...maybeObj(this.options.query), + token: cursor, + }, + }; + } +} diff --git a/src/resources/index.ts b/src/resources/index.ts index ceb13641..f8a4034e 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -180,18 +180,33 @@ export { type PrebuildSpec, type PrebuildStatus, type PrebuildTrigger, + type WarmPool, + type WarmPoolMetadata, + type WarmPoolPhase, + type WarmPoolSpec, + type WarmPoolStatus, type PrebuildCreateResponse, type PrebuildRetrieveResponse, type PrebuildDeleteResponse, type PrebuildCancelResponse, type PrebuildCreateLogsTokenResponse, + type PrebuildCreateWarmPoolResponse, + type PrebuildDeleteWarmPoolResponse, + type PrebuildRetrieveWarmPoolResponse, + type PrebuildUpdateWarmPoolResponse, type PrebuildCreateParams, type PrebuildRetrieveParams, type PrebuildListParams, type PrebuildDeleteParams, type PrebuildCancelParams, type PrebuildCreateLogsTokenParams, + type PrebuildCreateWarmPoolParams, + type PrebuildDeleteWarmPoolParams, + type PrebuildListWarmPoolsParams, + type PrebuildRetrieveWarmPoolParams, + type PrebuildUpdateWarmPoolParams, type PrebuildsPrebuildsPage, + type WarmPoolsWarmPoolsPage, } from './prebuilds'; export { Projects, diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index d3cdbaf8..d9605cd6 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -4,7 +4,13 @@ import { APIResource } from '../core/resource'; import * as PrebuildsAPI from './prebuilds'; import * as Shared from './shared'; import { APIPromise } from '../core/api-promise'; -import { PagePromise, PrebuildsPage, type PrebuildsPageParams } from '../core/pagination'; +import { + PagePromise, + PrebuildsPage, + type PrebuildsPageParams, + WarmPoolsPage, + type WarmPoolsPageParams, +} from '../core/pagination'; import { RequestOptions } from '../internal/request-options'; /** @@ -202,10 +208,186 @@ export class Prebuilds extends APIResource { ): APIPromise { return this._client.post('/gitpod.v1.PrebuildService/CreatePrebuildLogsToken', { body, ...options }); } + + /** + * Creates a warm pool for a project and environment class. + * + * A warm pool maintains pre-created environment instances from a prebuild snapshot + * so that new environments can start near-instantly. + * + * Only one warm pool is allowed per pair. The + * environment class must have prebuilds enabled on the project. + * + * The pool's snapshot is managed automatically: when a new prebuild completes for + * the same project and environment class, the pool's snapshot is updated and the + * runner rotates instances. + * + * ### Examples + * + * - Create warm pool: + * + * Creates a warm pool with 2 instances for a project and environment class. + * + * ```yaml + * projectId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" + * environmentClassId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" + * desiredSize: 2 + * ``` + * + * @example + * ```ts + * const response = await client.prebuilds.createWarmPool({ + * environmentClassId: + * 'd2c94c27-3b76-4a42-b88c-95a85e392c68', + * projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', + * desiredSize: 2, + * }); + * ``` + */ + createWarmPool( + body: PrebuildCreateWarmPoolParams, + options?: RequestOptions, + ): APIPromise { + return this._client.post('/gitpod.v1.PrebuildService/CreateWarmPool', { body, ...options }); + } + + /** + * Deletes a warm pool. + * + * Deletion is processed asynchronously. The pool is marked for deletion and the + * runner drains instances in the background. + * + * Warm pools are also automatically deleted when prebuilds are disabled on the + * project or the environment class is removed from the prebuild configuration. + * + * ### Examples + * + * - Delete warm pool: + * + * ```yaml + * warmPoolId: "a1b2c3d4-5678-9abc-def0-1234567890ab" + * ``` + * + * @example + * ```ts + * const response = await client.prebuilds.deleteWarmPool({ + * warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + * }); + * ``` + */ + deleteWarmPool(body: PrebuildDeleteWarmPoolParams, options?: RequestOptions): APIPromise { + return this._client.post('/gitpod.v1.PrebuildService/DeleteWarmPool', { body, ...options }); + } + + /** + * Lists warm pools with optional filtering. + * + * Use this method to: + * + * - View all warm pools for a project + * - Monitor warm pool status across environment classes + * + * ### Examples + * + * - List warm pools for a project: + * + * ```yaml + * filter: + * projectIds: ["b0e12f6c-4c67-429d-a4a6-d9838b5da047"] + * ``` + * + * @example + * ```ts + * // Automatically fetches more pages as needed. + * for await (const warmPool of client.prebuilds.listWarmPools( + * { + * filter: { + * projectIds: ['b0e12f6c-4c67-429d-a4a6-d9838b5da047'], + * }, + * }, + * )) { + * // ... + * } + * ``` + */ + listWarmPools( + params: PrebuildListWarmPoolsParams, + options?: RequestOptions, + ): PagePromise { + const { token, pageSize, ...body } = params; + return this._client.getAPIList('/gitpod.v1.PrebuildService/ListWarmPools', WarmPoolsPage, { + query: { token, pageSize }, + body, + method: 'post', + ...options, + }); + } + + /** + * Gets details about a specific warm pool. + * + * Use this method to: + * + * - Check warm pool status and phase + * - View the current snapshot being warmed + * - Monitor pool health + * + * ### Examples + * + * - Get warm pool: + * + * ```yaml + * warmPoolId: "a1b2c3d4-5678-9abc-def0-1234567890ab" + * ``` + * + * @example + * ```ts + * const response = await client.prebuilds.retrieveWarmPool({ + * warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + * }); + * ``` + */ + retrieveWarmPool( + body: PrebuildRetrieveWarmPoolParams, + options?: RequestOptions, + ): APIPromise { + return this._client.post('/gitpod.v1.PrebuildService/GetWarmPool', { body, ...options }); + } + + /** + * Updates a warm pool's configuration. + * + * Use this method to change the desired pool size. + * + * ### Examples + * + * - Update pool size: + * + * ```yaml + * warmPoolId: "a1b2c3d4-5678-9abc-def0-1234567890ab" + * desiredSize: 5 + * ``` + * + * @example + * ```ts + * const response = await client.prebuilds.updateWarmPool({ + * warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + * desiredSize: 5, + * }); + * ``` + */ + updateWarmPool( + body: PrebuildUpdateWarmPoolParams, + options?: RequestOptions, + ): APIPromise { + return this._client.post('/gitpod.v1.PrebuildService/UpdateWarmPool', { body, ...options }); + } } export type PrebuildsPrebuildsPage = PrebuildsPage; +export type WarmPoolsWarmPoolsPage = WarmPoolsPage; + /** * Prebuild represents a prebuild for a project that creates a snapshot for faster * environment startup times. @@ -394,6 +576,131 @@ export type PrebuildTrigger = | 'PREBUILD_TRIGGER_MANUAL' | 'PREBUILD_TRIGGER_SCHEDULED'; +/** + * WarmPool maintains pre-created environment instances from a prebuild snapshot + * for near-instant environment startup. One warm pool exists per pair. + */ +export interface WarmPool { + /** + * metadata contains organizational and ownership information + */ + metadata: WarmPoolMetadata; + + /** + * spec contains the desired configuration for this warm pool + */ + spec: WarmPoolSpec; + + /** + * status contains the current status reported by the runner + */ + status: WarmPoolStatus; + + /** + * id is the unique identifier for the warm pool + */ + id?: string; +} + +/** + * WarmPoolMetadata contains metadata about the warm pool + */ +export interface WarmPoolMetadata { + /** + * created_at is when the warm pool was created + */ + createdAt: string; + + /** + * updated_at is when the warm pool was last updated + */ + updatedAt: string; + + /** + * environment_class_id is the environment class whose instances are warmed + */ + environmentClassId?: string; + + /** + * organization_id is the ID of the organization that owns the warm pool + */ + organizationId?: string; + + /** + * project_id is the ID of the project this warm pool belongs to + */ + projectId?: string; + + /** + * runner_id is the runner that manages this warm pool. Derived from the + * environment class. + */ + runnerId?: string; +} + +/** + * WarmPoolPhase represents the lifecycle phase of a warm pool + */ +export type WarmPoolPhase = + | 'WARM_POOL_PHASE_UNSPECIFIED' + | 'WARM_POOL_PHASE_PENDING' + | 'WARM_POOL_PHASE_READY' + | 'WARM_POOL_PHASE_DEGRADED' + | 'WARM_POOL_PHASE_DELETING' + | 'WARM_POOL_PHASE_DELETED'; + +/** + * WarmPoolSpec contains the desired configuration for a warm pool + */ +export interface WarmPoolSpec { + /** + * desired_phase is the intended lifecycle phase for this warm pool. Managed by the + * API and reconciler. + */ + desiredPhase?: WarmPoolPhase; + + /** + * desired_size is the number of warm instances to maintain. + */ + desiredSize?: number; + + /** + * snapshot_id is the prebuild snapshot to warm up in the pool. Updated by the + * reconciler when a new prebuild completes for this project and environment class. + * Empty when no completed prebuild exists yet. + */ + snapshotId?: string | null; + + /** + * spec_version is incremented each time the spec is updated. Used for optimistic + * concurrency control. + */ + specVersion?: string; +} + +/** + * WarmPoolStatus contains the current status of a warm pool as reported by the + * runner + */ +export interface WarmPoolStatus { + /** + * phase is the current phase of the warm pool lifecycle + */ + phase: WarmPoolPhase; + + /** + * failure_message contains details about why the warm pool is degraded or failed + */ + failureMessage?: string; + + /** + * status_version is incremented each time the status is updated. Used for + * optimistic concurrency control. + */ + statusVersion?: string; +} + export interface PrebuildCreateResponse { /** * Prebuild represents a prebuild for a project that creates a snapshot for faster @@ -427,6 +734,35 @@ export interface PrebuildCreateLogsTokenResponse { accessToken: string; } +export interface PrebuildCreateWarmPoolResponse { + /** + * WarmPool maintains pre-created environment instances from a prebuild snapshot + * for near-instant environment startup. One warm pool exists per pair. + */ + warmPool: WarmPool; +} + +export type PrebuildDeleteWarmPoolResponse = unknown; + +export interface PrebuildRetrieveWarmPoolResponse { + /** + * WarmPool maintains pre-created environment instances from a prebuild snapshot + * for near-instant environment startup. One warm pool exists per pair. + */ + warmPool: WarmPool; +} + +export interface PrebuildUpdateWarmPoolResponse { + /** + * WarmPool maintains pre-created environment instances from a prebuild snapshot + * for near-instant environment startup. One warm pool exists per pair. + */ + warmPool: WarmPool; +} + export interface PrebuildCreateParams { /** * project_id specifies the project to create a prebuild for @@ -536,6 +872,97 @@ export interface PrebuildCreateLogsTokenParams { prebuildId: string; } +export interface PrebuildCreateWarmPoolParams { + /** + * environment_class_id specifies which environment class to warm. Must be listed + * in the project's prebuild configuration environment_class_ids. + */ + environmentClassId: string; + + /** + * project_id specifies the project this warm pool belongs to. The project must + * have prebuilds enabled. + */ + projectId: string; + + /** + * desired_size is the number of warm instances to maintain. + */ + desiredSize?: number; +} + +export interface PrebuildDeleteWarmPoolParams { + /** + * warm_pool_id specifies the warm pool to delete + */ + warmPoolId: string; +} + +export interface PrebuildListWarmPoolsParams extends WarmPoolsPageParams { + /** + * Body param: filter contains the filter options for listing warm pools + */ + filter?: PrebuildListWarmPoolsParams.Filter; + + /** + * Body param: pagination contains the pagination options for listing warm pools + */ + pagination?: PrebuildListWarmPoolsParams.Pagination; +} + +export namespace PrebuildListWarmPoolsParams { + /** + * filter contains the filter options for listing warm pools + */ + export interface Filter { + /** + * environment_class_ids filters warm pools to specific environment classes + */ + environmentClassIds?: Array; + + /** + * project_ids filters warm pools to specific projects + */ + projectIds?: Array; + } + + /** + * pagination contains the pagination options for listing warm pools + */ + export interface Pagination { + /** + * Token for the next set of results that was returned as next_token of a + * PaginationResponse + */ + token?: string; + + /** + * Page size is the maximum number of results to retrieve per page. Defaults to 25. + * Maximum 100. + */ + pageSize?: number; + } +} + +export interface PrebuildRetrieveWarmPoolParams { + /** + * warm_pool_id specifies the warm pool to retrieve + */ + warmPoolId: string; +} + +export interface PrebuildUpdateWarmPoolParams { + /** + * warm_pool_id specifies the warm pool to update + */ + warmPoolId: string; + + /** + * desired_size updates the number of warm instances to maintain. + */ + desiredSize?: number | null; +} + export declare namespace Prebuilds { export { type Prebuild as Prebuild, @@ -544,17 +971,32 @@ export declare namespace Prebuilds { type PrebuildSpec as PrebuildSpec, type PrebuildStatus as PrebuildStatus, type PrebuildTrigger as PrebuildTrigger, + type WarmPool as WarmPool, + type WarmPoolMetadata as WarmPoolMetadata, + type WarmPoolPhase as WarmPoolPhase, + type WarmPoolSpec as WarmPoolSpec, + type WarmPoolStatus as WarmPoolStatus, type PrebuildCreateResponse as PrebuildCreateResponse, type PrebuildRetrieveResponse as PrebuildRetrieveResponse, type PrebuildDeleteResponse as PrebuildDeleteResponse, type PrebuildCancelResponse as PrebuildCancelResponse, type PrebuildCreateLogsTokenResponse as PrebuildCreateLogsTokenResponse, + type PrebuildCreateWarmPoolResponse as PrebuildCreateWarmPoolResponse, + type PrebuildDeleteWarmPoolResponse as PrebuildDeleteWarmPoolResponse, + type PrebuildRetrieveWarmPoolResponse as PrebuildRetrieveWarmPoolResponse, + type PrebuildUpdateWarmPoolResponse as PrebuildUpdateWarmPoolResponse, type PrebuildsPrebuildsPage as PrebuildsPrebuildsPage, + type WarmPoolsWarmPoolsPage as WarmPoolsWarmPoolsPage, type PrebuildCreateParams as PrebuildCreateParams, type PrebuildRetrieveParams as PrebuildRetrieveParams, type PrebuildListParams as PrebuildListParams, type PrebuildDeleteParams as PrebuildDeleteParams, type PrebuildCancelParams as PrebuildCancelParams, type PrebuildCreateLogsTokenParams as PrebuildCreateLogsTokenParams, + type PrebuildCreateWarmPoolParams as PrebuildCreateWarmPoolParams, + type PrebuildDeleteWarmPoolParams as PrebuildDeleteWarmPoolParams, + type PrebuildListWarmPoolsParams as PrebuildListWarmPoolsParams, + type PrebuildRetrieveWarmPoolParams as PrebuildRetrieveWarmPoolParams, + type PrebuildUpdateWarmPoolParams as PrebuildUpdateWarmPoolParams, }; } diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts index cad3a1f1..5ddd55e0 100644 --- a/tests/api-resources/prebuilds.test.ts +++ b/tests/api-resources/prebuilds.test.ts @@ -119,4 +119,104 @@ describe('resource prebuilds', () => { prebuildId: '07e03a28-65a5-4d98-b532-8ea67b188048', }); }); + + // Mock server tests are disabled + test.skip('createWarmPool: only required params', async () => { + const responsePromise = client.prebuilds.createWarmPool({ + environmentClassId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', + projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', + }); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('createWarmPool: required and optional params', async () => { + const response = await client.prebuilds.createWarmPool({ + environmentClassId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', + projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', + desiredSize: 2, + }); + }); + + // Mock server tests are disabled + test.skip('deleteWarmPool: only required params', async () => { + const responsePromise = client.prebuilds.deleteWarmPool({ + warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + }); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('deleteWarmPool: required and optional params', async () => { + const response = await client.prebuilds.deleteWarmPool({ + warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + }); + }); + + // Mock server tests are disabled + test.skip('listWarmPools', async () => { + const responsePromise = client.prebuilds.listWarmPools({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('retrieveWarmPool: only required params', async () => { + const responsePromise = client.prebuilds.retrieveWarmPool({ + warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + }); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('retrieveWarmPool: required and optional params', async () => { + const response = await client.prebuilds.retrieveWarmPool({ + warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + }); + }); + + // Mock server tests are disabled + test.skip('updateWarmPool: only required params', async () => { + const responsePromise = client.prebuilds.updateWarmPool({ + warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + }); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('updateWarmPool: required and optional params', async () => { + const response = await client.prebuilds.updateWarmPool({ + warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', + desiredSize: 5, + }); + }); }); From fe554dff6199c710debed829209f13d7d8687a81 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 13:02:12 +0000 Subject: [PATCH 057/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3b477db3..905ff5c1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-aff091b0b0cbc5539f259dec6aa0f89853d79ad407b3252f769a6f90422dd0df.yml -openapi_spec_hash: a6873fd8f07ec0b9ecdc85d187ac4129 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-16b360cee45543059c71209bed8235e5e1a37b61fbeb513a63ee7e67b577e165.yml +openapi_spec_hash: f22e39876f664dced8af26d4bd51f20c config_hash: 0ec0dc7b6891f666565cf1521a8d172f From 3116d62117a33546b4293d0914819e26836688c4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 21:44:30 +0000 Subject: [PATCH 058/151] feat(api): add agentMessage param and AgentMessage/Type types to agents --- .stats.yml | 6 +++--- api.md | 2 ++ src/client.ts | 4 ++++ src/resources/agents.ts | 23 +++++++++++++++++++++++ src/resources/index.ts | 2 ++ 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 905ff5c1..98368fd9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-16b360cee45543059c71209bed8235e5e1a37b61fbeb513a63ee7e67b577e165.yml -openapi_spec_hash: f22e39876f664dced8af26d4bd51f20c -config_hash: 0ec0dc7b6891f666565cf1521a8d172f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b4ac05534b28936c4fe9d86221fb30415a39826e6a5414b5a7ffb2ad87a021ed.yml +openapi_spec_hash: c5ae4a889864c5255ce9aa0a1fe98631 +config_hash: 9629844f3bf40631adbcfe7c739494a1 diff --git a/api.md b/api.md index d9527b29..297d2c3b 100644 --- a/api.md +++ b/api.md @@ -58,10 +58,12 @@ Types: - AgentCodeContext - AgentExecution +- AgentMessage - AgentMode - Prompt - PromptMetadata - PromptSpec +- Type - UserInputBlock - AgentCreateExecutionConversationTokenResponse - AgentCreatePromptResponse diff --git a/src/client.ts b/src/client.ts index 1ba2d039..0f39521b 100644 --- a/src/client.ts +++ b/src/client.ts @@ -124,6 +124,7 @@ import { AgentExecutionsAgentExecutionsPage, AgentListExecutionsParams, AgentListPromptsParams, + AgentMessage, AgentMode, AgentRetrieveExecutionParams, AgentRetrieveExecutionResponse, @@ -142,6 +143,7 @@ import { PromptMetadata, PromptSpec, PromptsPromptsPage, + Type, UserInputBlock, } from './resources/agents'; import { @@ -1332,10 +1334,12 @@ export declare namespace Gitpod { Agents as Agents, type AgentCodeContext as AgentCodeContext, type AgentExecution as AgentExecution, + type AgentMessage as AgentMessage, type AgentMode as AgentMode, type Prompt as Prompt, type PromptMetadata as PromptMetadata, type PromptSpec as PromptSpec, + type Type as Type, type UserInputBlock as UserInputBlock, type AgentCreateExecutionConversationTokenResponse as AgentCreateExecutionConversationTokenResponse, type AgentCreatePromptResponse as AgentCreatePromptResponse, diff --git a/src/resources/agents.ts b/src/resources/agents.ts index 3dcfc018..82f0df07 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -965,6 +965,19 @@ export namespace AgentExecution { } } +/** + * AgentMessage is a message sent between agents (e.g. from a parent agent to a + * child agent execution, or vice versa). + */ +export interface AgentMessage { + /** + * Free-form payload of the message. + */ + payload?: string; + + type?: Type; +} + /** * AgentMode defines the operational mode of an agent */ @@ -1216,6 +1229,8 @@ export interface PromptSpec { prompt?: string; } +export type Type = 'TYPE_UNSPECIFIED' | 'TYPE_UPDATE' | 'TYPE_COMPLETE'; + export interface UserInputBlock { id?: string; @@ -1459,6 +1474,12 @@ export interface AgentRetrievePromptParams { export interface AgentSendToExecutionParams { agentExecutionId?: string; + /** + * AgentMessage is a message sent between agents (e.g. from a parent agent to a + * child agent execution, or vice versa). + */ + agentMessage?: AgentMessage; + userInput?: UserInputBlock; } @@ -1574,10 +1595,12 @@ export declare namespace Agents { export { type AgentCodeContext as AgentCodeContext, type AgentExecution as AgentExecution, + type AgentMessage as AgentMessage, type AgentMode as AgentMode, type Prompt as Prompt, type PromptMetadata as PromptMetadata, type PromptSpec as PromptSpec, + type Type as Type, type UserInputBlock as UserInputBlock, type AgentCreateExecutionConversationTokenResponse as AgentCreateExecutionConversationTokenResponse, type AgentCreatePromptResponse as AgentCreatePromptResponse, diff --git a/src/resources/index.ts b/src/resources/index.ts index f8a4034e..5b84dad2 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -25,10 +25,12 @@ export { Agents, type AgentCodeContext, type AgentExecution, + type AgentMessage, type AgentMode, type Prompt, type PromptMetadata, type PromptSpec, + type Type, type UserInputBlock, type AgentCreateExecutionConversationTokenResponse, type AgentCreatePromptResponse, From 2c815f0c52891d6b0d7869bffdccd28890520b22 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 09:28:23 +0000 Subject: [PATCH 059/151] feat(api): add role/senderExecutionId fields to agents AgentMessage --- .stats.yml | 6 +++--- api.md | 1 + src/client.ts | 2 ++ src/resources/agents.ts | 6 ++++++ src/resources/index.ts | 1 + 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 98368fd9..cda8d968 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b4ac05534b28936c4fe9d86221fb30415a39826e6a5414b5a7ffb2ad87a021ed.yml -openapi_spec_hash: c5ae4a889864c5255ce9aa0a1fe98631 -config_hash: 9629844f3bf40631adbcfe7c739494a1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1a471dfdbf74746a2b480058a4f12e7664da70d99fcf8e14789872d8358533b7.yml +openapi_spec_hash: 5f57f657ea599ad8d1be3388f45cd77a +config_hash: 76ed1b5c38c855d3383b38deafebd1ae diff --git a/api.md b/api.md index 297d2c3b..06aa8880 100644 --- a/api.md +++ b/api.md @@ -63,6 +63,7 @@ Types: - Prompt - PromptMetadata - PromptSpec +- Role - Type - UserInputBlock - AgentCreateExecutionConversationTokenResponse diff --git a/src/client.ts b/src/client.ts index 0f39521b..80dfeb02 100644 --- a/src/client.ts +++ b/src/client.ts @@ -143,6 +143,7 @@ import { PromptMetadata, PromptSpec, PromptsPromptsPage, + Role, Type, UserInputBlock, } from './resources/agents'; @@ -1339,6 +1340,7 @@ export declare namespace Gitpod { type Prompt as Prompt, type PromptMetadata as PromptMetadata, type PromptSpec as PromptSpec, + type Role as Role, type Type as Type, type UserInputBlock as UserInputBlock, type AgentCreateExecutionConversationTokenResponse as AgentCreateExecutionConversationTokenResponse, diff --git a/src/resources/agents.ts b/src/resources/agents.ts index 82f0df07..c3bc6c1d 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1229,6 +1229,11 @@ export interface PromptSpec { prompt?: string; } +/** + * Role identifies the sender's relationship in the parent/child hierarchy. + */ +export type Role = 'ROLE_UNSPECIFIED' | 'ROLE_PARENT' | 'ROLE_CHILD'; + export type Type = 'TYPE_UNSPECIFIED' | 'TYPE_UPDATE' | 'TYPE_COMPLETE'; export interface UserInputBlock { @@ -1600,6 +1605,7 @@ export declare namespace Agents { type Prompt as Prompt, type PromptMetadata as PromptMetadata, type PromptSpec as PromptSpec, + type Role as Role, type Type as Type, type UserInputBlock as UserInputBlock, type AgentCreateExecutionConversationTokenResponse as AgentCreateExecutionConversationTokenResponse, diff --git a/src/resources/index.ts b/src/resources/index.ts index 5b84dad2..18edfdf0 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -30,6 +30,7 @@ export { type Prompt, type PromptMetadata, type PromptSpec, + type Role, type Type, type UserInputBlock, type AgentCreateExecutionConversationTokenResponse, From b6b29d555471fa477735ad5a49b9a62d4d58cc30 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 09:58:39 +0000 Subject: [PATCH 060/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index cda8d968..1efbe107 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1a471dfdbf74746a2b480058a4f12e7664da70d99fcf8e14789872d8358533b7.yml -openapi_spec_hash: 5f57f657ea599ad8d1be3388f45cd77a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-0650bfaee782ffa1f62c3a21bbb03a4140c491dc67f5c17cc4c5d62dfa5fe36c.yml +openapi_spec_hash: 43e034dfea6543c57259c7562bbaff2c config_hash: 76ed1b5c38c855d3383b38deafebd1ae From 186e30fccfe1a41601816d1a46bf163e00c24b18 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 11:09:45 +0000 Subject: [PATCH 061/151] feat(api): add SESSION_ADMIN and SESSION_USER to ResourceRole enum --- .stats.yml | 4 ++-- src/resources/shared.ts | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1efbe107..a0788752 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-0650bfaee782ffa1f62c3a21bbb03a4140c491dc67f5c17cc4c5d62dfa5fe36c.yml -openapi_spec_hash: 43e034dfea6543c57259c7562bbaff2c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-c8cb681c5b3ecde846adb3de81f1d8cb8da3df62deb86d36f2387e94bcfbafc8.yml +openapi_spec_hash: 5b90c50927ddb8208f709bac310525ca config_hash: 76ed1b5c38c855d3383b38deafebd1ae diff --git a/src/resources/shared.ts b/src/resources/shared.ts index c1f2bdb3..034ffacd 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -258,9 +258,8 @@ export type ResourceRole = | 'RESOURCE_ROLE_WARMPOOL_RUNNER' | 'RESOURCE_ROLE_WARMPOOL_ADMIN' | 'RESOURCE_ROLE_WARMPOOL_VIEWER' - | 'RESOURCE_ROLE_SESSION_EDITOR' - | 'RESOURCE_ROLE_SESSION_CONTRIBUTOR' - | 'RESOURCE_ROLE_SESSION_VIEWER'; + | 'RESOURCE_ROLE_SESSION_ADMIN' + | 'RESOURCE_ROLE_SESSION_USER'; export type ResourceType = | 'RESOURCE_TYPE_UNSPECIFIED' From 442830279d79a2181f304c53bacc465616989c42 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 12:24:56 +0000 Subject: [PATCH 062/151] feat(api): add TEAM_ADMIN and TEAM_VIEWER to ResourceRole --- .stats.yml | 4 ++-- src/resources/shared.ts | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index a0788752..acc42d4f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-c8cb681c5b3ecde846adb3de81f1d8cb8da3df62deb86d36f2387e94bcfbafc8.yml -openapi_spec_hash: 5b90c50927ddb8208f709bac310525ca +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7d56837db309145bd797a9791b7265781e34675b23dfd69d817f2be45f9b1062.yml +openapi_spec_hash: eb329205d76135f39cbe56d7b696dba3 config_hash: 76ed1b5c38c855d3383b38deafebd1ae diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 034ffacd..eb8f08a5 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -259,7 +259,9 @@ export type ResourceRole = | 'RESOURCE_ROLE_WARMPOOL_ADMIN' | 'RESOURCE_ROLE_WARMPOOL_VIEWER' | 'RESOURCE_ROLE_SESSION_ADMIN' - | 'RESOURCE_ROLE_SESSION_USER'; + | 'RESOURCE_ROLE_SESSION_USER' + | 'RESOURCE_ROLE_TEAM_ADMIN' + | 'RESOURCE_ROLE_TEAM_VIEWER'; export type ResourceType = | 'RESOURCE_TYPE_UNSPECIFIED' From 9a51dad6388e93fd493071a7ff9510cc75ffce01 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 12:25:24 +0000 Subject: [PATCH 063/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index acc42d4f..ae80f751 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7d56837db309145bd797a9791b7265781e34675b23dfd69d817f2be45f9b1062.yml -openapi_spec_hash: eb329205d76135f39cbe56d7b696dba3 -config_hash: 76ed1b5c38c855d3383b38deafebd1ae +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-05be77a7f138b6ef57d6909c4af271dd93b7fdc674695f9e81f3e2ee294669cb.yml +openapi_spec_hash: a6174539bc384915695903fdb769c142 +config_hash: f88ff6eb8112c66c79c9334f913febb9 From 1ca4b42354535987bad604e1c5918d1c9bc18d3d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 12:59:49 +0000 Subject: [PATCH 064/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ae80f751..a2d96ab9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-05be77a7f138b6ef57d6909c4af271dd93b7fdc674695f9e81f3e2ee294669cb.yml -openapi_spec_hash: a6174539bc384915695903fdb769c142 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5f52425c0fa3c3733433bca0afdf98c8e10257cfa5e9f5ac6a50bd7c20c7798b.yml +openapi_spec_hash: 28a77c5c0c7e6cef812451470dc5fc0c config_hash: f88ff6eb8112c66c79c9334f913febb9 From 891273fffdfa0a391d70487e7955ad8088cdda77 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 13:19:48 +0000 Subject: [PATCH 065/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index a2d96ab9..9738131b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5f52425c0fa3c3733433bca0afdf98c8e10257cfa5e9f5ac6a50bd7c20c7798b.yml -openapi_spec_hash: 28a77c5c0c7e6cef812451470dc5fc0c -config_hash: f88ff6eb8112c66c79c9334f913febb9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-3d02f9ba6ab517e6356f85a73b30072e545ffa92911f08375869870232328d8d.yml +openapi_spec_hash: a6dcafe05fa8bfc45f25b23856deb6fc +config_hash: 1f86360120835c81a6cb4b7d7facdd69 From ea254b67bf12c9dca3b8d205d56883c53179dd20 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 17:13:57 +0000 Subject: [PATCH 066/151] feat(api): add WakeEvent type and wakeEvent parameter to agents --- .stats.yml | 6 +++--- api.md | 1 + src/client.ts | 2 ++ src/resources/agents.ts | 29 +++++++++++++++++++++++++++++ src/resources/index.ts | 1 + 5 files changed, 36 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9738131b..b899831b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-3d02f9ba6ab517e6356f85a73b30072e545ffa92911f08375869870232328d8d.yml -openapi_spec_hash: a6dcafe05fa8bfc45f25b23856deb6fc -config_hash: 1f86360120835c81a6cb4b7d7facdd69 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-9eb1ec1f32d76b1ad4ed5e3e5faa5bfecec587601e45f6faa1a0d0c98de640c2.yml +openapi_spec_hash: 2b5f6a01ee669442fa45083ceac387b5 +config_hash: 97dc0a3753a72cd447196f070d8290e0 diff --git a/api.md b/api.md index 06aa8880..f31e9688 100644 --- a/api.md +++ b/api.md @@ -66,6 +66,7 @@ Types: - Role - Type - UserInputBlock +- WakeEvent - AgentCreateExecutionConversationTokenResponse - AgentCreatePromptResponse - AgentDeleteExecutionResponse diff --git a/src/client.ts b/src/client.ts index 80dfeb02..a3d2535a 100644 --- a/src/client.ts +++ b/src/client.ts @@ -146,6 +146,7 @@ import { Role, Type, UserInputBlock, + WakeEvent, } from './resources/agents'; import { Editor, @@ -1343,6 +1344,7 @@ export declare namespace Gitpod { type Role as Role, type Type as Type, type UserInputBlock as UserInputBlock, + type WakeEvent as WakeEvent, type AgentCreateExecutionConversationTokenResponse as AgentCreateExecutionConversationTokenResponse, type AgentCreatePromptResponse as AgentCreatePromptResponse, type AgentDeleteExecutionResponse as AgentDeleteExecutionResponse, diff --git a/src/resources/agents.ts b/src/resources/agents.ts index c3bc6c1d..4c7ee682 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1309,6 +1309,28 @@ export namespace UserInputBlock { } } +/** + * WakeEvent is sent by the backend to wake an agent when a registered interest + * fires. Delivered via SendToAgentExecution as a new oneof variant. + */ +export interface WakeEvent { + timer: WakeEvent.Timer; + + /** + * The interest ID that fired (from WaitingInfo.Interest.id). + */ + interestId?: string; +} + +export namespace WakeEvent { + export interface Timer { + /** + * The actual time the timer was evaluated as expired. + */ + firedAt?: string; + } +} + export interface AgentCreateExecutionConversationTokenResponse { token?: string; } @@ -1486,6 +1508,12 @@ export interface AgentSendToExecutionParams { agentMessage?: AgentMessage; userInput?: UserInputBlock; + + /** + * WakeEvent is sent by the backend to wake an agent when a registered interest + * fires. Delivered via SendToAgentExecution as a new oneof variant. + */ + wakeEvent?: WakeEvent; } export interface AgentStartExecutionParams { @@ -1608,6 +1636,7 @@ export declare namespace Agents { type Role as Role, type Type as Type, type UserInputBlock as UserInputBlock, + type WakeEvent as WakeEvent, type AgentCreateExecutionConversationTokenResponse as AgentCreateExecutionConversationTokenResponse, type AgentCreatePromptResponse as AgentCreatePromptResponse, type AgentDeleteExecutionResponse as AgentDeleteExecutionResponse, diff --git a/src/resources/index.ts b/src/resources/index.ts index 18edfdf0..cefadeb7 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -33,6 +33,7 @@ export { type Role, type Type, type UserInputBlock, + type WakeEvent, type AgentCreateExecutionConversationTokenResponse, type AgentCreatePromptResponse, type AgentDeleteExecutionResponse, From 5e17ff92ff356b958f03ced136a1dc6332e8391f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 19:03:29 +0000 Subject: [PATCH 067/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index b899831b..275ffb8f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-9eb1ec1f32d76b1ad4ed5e3e5faa5bfecec587601e45f6faa1a0d0c98de640c2.yml -openapi_spec_hash: 2b5f6a01ee669442fa45083ceac387b5 -config_hash: 97dc0a3753a72cd447196f070d8290e0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d7bf8afe7b633495502b90459fd5fdaff25218ee53dd710a18538a76de27b8ce.yml +openapi_spec_hash: cc6b8e51f317fac144bfe317bf4da2e1 +config_hash: 2e93c96d706d08428b9592538b4f1eab From dd054f1b28ad662ee0a9b1e2d5e394e0a56a95ca Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 20:29:39 +0000 Subject: [PATCH 068/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 275ffb8f..1b95580d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d7bf8afe7b633495502b90459fd5fdaff25218ee53dd710a18538a76de27b8ce.yml -openapi_spec_hash: cc6b8e51f317fac144bfe317bf4da2e1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-431bad5bd6d42f0ee4b93f1dde8d42427d42f635d5f0cada1f3149c6ac2986bb.yml +openapi_spec_hash: 6c0aca7d69758f8ef1a0e17332b58fe3 config_hash: 2e93c96d706d08428b9592538b4f1eab From bec615fde57e7d0220dcd7d0de38a1f19c744fa6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 21:32:36 +0000 Subject: [PATCH 069/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1b95580d..f8342b9a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-431bad5bd6d42f0ee4b93f1dde8d42427d42f635d5f0cada1f3149c6ac2986bb.yml -openapi_spec_hash: 6c0aca7d69758f8ef1a0e17332b58fe3 -config_hash: 2e93c96d706d08428b9592538b4f1eab +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b3269f9875cf972863968afb41f52d54c7e46924db8aca0cccd751ddf3e891ec.yml +openapi_spec_hash: c0066f77e1ba7d84905950e79be7aaaa +config_hash: 592f78583488172fd4df0edfa2760ec6 From d92488a79086f5db176dc2901a8529883289ae19 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 08:04:02 +0000 Subject: [PATCH 070/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f8342b9a..bc68f9ab 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b3269f9875cf972863968afb41f52d54c7e46924db8aca0cccd751ddf3e891ec.yml -openapi_spec_hash: c0066f77e1ba7d84905950e79be7aaaa +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f5ed839be9328e77698c9c7def7ca2143df1b94d0e3473c5790a28d4ce9e1f74.yml +openapi_spec_hash: a2e22139f1087c1e41a93187829836b4 config_hash: 592f78583488172fd4df0edfa2760ec6 From 285d96fde7a5f4b3f8f218c6ca51da774e594147 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:29:58 +0000 Subject: [PATCH 071/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index bc68f9ab..0c09951a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f5ed839be9328e77698c9c7def7ca2143df1b94d0e3473c5790a28d4ce9e1f74.yml -openapi_spec_hash: a2e22139f1087c1e41a93187829836b4 -config_hash: 592f78583488172fd4df0edfa2760ec6 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-66a6056c94410bdb8b9c011724920ac13c05ec3fc4042a76e3572a3f2a157288.yml +openapi_spec_hash: c492fce4aea5a7624b01140a8fa532fb +config_hash: 1bbe12db32bc3ff1b6b94903b036b4a5 From eb7a869bec5729291aededfc320b4b9ea499a5f7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:58:15 +0000 Subject: [PATCH 072/151] feat(api): add SUPPORTED_MODEL_HAIKU_4_5 to AgentExecution model --- .stats.yml | 4 ++-- src/resources/agents.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0c09951a..4937cef3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-66a6056c94410bdb8b9c011724920ac13c05ec3fc4042a76e3572a3f2a157288.yml -openapi_spec_hash: c492fce4aea5a7624b01140a8fa532fb +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-893b4021bf45a83abcd0e6153ca6395b4fc38aef4f36da4e3d3905fbec3098b0.yml +openapi_spec_hash: 457a0d443824f072e22b68b1f166c29d config_hash: 1bbe12db32bc3ff1b6b94903b036b4a5 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index 4c7ee682..b3525203 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -858,6 +858,7 @@ export namespace AgentExecution { | 'SUPPORTED_MODEL_OPUS_4_5_EXTENDED' | 'SUPPORTED_MODEL_OPUS_4_6' | 'SUPPORTED_MODEL_OPUS_4_6_EXTENDED' + | 'SUPPORTED_MODEL_HAIKU_4_5' | 'SUPPORTED_MODEL_OPENAI_4O' | 'SUPPORTED_MODEL_OPENAI_4O_MINI' | 'SUPPORTED_MODEL_OPENAI_O1' From c49251f577c0555e0598c05f8b79c71e2e3240e3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 19:09:52 +0000 Subject: [PATCH 073/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4937cef3..7d3c95d8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-893b4021bf45a83abcd0e6153ca6395b4fc38aef4f36da4e3d3905fbec3098b0.yml -openapi_spec_hash: 457a0d443824f072e22b68b1f166c29d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-db66cce570b248bad197303f13085f4cc791f0f37accd05551a211f639a504f4.yml +openapi_spec_hash: 4f42e6d0feb767646ed2a1de3d1649d2 config_hash: 1bbe12db32bc3ff1b6b94903b036b4a5 From de092f63497d39187619a3734a6e6d356b8c8dca Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 20:22:42 +0000 Subject: [PATCH 074/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7d3c95d8..7a1b0600 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-db66cce570b248bad197303f13085f4cc791f0f37accd05551a211f639a504f4.yml -openapi_spec_hash: 4f42e6d0feb767646ed2a1de3d1649d2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b27803ede69b49b599171b12f4962cf7cc7f6fbab2a5a166e5c6080484cfc067.yml +openapi_spec_hash: 80a087f89a1d2c959b0ac8c6c548291f config_hash: 1bbe12db32bc3ff1b6b94903b036b4a5 From 5962601f35d7d9a1d3b5eb38801ded9c7f54ab27 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 21:30:02 +0000 Subject: [PATCH 075/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7a1b0600..6b0ef442 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-b27803ede69b49b599171b12f4962cf7cc7f6fbab2a5a166e5c6080484cfc067.yml -openapi_spec_hash: 80a087f89a1d2c959b0ac8c6c548291f -config_hash: 1bbe12db32bc3ff1b6b94903b036b4a5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-577296b7c6ed6bed2b21637338a4f13e354052ba6d904c65a99e5d13512f53fa.yml +openapi_spec_hash: 5fe9809e8ea47cccb6caf16295ee30bf +config_hash: 4f180c7b682d53be6dff8a05a3ac16d4 From efa1c5bde7705723279b9264d22c5a283414d5f2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 09:03:23 +0000 Subject: [PATCH 076/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6b0ef442..33e7dd90 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-577296b7c6ed6bed2b21637338a4f13e354052ba6d904c65a99e5d13512f53fa.yml -openapi_spec_hash: 5fe9809e8ea47cccb6caf16295ee30bf -config_hash: 4f180c7b682d53be6dff8a05a3ac16d4 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-02ad1975aaf8e2fe22f10f1cb7f691d4b00f440c0b481aedab196e1eedab68cc.yml +openapi_spec_hash: 83b08f17aedbc539a5e3db6b9f282053 +config_hash: 8531cb42193029df25a045bf85d9778e From 8a68a4d7213b28c0c5376ccc3eb873692f4961ba Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 09:06:11 +0000 Subject: [PATCH 077/151] docs(api): clarify timeout constraints in environments and organization policies --- .stats.yml | 4 ++-- src/resources/environments/environments.ts | 14 ++++++++++++-- src/resources/organizations/policies.ts | 14 ++++++++++++-- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.stats.yml b/.stats.yml index 33e7dd90..3f0933da 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-02ad1975aaf8e2fe22f10f1cb7f691d4b00f440c0b481aedab196e1eedab68cc.yml -openapi_spec_hash: 83b08f17aedbc539a5e3db6b9f282053 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a50acff4052581b25c7fa8b0b35d7b173b7f7bfe008dafeab53d98acd29140f8.yml +openapi_spec_hash: 5da04537f5a42c068303af2adaa3fe0e config_hash: 8531cb42193029df25a045bf85d9778e diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index feb53404..a1ae4f75 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -1006,7 +1006,12 @@ export namespace EnvironmentSpec { export interface Timeout { /** * inacitivity is the maximum time of disconnection before the environment is - * stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. + * stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. value + * must be 0s (disabled) or at least 1800s (30 minutes): + * + * ``` + * this == duration('0s') || this >= duration('1800s') + * ``` */ disconnected?: string; } @@ -1779,7 +1784,12 @@ export namespace EnvironmentUpdateParams { export interface Timeout { /** * inacitivity is the maximum time of disconnection before the environment is - * stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. + * stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. value + * must be 0s (disabled) or at least 1800s (30 minutes): + * + * ``` + * this == duration('0s') || this >= duration('1800s') + * ``` */ disconnected?: string | null; } diff --git a/src/resources/organizations/policies.ts b/src/resources/organizations/policies.ts index fecce480..58613282 100644 --- a/src/resources/organizations/policies.ts +++ b/src/resources/organizations/policies.ts @@ -262,7 +262,12 @@ export interface OrganizationPolicies { /** * maximum_environment_timeout controls the maximum timeout allowed for * environments in seconds. 0 means no limit (never). Minimum duration is 30 - * minutes (1800 seconds). + * minutes (1800 seconds). value must be 0s (no limit) or at least 1800s (30 + * minutes): + * + * ``` + * this == duration('0s') || this >= duration('1800s') + * ``` */ maximumEnvironmentTimeout?: string; @@ -403,7 +408,12 @@ export interface PolicyUpdateParams { /** * maximum_environment_timeout controls the maximum timeout allowed for * environments in seconds. 0 means no limit (never). Minimum duration is 30 - * minutes (1800 seconds). + * minutes (1800 seconds). value must be 0s (no limit) or at least 1800s (30 + * minutes): + * + * ``` + * this == duration('0s') || this >= duration('1800s') + * ``` */ maximumEnvironmentTimeout?: string | null; From f5694ca120cba714e83ac87c18eef554969335ec Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 09:46:46 +0000 Subject: [PATCH 078/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3f0933da..32191d90 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a50acff4052581b25c7fa8b0b35d7b173b7f7bfe008dafeab53d98acd29140f8.yml -openapi_spec_hash: 5da04537f5a42c068303af2adaa3fe0e -config_hash: 8531cb42193029df25a045bf85d9778e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6afce08fcd8bf2db43a1bf23cd3d0e26cfd58038a4886a0b93905ed32a270976.yml +openapi_spec_hash: 7e68abc261b93d149fe5274a4033fe7f +config_hash: 929b044c214da0da793e235847333d89 From e617fb005b9122702ee2987a316d12d46bc22c35 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 10:47:10 +0000 Subject: [PATCH 079/151] feat(api): add sort option to ListAuditLogs --- .stats.yml | 6 +++--- api.md | 4 ++-- src/client.ts | 6 ++---- src/resources/events.ts | 11 +++++++++-- src/resources/index.ts | 2 -- src/resources/organizations/organizations.ts | 3 +-- src/resources/projects/index.ts | 2 -- src/resources/projects/projects.ts | 15 +-------------- src/resources/shared.ts | 11 +++++++++++ 9 files changed, 29 insertions(+), 31 deletions(-) diff --git a/.stats.yml b/.stats.yml index 32191d90..a7ba70a7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6afce08fcd8bf2db43a1bf23cd3d0e26cfd58038a4886a0b93905ed32a270976.yml -openapi_spec_hash: 7e68abc261b93d149fe5274a4033fe7f -config_hash: 929b044c214da0da793e235847333d89 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-426f3adea47f1f9969b3ace193806d0b5c6cca002b59f1306ff55a53ba184d41.yml +openapi_spec_hash: c4f8786a933b74d658f315ed5587b4bd +config_hash: 65442903d648b9f87a032fc0a4823e62 diff --git a/api.md b/api.md index f31e9688..4f171dcb 100644 --- a/api.md +++ b/api.md @@ -18,6 +18,8 @@ Types: - ResourceType - RunsOn - SecretRef +- Sort +- SortOrder - State - Subject - Task @@ -536,8 +538,6 @@ Types: - ProjectPhase - ProjectPrebuildConfiguration - RecommendedEditors -- Sort -- SortOrder - ProjectCreateResponse - ProjectRetrieveResponse - ProjectUpdateResponse diff --git a/src/client.ts b/src/client.ts index a3d2535a..1e90aec5 100644 --- a/src/client.ts +++ b/src/client.ts @@ -348,8 +348,6 @@ import { Projects, ProjectsProjectsPage, RecommendedEditors, - Sort, - SortOrder, } from './resources/projects/projects'; import { GatewayInfo, @@ -1541,8 +1539,6 @@ export declare namespace Gitpod { type ProjectPhase as ProjectPhase, type ProjectPrebuildConfiguration as ProjectPrebuildConfiguration, type RecommendedEditors as RecommendedEditors, - type Sort as Sort, - type SortOrder as SortOrder, type ProjectCreateResponse as ProjectCreateResponse, type ProjectRetrieveResponse as ProjectRetrieveResponse, type ProjectUpdateResponse as ProjectUpdateResponse, @@ -1657,6 +1653,8 @@ export declare namespace Gitpod { export type ResourceType = API.ResourceType; export type RunsOn = API.RunsOn; export type SecretRef = API.SecretRef; + export type Sort = API.Sort; + export type SortOrder = API.SortOrder; export type State = API.State; export type Subject = API.Subject; export type Task = API.Task; diff --git a/src/resources/events.ts b/src/resources/events.ts index c37567b7..70e2d30b 100644 --- a/src/resources/events.ts +++ b/src/resources/events.ts @@ -246,9 +246,16 @@ export interface EventListParams extends EntriesPageParams { filter?: EventListParams.Filter; /** - * Body param: pagination contains the pagination options for listing environments + * Body param: pagination contains the pagination options for listing audit logs */ pagination?: EventListParams.Pagination; + + /** + * Body param: sort specifies the order of results. When unspecified, results are + * sorted by creation time descending (newest first). Supported sort fields: + * createdAt. + */ + sort?: Shared.Sort; } export namespace EventListParams { @@ -273,7 +280,7 @@ export namespace EventListParams { } /** - * pagination contains the pagination options for listing environments + * pagination contains the pagination options for listing audit logs */ export interface Pagination { /** diff --git a/src/resources/index.ts b/src/resources/index.ts index cefadeb7..1cc8a332 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -220,8 +220,6 @@ export { type ProjectPhase, type ProjectPrebuildConfiguration, type RecommendedEditors, - type Sort, - type SortOrder, type ProjectCreateResponse, type ProjectRetrieveResponse, type ProjectUpdateResponse, diff --git a/src/resources/organizations/organizations.ts b/src/resources/organizations/organizations.ts index 5d7d28fa..561baa7e 100644 --- a/src/resources/organizations/organizations.ts +++ b/src/resources/organizations/organizations.ts @@ -101,7 +101,6 @@ import { SSOConfigurations, SSOConfigurationsSSOConfigurationsPage, } from './sso-configurations'; -import * as ProjectsAPI from '../projects/projects'; import { APIPromise } from '../../core/api-promise'; import { MembersPage, type MembersPageParams, PagePromise } from '../../core/pagination'; import { RequestOptions } from '../../internal/request-options'; @@ -953,7 +952,7 @@ export namespace OrganizationListMembersParams { export interface Sort { field?: 'SORT_FIELD_UNSPECIFIED' | 'SORT_FIELD_NAME' | 'SORT_FIELD_DATE_JOINED'; - order?: ProjectsAPI.SortOrder; + order?: Shared.SortOrder; } } diff --git a/src/resources/projects/index.ts b/src/resources/projects/index.ts index db4cd95c..e26d15ed 100644 --- a/src/resources/projects/index.ts +++ b/src/resources/projects/index.ts @@ -27,8 +27,6 @@ export { type ProjectPhase, type ProjectPrebuildConfiguration, type RecommendedEditors, - type Sort, - type SortOrder, type ProjectCreateResponse, type ProjectRetrieveResponse, type ProjectUpdateResponse, diff --git a/src/resources/projects/projects.ts b/src/resources/projects/projects.ts index b7250f1d..e0c90c51 100644 --- a/src/resources/projects/projects.ts +++ b/src/resources/projects/projects.ts @@ -866,17 +866,6 @@ export namespace RecommendedEditors { } } -export interface Sort { - /** - * Field name to sort by, in camelCase. - */ - field?: string; - - order?: SortOrder; -} - -export type SortOrder = 'SORT_ORDER_UNSPECIFIED' | 'SORT_ORDER_ASC' | 'SORT_ORDER_DESC'; - export interface ProjectCreateResponse { project?: Project; } @@ -1112,7 +1101,7 @@ export interface ProjectListParams extends ProjectsPageParams { * - "popularity": Sort by popularity — a precomputed score based on recent * environment creation activity. Updated periodically by a background job. */ - sort?: Sort; + sort?: Shared.Sort; } export namespace ProjectListParams { @@ -1297,8 +1286,6 @@ export declare namespace Projects { type ProjectPhase as ProjectPhase, type ProjectPrebuildConfiguration as ProjectPrebuildConfiguration, type RecommendedEditors as RecommendedEditors, - type Sort as Sort, - type SortOrder as SortOrder, type ProjectCreateResponse as ProjectCreateResponse, type ProjectRetrieveResponse as ProjectRetrieveResponse, type ProjectUpdateResponse as ProjectUpdateResponse, diff --git a/src/resources/shared.ts b/src/resources/shared.ts index eb8f08a5..76108bdf 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -341,6 +341,17 @@ export interface SecretRef { id?: string; } +export interface Sort { + /** + * Field name to sort by, in camelCase. + */ + field?: string; + + order?: SortOrder; +} + +export type SortOrder = 'SORT_ORDER_UNSPECIFIED' | 'SORT_ORDER_ASC' | 'SORT_ORDER_DESC'; + /** * Current state of the pull request */ From c714e295b0d1f65f804fc85a93487e9549a47d1d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 14:25:18 +0000 Subject: [PATCH 080/151] feat(api): add automations resource with workflows/executions/actions --- .stats.yml | 6 +- api.md | 38 + src/client.ts | 106 + src/core/pagination.ts | 226 ++ src/resources/automations.ts | 2892 +++++++++++++++++++++++ src/resources/index.ts | 37 + tests/api-resources/automations.test.ts | 263 +++ 7 files changed, 3565 insertions(+), 3 deletions(-) create mode 100644 src/resources/automations.ts create mode 100644 tests/api-resources/automations.test.ts diff --git a/.stats.yml b/.stats.yml index a7ba70a7..d281cf1b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 180 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-426f3adea47f1f9969b3ace193806d0b5c6cca002b59f1306ff55a53ba184d41.yml +configured_endpoints: 193 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d7e6093517f83ea4606a88899e81565c0f9207614e112b6057679645e0651801.yml openapi_spec_hash: c4f8786a933b74d658f315ed5587b4bd -config_hash: 65442903d648b9f87a032fc0a4823e62 +config_hash: 8f918c43124691f0ddd95f5fd521960a diff --git a/api.md b/api.md index 4f171dcb..e804c2aa 100644 --- a/api.md +++ b/api.md @@ -95,6 +95,44 @@ Methods: - client.agents.stopExecution({ ...params }) -> unknown - client.agents.updatePrompt({ ...params }) -> AgentUpdatePromptResponse +# Automations + +Types: + +- Workflow +- WorkflowAction +- WorkflowExecution +- WorkflowExecutionAction +- WorkflowStep +- WorkflowTrigger +- WorkflowTriggerContext +- AutomationCreateResponse +- AutomationRetrieveResponse +- AutomationUpdateResponse +- AutomationDeleteResponse +- AutomationCancelExecutionResponse +- AutomationCancelExecutionActionResponse +- AutomationListExecutionOutputsResponse +- AutomationRetrieveExecutionResponse +- AutomationRetrieveExecutionActionResponse +- AutomationStartExecutionResponse + +Methods: + +- client.automations.create({ ...params }) -> AutomationCreateResponse +- client.automations.retrieve({ ...params }) -> AutomationRetrieveResponse +- client.automations.update({ ...params }) -> AutomationUpdateResponse +- client.automations.list({ ...params }) -> WorkflowsWorkflowsPage +- client.automations.delete({ ...params }) -> unknown +- client.automations.cancelExecution({ ...params }) -> unknown +- client.automations.cancelExecutionAction({ ...params }) -> unknown +- client.automations.listExecutionActions({ ...params }) -> WorkflowExecutionActionsWorkflowExecutionActionsPage +- client.automations.listExecutionOutputs({ ...params }) -> AutomationListExecutionOutputsResponsesOutputsPage +- client.automations.listExecutions({ ...params }) -> WorkflowExecutionsWorkflowExecutionsPage +- client.automations.retrieveExecution({ ...params }) -> AutomationRetrieveExecutionResponse +- client.automations.retrieveExecutionAction({ ...params }) -> AutomationRetrieveExecutionActionResponse +- client.automations.startExecution({ ...params }) -> AutomationStartExecutionResponse + # Editors Types: diff --git a/src/client.ts b/src/client.ts index 1e90aec5..f596d894 100644 --- a/src/client.ts +++ b/src/client.ts @@ -52,6 +52,8 @@ import { LoginsPageResponse, type MembersPageParams, MembersPageResponse, + type OutputsPageParams, + OutputsPageResponse, type PersonalAccessTokensPageParams, PersonalAccessTokensPageResponse, type PoliciesPageParams, @@ -86,6 +88,12 @@ import { TokensPageResponse, type WarmPoolsPageParams, WarmPoolsPageResponse, + type WorkflowExecutionActionsPageParams, + WorkflowExecutionActionsPageResponse, + type WorkflowExecutionsPageParams, + WorkflowExecutionsPageResponse, + type WorkflowsPageParams, + WorkflowsPageResponse, } from './core/pagination'; import * as Uploads from './core/uploads'; import * as API from './resources/index'; @@ -148,6 +156,43 @@ import { UserInputBlock, WakeEvent, } from './resources/agents'; +import { + AutomationCancelExecutionActionParams, + AutomationCancelExecutionActionResponse, + AutomationCancelExecutionParams, + AutomationCancelExecutionResponse, + AutomationCreateParams, + AutomationCreateResponse, + AutomationDeleteParams, + AutomationDeleteResponse, + AutomationListExecutionActionsParams, + AutomationListExecutionOutputsParams, + AutomationListExecutionOutputsResponse, + AutomationListExecutionOutputsResponsesOutputsPage, + AutomationListExecutionsParams, + AutomationListParams, + AutomationRetrieveExecutionActionParams, + AutomationRetrieveExecutionActionResponse, + AutomationRetrieveExecutionParams, + AutomationRetrieveExecutionResponse, + AutomationRetrieveParams, + AutomationRetrieveResponse, + AutomationStartExecutionParams, + AutomationStartExecutionResponse, + AutomationUpdateParams, + AutomationUpdateResponse, + Automations, + Workflow, + WorkflowAction, + WorkflowExecution, + WorkflowExecutionAction, + WorkflowExecutionActionsWorkflowExecutionActionsPage, + WorkflowExecutionsWorkflowExecutionsPage, + WorkflowStep, + WorkflowTrigger, + WorkflowTriggerContext, + WorkflowsWorkflowsPage, +} from './resources/automations'; import { Editor, EditorListParams, @@ -1121,6 +1166,7 @@ export class Gitpod { accounts: API.Accounts = new API.Accounts(this); agents: API.Agents = new API.Agents(this); + automations: API.Automations = new API.Automations(this); editors: API.Editors = new API.Editors(this); environments: API.Environments = new API.Environments(this); /** @@ -1150,6 +1196,7 @@ export class Gitpod { Gitpod.Accounts = Accounts; Gitpod.Agents = Agents; +Gitpod.Automations = Automations; Gitpod.Editors = Editors; Gitpod.Environments = Environments; Gitpod.Errors = ErrorsAPIErrors; @@ -1234,6 +1281,9 @@ export declare namespace Gitpod { export import MembersPage = Pagination.MembersPage; export { type MembersPageParams as MembersPageParams, type MembersPageResponse as MembersPageResponse }; + export import OutputsPage = Pagination.OutputsPage; + export { type OutputsPageParams as OutputsPageParams, type OutputsPageResponse as OutputsPageResponse }; + export import PersonalAccessTokensPage = Pagination.PersonalAccessTokensPage; export { type PersonalAccessTokensPageParams as PersonalAccessTokensPageParams, @@ -1309,6 +1359,24 @@ export declare namespace Gitpod { type WarmPoolsPageResponse as WarmPoolsPageResponse, }; + export import WorkflowExecutionActionsPage = Pagination.WorkflowExecutionActionsPage; + export { + type WorkflowExecutionActionsPageParams as WorkflowExecutionActionsPageParams, + type WorkflowExecutionActionsPageResponse as WorkflowExecutionActionsPageResponse, + }; + + export import WorkflowExecutionsPage = Pagination.WorkflowExecutionsPage; + export { + type WorkflowExecutionsPageParams as WorkflowExecutionsPageParams, + type WorkflowExecutionsPageResponse as WorkflowExecutionsPageResponse, + }; + + export import WorkflowsPage = Pagination.WorkflowsPage; + export { + type WorkflowsPageParams as WorkflowsPageParams, + type WorkflowsPageResponse as WorkflowsPageResponse, + }; + export { Accounts as Accounts, type Account as Account, @@ -1369,6 +1437,44 @@ export declare namespace Gitpod { type AgentUpdatePromptParams as AgentUpdatePromptParams, }; + export { + Automations as Automations, + type Workflow as Workflow, + type WorkflowAction as WorkflowAction, + type WorkflowExecution as WorkflowExecution, + type WorkflowExecutionAction as WorkflowExecutionAction, + type WorkflowStep as WorkflowStep, + type WorkflowTrigger as WorkflowTrigger, + type WorkflowTriggerContext as WorkflowTriggerContext, + type AutomationCreateResponse as AutomationCreateResponse, + type AutomationRetrieveResponse as AutomationRetrieveResponse, + type AutomationUpdateResponse as AutomationUpdateResponse, + type AutomationDeleteResponse as AutomationDeleteResponse, + type AutomationCancelExecutionResponse as AutomationCancelExecutionResponse, + type AutomationCancelExecutionActionResponse as AutomationCancelExecutionActionResponse, + type AutomationListExecutionOutputsResponse as AutomationListExecutionOutputsResponse, + type AutomationRetrieveExecutionResponse as AutomationRetrieveExecutionResponse, + type AutomationRetrieveExecutionActionResponse as AutomationRetrieveExecutionActionResponse, + type AutomationStartExecutionResponse as AutomationStartExecutionResponse, + type WorkflowsWorkflowsPage as WorkflowsWorkflowsPage, + type WorkflowExecutionActionsWorkflowExecutionActionsPage as WorkflowExecutionActionsWorkflowExecutionActionsPage, + type AutomationListExecutionOutputsResponsesOutputsPage as AutomationListExecutionOutputsResponsesOutputsPage, + type WorkflowExecutionsWorkflowExecutionsPage as WorkflowExecutionsWorkflowExecutionsPage, + type AutomationCreateParams as AutomationCreateParams, + type AutomationRetrieveParams as AutomationRetrieveParams, + type AutomationUpdateParams as AutomationUpdateParams, + type AutomationListParams as AutomationListParams, + type AutomationDeleteParams as AutomationDeleteParams, + type AutomationCancelExecutionParams as AutomationCancelExecutionParams, + type AutomationCancelExecutionActionParams as AutomationCancelExecutionActionParams, + type AutomationListExecutionActionsParams as AutomationListExecutionActionsParams, + type AutomationListExecutionOutputsParams as AutomationListExecutionOutputsParams, + type AutomationListExecutionsParams as AutomationListExecutionsParams, + type AutomationRetrieveExecutionParams as AutomationRetrieveExecutionParams, + type AutomationRetrieveExecutionActionParams as AutomationRetrieveExecutionActionParams, + type AutomationStartExecutionParams as AutomationStartExecutionParams, + }; + export { Editors as Editors, type Editor as Editor, diff --git a/src/core/pagination.ts b/src/core/pagination.ts index 57924f38..d3e0bc6f 100644 --- a/src/core/pagination.ts +++ b/src/core/pagination.ts @@ -889,6 +889,61 @@ export class MembersPage extends AbstractPage implements MembersPage } } +export interface OutputsPageResponse { + outputs: Array; + + pagination: OutputsPageResponse.Pagination; +} + +export namespace OutputsPageResponse { + export interface Pagination { + nextToken?: string; + } +} + +export interface OutputsPageParams { + pageSize?: number; + + token?: string; +} + +export class OutputsPage extends AbstractPage implements OutputsPageResponse { + outputs: Array; + + pagination: OutputsPageResponse.Pagination; + + constructor( + client: Gitpod, + response: Response, + body: OutputsPageResponse, + options: FinalRequestOptions, + ) { + super(client, response, body, options); + + this.outputs = body.outputs || []; + this.pagination = body.pagination || {}; + } + + getPaginatedItems(): Item[] { + return this.outputs ?? []; + } + + nextPageRequestOptions(): PageRequestOptions | null { + const cursor = this.pagination?.nextToken; + if (!cursor) { + return null; + } + + return { + ...this.options, + query: { + ...maybeObj(this.options.query), + token: cursor, + }, + }; + } +} + export interface PersonalAccessTokensPageResponse { pagination: PersonalAccessTokensPageResponse.Pagination; @@ -1835,3 +1890,174 @@ export class WarmPoolsPage extends AbstractPage implements WarmPools }; } } + +export interface WorkflowExecutionActionsPageResponse { + pagination: WorkflowExecutionActionsPageResponse.Pagination; + + workflowExecutionActions: Array; +} + +export namespace WorkflowExecutionActionsPageResponse { + export interface Pagination { + nextToken?: string; + } +} + +export interface WorkflowExecutionActionsPageParams { + pageSize?: number; + + token?: string; +} + +export class WorkflowExecutionActionsPage + extends AbstractPage + implements WorkflowExecutionActionsPageResponse +{ + pagination: WorkflowExecutionActionsPageResponse.Pagination; + + workflowExecutionActions: Array; + + constructor( + client: Gitpod, + response: Response, + body: WorkflowExecutionActionsPageResponse, + options: FinalRequestOptions, + ) { + super(client, response, body, options); + + this.pagination = body.pagination || {}; + this.workflowExecutionActions = body.workflowExecutionActions || []; + } + + getPaginatedItems(): Item[] { + return this.workflowExecutionActions ?? []; + } + + nextPageRequestOptions(): PageRequestOptions | null { + const cursor = this.pagination?.nextToken; + if (!cursor) { + return null; + } + + return { + ...this.options, + query: { + ...maybeObj(this.options.query), + token: cursor, + }, + }; + } +} + +export interface WorkflowExecutionsPageResponse { + pagination: WorkflowExecutionsPageResponse.Pagination; + + workflowExecutions: Array; +} + +export namespace WorkflowExecutionsPageResponse { + export interface Pagination { + nextToken?: string; + } +} + +export interface WorkflowExecutionsPageParams { + pageSize?: number; + + token?: string; +} + +export class WorkflowExecutionsPage + extends AbstractPage + implements WorkflowExecutionsPageResponse +{ + pagination: WorkflowExecutionsPageResponse.Pagination; + + workflowExecutions: Array; + + constructor( + client: Gitpod, + response: Response, + body: WorkflowExecutionsPageResponse, + options: FinalRequestOptions, + ) { + super(client, response, body, options); + + this.pagination = body.pagination || {}; + this.workflowExecutions = body.workflowExecutions || []; + } + + getPaginatedItems(): Item[] { + return this.workflowExecutions ?? []; + } + + nextPageRequestOptions(): PageRequestOptions | null { + const cursor = this.pagination?.nextToken; + if (!cursor) { + return null; + } + + return { + ...this.options, + query: { + ...maybeObj(this.options.query), + token: cursor, + }, + }; + } +} + +export interface WorkflowsPageResponse { + pagination: WorkflowsPageResponse.Pagination; + + workflows: Array; +} + +export namespace WorkflowsPageResponse { + export interface Pagination { + nextToken?: string; + } +} + +export interface WorkflowsPageParams { + pageSize?: number; + + token?: string; +} + +export class WorkflowsPage extends AbstractPage implements WorkflowsPageResponse { + pagination: WorkflowsPageResponse.Pagination; + + workflows: Array; + + constructor( + client: Gitpod, + response: Response, + body: WorkflowsPageResponse, + options: FinalRequestOptions, + ) { + super(client, response, body, options); + + this.pagination = body.pagination || {}; + this.workflows = body.workflows || []; + } + + getPaginatedItems(): Item[] { + return this.workflows ?? []; + } + + nextPageRequestOptions(): PageRequestOptions | null { + const cursor = this.pagination?.nextToken; + if (!cursor) { + return null; + } + + return { + ...this.options, + query: { + ...maybeObj(this.options.query), + token: cursor, + }, + }; + } +} diff --git a/src/resources/automations.ts b/src/resources/automations.ts new file mode 100644 index 00000000..d3dcaaae --- /dev/null +++ b/src/resources/automations.ts @@ -0,0 +1,2892 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +import { APIResource } from '../core/resource'; +import * as AutomationsAPI from './automations'; +import * as AgentsAPI from './agents'; +import * as Shared from './shared'; +import { APIPromise } from '../core/api-promise'; +import { + OutputsPage, + type OutputsPageParams, + PagePromise, + WorkflowExecutionActionsPage, + type WorkflowExecutionActionsPageParams, + WorkflowExecutionsPage, + type WorkflowExecutionsPageParams, + WorkflowsPage, + type WorkflowsPageParams, +} from '../core/pagination'; +import { RequestOptions } from '../internal/request-options'; + +export class Automations extends APIResource { + /** + * Creates a new workflow with specified configuration. + * + * Use this method to: + * + * - Set up automated workflows + * - Configure workflow triggers + * - Define workflow actions and steps + * - Set execution limits and constraints + * + * @example + * ```ts + * const automation = await client.automations.create({ + * action: { limits: {} }, + * }); + * ``` + */ + create(body: AutomationCreateParams, options?: RequestOptions): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/CreateWorkflow', { body, ...options }); + } + + /** + * Gets details about a specific workflow. + * + * Use this method to: + * + * - View workflow configuration + * - Check workflow status + * - Get workflow metadata + * + * ### Examples + * + * - Get workflow details: + * + * Retrieves information about a specific workflow. + * + * ```yaml + * workflowId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" + * ``` + * + * @example + * ```ts + * const automation = await client.automations.retrieve({ + * workflowId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', + * }); + * ``` + */ + retrieve(body: AutomationRetrieveParams, options?: RequestOptions): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/GetWorkflow', { body, ...options }); + } + + /** + * Updates a workflow's configuration using full replacement semantics. + * + * Update Behavior: + * + * - All provided fields completely replace existing values + * - Optional fields that are not provided remain unchanged + * - Complex fields (triggers, action) are replaced entirely, not merged + * - To remove optional fields, explicitly set them to empty/default values + * + * Use this method to: + * + * - Modify workflow settings + * - Update triggers and actions + * - Change execution limits + * - Update workflow steps + * + * ### Examples + * + * - Update workflow name: + * + * Changes the workflow's display name. + * + * ```yaml + * workflowId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" + * name: "Updated Workflow Name" + * ``` + * + * - Replace all triggers: + * + * Completely replaces the workflow's trigger configuration. + * + * ```yaml + * workflowId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" + * triggers: + * - manual: {} + * context: + * projects: + * projectIds: ["new-project-id"] + * ``` + * + * - Update execution limits: + * + * Completely replaces the workflow's action configuration. + * + * ```yaml + * workflowId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" + * action: + * limits: + * maxParallel: 10 + * maxTotal: 100 + * steps: + * - task: + * command: "npm test" + * ``` + * + * @example + * ```ts + * const automation = await client.automations.update({ + * triggers: [ + * { + * context: { + * projects: { projectIds: ['new-project-id'] }, + * }, + * manual: {}, + * }, + * ], + * workflowId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', + * }); + * ``` + */ + update(body: AutomationUpdateParams, options?: RequestOptions): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/UpdateWorkflow', { body, ...options }); + } + + /** + * ListWorkflows + * + * @example + * ```ts + * // Automatically fetches more pages as needed. + * for await (const workflow of client.automations.list()) { + * // ... + * } + * ``` + */ + list( + params: AutomationListParams, + options?: RequestOptions, + ): PagePromise { + const { token, pageSize, ...body } = params; + return this._client.getAPIList('/gitpod.v1.WorkflowService/ListWorkflows', WorkflowsPage, { + query: { token, pageSize }, + body, + method: 'post', + ...options, + }); + } + + /** + * Deletes a workflow permanently. + * + * Use this method to: + * + * - Remove unused workflows + * - Clean up test workflows + * - Delete obsolete configurations + * + * ### Examples + * + * - Delete workflow: + * + * Permanently removes a workflow. + * + * ```yaml + * workflowId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" + * ``` + * + * @example + * ```ts + * const automation = await client.automations.delete({ + * workflowId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', + * }); + * ``` + */ + delete(body: AutomationDeleteParams, options?: RequestOptions): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/DeleteWorkflow', { body, ...options }); + } + + /** + * Cancels a running workflow execution. + * + * Use this method to: + * + * - Stop long-running executions + * - Cancel failed executions + * - Manage resource usage + * + * ### Examples + * + * - Cancel execution: + * + * Stops a running workflow execution. + * + * ```yaml + * workflowExecutionId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" + * ``` + * + * @example + * ```ts + * const response = await client.automations.cancelExecution({ + * workflowExecutionId: + * 'd2c94c27-3b76-4a42-b88c-95a85e392c68', + * }); + * ``` + */ + cancelExecution(body: AutomationCancelExecutionParams, options?: RequestOptions): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/CancelWorkflowExecution', { body, ...options }); + } + + /** + * Cancels a running workflow execution action. + * + * Use this method to: + * + * - Stop long-running actions + * - Cancel failed actions + * - Manage resource usage + * + * ### Examples + * + * - Cancel execution action: + * + * Stops a running workflow execution action. + * + * ```yaml + * workflowExecutionActionId: "a1b2c3d4-5e6f-7890-abcd-ef1234567890" + * ``` + * + * @example + * ```ts + * const response = + * await client.automations.cancelExecutionAction({ + * workflowExecutionActionId: + * 'a1b2c3d4-5e6f-7890-abcd-ef1234567890', + * }); + * ``` + */ + cancelExecutionAction( + body: AutomationCancelExecutionActionParams, + options?: RequestOptions, + ): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/CancelWorkflowExecutionAction', { + body, + ...options, + }); + } + + /** + * Lists workflow execution actions with optional filtering. + * + * Use this method to: + * + * - Monitor individual action execution status + * - Debug action failures + * - Track resource usage per action + * + * ### Examples + * + * - List execution actions for workflow execution: + * + * Shows all execution actions for a specific workflow execution. + * + * ```yaml + * filter: + * workflowExecutionIds: ["d2c94c27-3b76-4a42-b88c-95a85e392c68"] + * pagination: + * pageSize: 20 + * ``` + * + * @example + * ```ts + * // Automatically fetches more pages as needed. + * for await (const workflowExecutionAction of client.automations.listExecutionActions( + * { + * filter: { + * workflowExecutionIds: [ + * 'd2c94c27-3b76-4a42-b88c-95a85e392c68', + * ], + * }, + * pagination: { pageSize: 20 }, + * }, + * )) { + * // ... + * } + * ``` + */ + listExecutionActions( + params: AutomationListExecutionActionsParams, + options?: RequestOptions, + ): PagePromise { + const { token, pageSize, ...body } = params; + return this._client.getAPIList( + '/gitpod.v1.WorkflowService/ListWorkflowExecutionActions', + WorkflowExecutionActionsPage, + { query: { token, pageSize }, body, method: 'post', ...options }, + ); + } + + /** + * Lists outputs produced by workflow execution actions. + * + * Use this method to: + * + * - Retrieve test results, coverage metrics, or other structured data from + * executions + * - Aggregate outputs across multiple workflow executions + * - Build dashboards or reports from execution data + * + * ### Examples + * + * - List outputs for a workflow execution: + * + * Retrieves all outputs produced by actions in the specified execution. + * + * ```yaml + * filter: + * workflowExecutionIds: ["d2c94c27-3b76-4a42-b88c-95a85e392c68"] + * pagination: + * pageSize: 50 + * ``` + * + * @example + * ```ts + * // Automatically fetches more pages as needed. + * for await (const automationListExecutionOutputsResponse of client.automations.listExecutionOutputs( + * { + * filter: { + * workflowExecutionIds: [ + * 'd2c94c27-3b76-4a42-b88c-95a85e392c68', + * ], + * }, + * pagination: { pageSize: 50 }, + * }, + * )) { + * // ... + * } + * ``` + */ + listExecutionOutputs( + params: AutomationListExecutionOutputsParams, + options?: RequestOptions, + ): PagePromise { + const { token, pageSize, ...body } = params; + return this._client.getAPIList( + '/gitpod.v1.WorkflowService/ListWorkflowExecutionOutputs', + OutputsPage, + { query: { token, pageSize }, body, method: 'post', ...options }, + ); + } + + /** + * Lists workflow executions with optional filtering. + * + * Use this method to: + * + * - Monitor workflow execution history + * - Track execution status + * - Debug workflow issues + * + * ### Examples + * + * - List executions for workflow: + * + * Shows all executions for a specific workflow. + * + * ```yaml + * filter: + * workflowIds: ["b0e12f6c-4c67-429d-a4a6-d9838b5da047"] + * pagination: + * pageSize: 20 + * ``` + * + * @example + * ```ts + * // Automatically fetches more pages as needed. + * for await (const workflowExecution of client.automations.listExecutions( + * { + * filter: { + * workflowIds: ['b0e12f6c-4c67-429d-a4a6-d9838b5da047'], + * }, + * pagination: { pageSize: 20 }, + * }, + * )) { + * // ... + * } + * ``` + */ + listExecutions( + params: AutomationListExecutionsParams, + options?: RequestOptions, + ): PagePromise { + const { token, pageSize, ...body } = params; + return this._client.getAPIList( + '/gitpod.v1.WorkflowService/ListWorkflowExecutions', + WorkflowExecutionsPage, + { query: { token, pageSize }, body, method: 'post', ...options }, + ); + } + + /** + * Gets details about a specific workflow execution. + * + * Use this method to: + * + * - Check execution status + * - View execution results + * - Monitor execution progress + * + * ### Examples + * + * - Get execution details: + * + * Retrieves information about a specific execution. + * + * ```yaml + * workflowExecutionId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" + * ``` + * + * @example + * ```ts + * const response = await client.automations.retrieveExecution( + * { + * workflowExecutionId: + * 'd2c94c27-3b76-4a42-b88c-95a85e392c68', + * }, + * ); + * ``` + */ + retrieveExecution( + body: AutomationRetrieveExecutionParams, + options?: RequestOptions, + ): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/GetWorkflowExecution', { body, ...options }); + } + + /** + * Gets details about a specific workflow execution action. + * + * Use this method to: + * + * - Check execution action status + * - View execution action results + * - Monitor execution action progress + * + * ### Examples + * + * - Get execution action details: + * + * Retrieves information about a specific execution action. + * + * ```yaml + * workflowExecutionActionId: "a1b2c3d4-5e6f-7890-abcd-ef1234567890" + * ``` + * + * @example + * ```ts + * const response = + * await client.automations.retrieveExecutionAction({ + * workflowExecutionActionId: + * 'a1b2c3d4-5e6f-7890-abcd-ef1234567890', + * }); + * ``` + */ + retrieveExecutionAction( + body: AutomationRetrieveExecutionActionParams, + options?: RequestOptions, + ): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/GetWorkflowExecutionAction', { body, ...options }); + } + + /** + * Starts a workflow execution. + * + * Use this method to: + * + * - Start workflow execution on demand + * - Test workflow configurations + * - Run workflows outside of automatic triggers + * + * ### Examples + * + * - Start workflow: + * + * Starts a workflow execution manually. + * + * ```yaml + * workflowId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" + * ``` + * + * @example + * ```ts + * const response = await client.automations.startExecution({ + * workflowId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', + * }); + * ``` + */ + startExecution( + body: AutomationStartExecutionParams, + options?: RequestOptions, + ): APIPromise { + return this._client.post('/gitpod.v1.WorkflowService/StartWorkflow', { body, ...options }); + } +} + +export type WorkflowsWorkflowsPage = WorkflowsPage; + +export type WorkflowExecutionActionsWorkflowExecutionActionsPage = + WorkflowExecutionActionsPage; + +export type AutomationListExecutionOutputsResponsesOutputsPage = + OutputsPage; + +export type WorkflowExecutionsWorkflowExecutionsPage = WorkflowExecutionsPage; + +/** + * Workflow represents a workflow configuration. + */ +export interface Workflow { + id?: string; + + /** + * WorkflowMetadata contains workflow metadata. + */ + metadata?: Workflow.Metadata; + + spec?: Workflow.Spec; + + /** + * Webhook URL for triggering this workflow via HTTP POST Format: + * {base_url}/workflows/{workflow_id}/webhooks + */ + webhookUrl?: string; +} + +export namespace Workflow { + /** + * WorkflowMetadata contains workflow metadata. + */ + export interface Metadata { + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + createdAt?: string; + + creator?: Shared.Subject; + + description?: string; + + executor?: Shared.Subject; + + name?: string; + + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + updatedAt?: string; + } + + export interface Spec { + /** + * WorkflowAction defines the actions to be executed in a workflow. + */ + action?: AutomationsAPI.WorkflowAction; + + /** + * WorkflowAction defines the actions to be executed in a workflow. + */ + report?: AutomationsAPI.WorkflowAction; + + triggers?: Array; + } +} + +/** + * WorkflowAction defines the actions to be executed in a workflow. + */ +export interface WorkflowAction { + /** + * Limits defines execution limits for workflow actions. Concurrent actions limit + * cannot exceed total actions limit: + * + * ``` + * this.max_parallel <= this.max_total + * ``` + */ + limits: WorkflowAction.Limits; + + /** + * Automation must have between 1 and 50 steps: + * + * ``` + * size(this) >= 1 && size(this) <= 50 + * ``` + */ + steps?: Array; +} + +export namespace WorkflowAction { + /** + * Limits defines execution limits for workflow actions. Concurrent actions limit + * cannot exceed total actions limit: + * + * ``` + * this.max_parallel <= this.max_total + * ``` + */ + export interface Limits { + /** + * Maximum parallel actions must be between 1 and 25: + * + * ``` + * this >= 1 && this <= 25 + * ``` + */ + maxParallel?: number; + + /** + * Maximum total actions must be between 1 and 100: + * + * ``` + * this >= 1 && this <= 100 + * ``` + */ + maxTotal?: number; + + /** + * PerExecution defines limits per execution action. + */ + perExecution?: Limits.PerExecution; + } + + export namespace Limits { + /** + * PerExecution defines limits per execution action. + */ + export interface PerExecution { + /** + * Maximum time allowed for a single execution action. Use standard duration format + * (e.g., "30m" for 30 minutes, "2h" for 2 hours). + */ + maxTime?: string; + } + } +} + +/** + * WorkflowExecution represents a workflow execution instance. + */ +export interface WorkflowExecution { + id?: string; + + /** + * WorkflowExecutionMetadata contains workflow execution metadata. + */ + metadata?: WorkflowExecution.Metadata; + + /** + * WorkflowExecutionSpec contains the specification used for this execution. + */ + spec?: WorkflowExecution.Spec; + + /** + * WorkflowExecutionStatus contains the current status of a workflow execution. + */ + status?: WorkflowExecution.Status; +} + +export namespace WorkflowExecution { + /** + * WorkflowExecutionMetadata contains workflow execution metadata. + */ + export interface Metadata { + creator?: Shared.Subject; + + executor?: Shared.Subject; + + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + finishedAt?: string; + + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + startedAt?: string; + + workflowId?: string; + } + + /** + * WorkflowExecutionSpec contains the specification used for this execution. + */ + export interface Spec { + /** + * WorkflowAction defines the actions to be executed in a workflow. + */ + action?: AutomationsAPI.WorkflowAction; + + /** + * WorkflowAction defines the actions to be executed in a workflow. + */ + report?: AutomationsAPI.WorkflowAction; + + /** + * WorkflowExecutionTrigger represents a workflow execution trigger instance. + */ + trigger?: Spec.Trigger; + } + + export namespace Spec { + /** + * WorkflowExecutionTrigger represents a workflow execution trigger instance. + */ + export interface Trigger { + /** + * Context from the workflow trigger - copied at execution time for immutability. + * This allows the reconciler to create actions without fetching the workflow + * definition. + */ + context: AutomationsAPI.WorkflowTriggerContext; + + /** + * Manual trigger - empty message since no additional data needed + */ + manual?: unknown; + + /** + * PullRequest represents pull request metadata from source control systems. This + * message is used across workflow triggers, executions, and agent contexts to + * maintain consistent PR information throughout the system. + */ + pullRequest?: Trigger.PullRequest; + + /** + * Time trigger - just the timestamp when it was triggered + */ + time?: Trigger.Time; + } + + export namespace Trigger { + /** + * PullRequest represents pull request metadata from source control systems. This + * message is used across workflow triggers, executions, and agent contexts to + * maintain consistent PR information throughout the system. + */ + export interface PullRequest { + /** + * Unique identifier from the source system (e.g., "123" for GitHub PR #123) + */ + id?: string; + + /** + * Author name as provided by the SCM system + */ + author?: string; + + /** + * Whether this is a draft pull request + */ + draft?: boolean; + + /** + * Source branch name (the branch being merged from) + */ + fromBranch?: string; + + /** + * Repository information + */ + repository?: PullRequest.Repository; + + /** + * Current state of the pull request + */ + state?: Shared.State; + + /** + * Pull request title + */ + title?: string; + + /** + * Target branch name (the branch being merged into) + */ + toBranch?: string; + + /** + * Pull request URL (e.g., "https://github.com/owner/repo/pull/123") + */ + url?: string; + } + + export namespace PullRequest { + /** + * Repository information + */ + export interface Repository { + cloneUrl?: string; + + host?: string; + + name?: string; + + owner?: string; + } + } + + /** + * Time trigger - just the timestamp when it was triggered + */ + export interface Time { + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + triggeredAt?: string; + } + } + } + + /** + * WorkflowExecutionStatus contains the current status of a workflow execution. + */ + export interface Status { + doneActionCount?: number; + + failedActionCount?: number; + + /** + * Structured failures that caused the workflow execution to fail. Provides + * detailed error codes, messages, and retry information. + */ + failures?: Array; + + pendingActionCount?: number; + + phase?: + | 'WORKFLOW_EXECUTION_PHASE_UNSPECIFIED' + | 'WORKFLOW_EXECUTION_PHASE_PENDING' + | 'WORKFLOW_EXECUTION_PHASE_RUNNING' + | 'WORKFLOW_EXECUTION_PHASE_STOPPING' + | 'WORKFLOW_EXECUTION_PHASE_STOPPED' + | 'WORKFLOW_EXECUTION_PHASE_DELETING' + | 'WORKFLOW_EXECUTION_PHASE_DELETED' + | 'WORKFLOW_EXECUTION_PHASE_COMPLETED'; + + runningActionCount?: number; + + stoppedActionCount?: number; + + /** + * Structured warnings about the workflow execution. Provides detailed warning + * codes and messages. + */ + warnings?: Array; + } + + export namespace Status { + /** + * WorkflowError provides structured error information for workflow failures. This + * enables the reconciler to make informed retry decisions and the frontend to + * display actionable error messages. + */ + export interface Failure { + /** + * Error code identifying the type of error. + */ + code?: + | 'WORKFLOW_ERROR_CODE_UNSPECIFIED' + | 'WORKFLOW_ERROR_CODE_ENVIRONMENT_ERROR' + | 'WORKFLOW_ERROR_CODE_AGENT_ERROR'; + + /** + * Human-readable error message. + */ + message?: string; + + /** + * Additional metadata about the error. Common keys include: + * + * - environment_id: ID of the environment + * - task_id: ID of the task + * - service_id: ID of the service + * - workflow_id: ID of the workflow + * - workflow_execution_id: ID of the workflow execution + */ + meta?: { [key: string]: string }; + + /** + * Reason explaining why the error occurred. Examples: "not_found", "stopped", + * "deleted", "creation_failed", "start_failed" + */ + reason?: string; + + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + retry?: Failure.Retry | null; + } + + export namespace Failure { + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + export interface Retry { + /** + * Whether the error is retriable. + */ + retriable?: boolean; + + /** + * Suggested duration to wait before retrying. Only meaningful when retriable is + * true. + */ + retryAfter?: string; + } + } + + /** + * WorkflowError provides structured error information for workflow failures. This + * enables the reconciler to make informed retry decisions and the frontend to + * display actionable error messages. + */ + export interface Warning { + /** + * Error code identifying the type of error. + */ + code?: + | 'WORKFLOW_ERROR_CODE_UNSPECIFIED' + | 'WORKFLOW_ERROR_CODE_ENVIRONMENT_ERROR' + | 'WORKFLOW_ERROR_CODE_AGENT_ERROR'; + + /** + * Human-readable error message. + */ + message?: string; + + /** + * Additional metadata about the error. Common keys include: + * + * - environment_id: ID of the environment + * - task_id: ID of the task + * - service_id: ID of the service + * - workflow_id: ID of the workflow + * - workflow_execution_id: ID of the workflow execution + */ + meta?: { [key: string]: string }; + + /** + * Reason explaining why the error occurred. Examples: "not_found", "stopped", + * "deleted", "creation_failed", "start_failed" + */ + reason?: string; + + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + retry?: Warning.Retry | null; + } + + export namespace Warning { + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + export interface Retry { + /** + * Whether the error is retriable. + */ + retriable?: boolean; + + /** + * Suggested duration to wait before retrying. Only meaningful when retriable is + * true. + */ + retryAfter?: string; + } + } + } +} + +/** + * WorkflowExecutionAction represents a workflow execution action instance. + */ +export interface WorkflowExecutionAction { + id?: string; + + /** + * WorkflowExecutionActionMetadata contains workflow execution action metadata. + */ + metadata?: WorkflowExecutionAction.Metadata; + + /** + * WorkflowExecutionActionSpec contains the specification for this execution + * action. + */ + spec?: WorkflowExecutionAction.Spec; + + /** + * WorkflowExecutionActionStatus contains the current status of a workflow + * execution action. + */ + status?: WorkflowExecutionAction.Status; +} + +export namespace WorkflowExecutionAction { + /** + * WorkflowExecutionActionMetadata contains workflow execution action metadata. + */ + export interface Metadata { + /** + * Human-readable name for this action based on its context. Examples: + * "gitpod-io/gitpod-next" for repository context, "My Project" for project + * context. Will be empty string for actions created before this field was added. + */ + actionName?: string; + + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + finishedAt?: string; + + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + startedAt?: string; + + workflowExecutionId?: string; + + workflowId?: string; + } + + /** + * WorkflowExecutionActionSpec contains the specification for this execution + * action. + */ + export interface Spec { + /** + * Context for the execution action - specifies where and how the action executes. + * This is resolved from the workflow trigger context and contains the specific + * project, repository, or agent context for this execution instance. + */ + context?: AgentsAPI.AgentCodeContext; + + /** + * PerExecution defines limits per execution action. + */ + limits?: Spec.Limits; + } + + export namespace Spec { + /** + * PerExecution defines limits per execution action. + */ + export interface Limits { + /** + * Maximum time allowed for a single execution action. Use standard duration format + * (e.g., "30m" for 30 minutes, "2h" for 2 hours). + */ + maxTime?: string; + } + } + + /** + * WorkflowExecutionActionStatus contains the current status of a workflow + * execution action. + */ + export interface Status { + agentExecutionId?: string; + + environmentId?: string; + + /** + * Structured failures that caused the workflow execution action to fail. Provides + * detailed error codes, messages, and retry information. + */ + failures?: Array; + + /** + * WorkflowExecutionActionPhase defines the phases of workflow execution action. + */ + phase?: + | 'WORKFLOW_EXECUTION_ACTION_PHASE_UNSPECIFIED' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_PENDING' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_RUNNING' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_STOPPING' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_STOPPED' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_DELETING' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_DELETED' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_DONE'; + + /** + * Step-level progress tracking + */ + stepStatuses?: Array; + + /** + * Structured warnings about the workflow execution action. Provides detailed + * warning codes and messages. + */ + warnings?: Array; + } + + export namespace Status { + /** + * WorkflowError provides structured error information for workflow failures. This + * enables the reconciler to make informed retry decisions and the frontend to + * display actionable error messages. + */ + export interface Failure { + /** + * Error code identifying the type of error. + */ + code?: + | 'WORKFLOW_ERROR_CODE_UNSPECIFIED' + | 'WORKFLOW_ERROR_CODE_ENVIRONMENT_ERROR' + | 'WORKFLOW_ERROR_CODE_AGENT_ERROR'; + + /** + * Human-readable error message. + */ + message?: string; + + /** + * Additional metadata about the error. Common keys include: + * + * - environment_id: ID of the environment + * - task_id: ID of the task + * - service_id: ID of the service + * - workflow_id: ID of the workflow + * - workflow_execution_id: ID of the workflow execution + */ + meta?: { [key: string]: string }; + + /** + * Reason explaining why the error occurred. Examples: "not_found", "stopped", + * "deleted", "creation_failed", "start_failed" + */ + reason?: string; + + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + retry?: Failure.Retry | null; + } + + export namespace Failure { + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + export interface Retry { + /** + * Whether the error is retriable. + */ + retriable?: boolean; + + /** + * Suggested duration to wait before retrying. Only meaningful when retriable is + * true. + */ + retryAfter?: string; + } + } + + /** + * WorkflowExecutionActionStepStatus represents the status of a single step + * execution. + */ + export interface StepStatus { + /** + * Structured error that caused the step to fail. Provides detailed error code, + * message, and retry information. + */ + error?: StepStatus.Error; + + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + finishedAt?: string; + + phase?: + | 'STEP_PHASE_UNSPECIFIED' + | 'STEP_PHASE_PENDING' + | 'STEP_PHASE_RUNNING' + | 'STEP_PHASE_DONE' + | 'STEP_PHASE_FAILED' + | 'STEP_PHASE_CANCELLED'; + + /** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at nanosecond + * resolution. The count is relative to an epoch at UTC midnight on January 1, + * 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar + * backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a + * [24-hour linear smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * Example 5: Compute Timestamp from Java `Instant.now()`. + * + * Instant now = Instant.now(); + * + * Timestamp timestamp = + * Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + * .setNanos(now.getNano()).build(); + * + * Example 6: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is + * "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always + * expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are + * zero-padded to two digits each. The fractional seconds, which can go up to 9 + * digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix + * indicates the timezone ("UTC"); the timezone is required. A proto3 JSON + * serializer should always use UTC (as indicated by "Z") when printing the + * Timestamp type and a proto3 JSON parser should be able to accept both UTC and + * other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on + * January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the standard + * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted to + * this format using + * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the + * time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the + * Joda Time's + * [`ISODateTimeFormat.dateTime()`]() + * to obtain a formatter capable of generating timestamps in this format. + */ + startedAt?: string; + + /** + * The step definition captured at execution time for immutability. This ensures + * the UI shows the correct step even if the workflow definition changes. + */ + step?: AutomationsAPI.WorkflowStep; + + /** + * Index of the step in the workflow action steps array + */ + stepIndex?: number; + } + + export namespace StepStatus { + /** + * Structured error that caused the step to fail. Provides detailed error code, + * message, and retry information. + */ + export interface Error { + /** + * Error code identifying the type of error. + */ + code?: + | 'WORKFLOW_ERROR_CODE_UNSPECIFIED' + | 'WORKFLOW_ERROR_CODE_ENVIRONMENT_ERROR' + | 'WORKFLOW_ERROR_CODE_AGENT_ERROR'; + + /** + * Human-readable error message. + */ + message?: string; + + /** + * Additional metadata about the error. Common keys include: + * + * - environment_id: ID of the environment + * - task_id: ID of the task + * - service_id: ID of the service + * - workflow_id: ID of the workflow + * - workflow_execution_id: ID of the workflow execution + */ + meta?: { [key: string]: string }; + + /** + * Reason explaining why the error occurred. Examples: "not_found", "stopped", + * "deleted", "creation_failed", "start_failed" + */ + reason?: string; + + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + retry?: Error.Retry | null; + } + + export namespace Error { + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + export interface Retry { + /** + * Whether the error is retriable. + */ + retriable?: boolean; + + /** + * Suggested duration to wait before retrying. Only meaningful when retriable is + * true. + */ + retryAfter?: string; + } + } + } + + /** + * WorkflowError provides structured error information for workflow failures. This + * enables the reconciler to make informed retry decisions and the frontend to + * display actionable error messages. + */ + export interface Warning { + /** + * Error code identifying the type of error. + */ + code?: + | 'WORKFLOW_ERROR_CODE_UNSPECIFIED' + | 'WORKFLOW_ERROR_CODE_ENVIRONMENT_ERROR' + | 'WORKFLOW_ERROR_CODE_AGENT_ERROR'; + + /** + * Human-readable error message. + */ + message?: string; + + /** + * Additional metadata about the error. Common keys include: + * + * - environment_id: ID of the environment + * - task_id: ID of the task + * - service_id: ID of the service + * - workflow_id: ID of the workflow + * - workflow_execution_id: ID of the workflow execution + */ + meta?: { [key: string]: string }; + + /** + * Reason explaining why the error occurred. Examples: "not_found", "stopped", + * "deleted", "creation_failed", "start_failed" + */ + reason?: string; + + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + retry?: Warning.Retry | null; + } + + export namespace Warning { + /** + * Retry configuration. If not set, the error is considered non-retriable. + */ + export interface Retry { + /** + * Whether the error is retriable. + */ + retriable?: boolean; + + /** + * Suggested duration to wait before retrying. Only meaningful when retriable is + * true. + */ + retryAfter?: string; + } + } + } +} + +/** + * WorkflowStep defines a single step in a workflow action. + */ +export interface WorkflowStep { + /** + * WorkflowAgentStep represents an agent step that executes with a prompt. + */ + agent?: WorkflowStep.Agent; + + /** + * WorkflowPullRequestStep represents a pull request creation step. + */ + pullRequest?: WorkflowStep.PullRequest; + + report?: WorkflowStep.Report; + + /** + * WorkflowTaskStep represents a task step that executes a command. + */ + task?: WorkflowStep.Task; +} + +export namespace WorkflowStep { + /** + * WorkflowAgentStep represents an agent step that executes with a prompt. + */ + export interface Agent { + /** + * Prompt must be between 1 and 20,000 characters: + * + * ``` + * size(this) >= 1 && size(this) <= 20000 + * ``` + */ + prompt?: string; + } + + /** + * WorkflowPullRequestStep represents a pull request creation step. + */ + export interface PullRequest { + /** + * Branch name must be between 1 and 255 characters: + * + * ``` + * size(this) >= 1 && size(this) <= 255 + * ``` + */ + branch?: string; + + /** + * Description must be at most 20,000 characters: + * + * ``` + * size(this) <= 20000 + * ``` + */ + description?: string; + + draft?: boolean; + + /** + * Title must be between 1 and 500 characters: + * + * ``` + * size(this) >= 1 && size(this) <= 500 + * ``` + */ + title?: string; + } + + export interface Report { + /** + * Report must have at least one output: + * + * ``` + * size(this) >= 1 + * ``` + */ + outputs?: Array; + } + + export namespace Report { + export interface Output {} + } + + /** + * WorkflowTaskStep represents a task step that executes a command. + */ + export interface Task { + /** + * Command must be between 1 and 20,000 characters: + * + * ``` + * size(this) >= 1 && size(this) <= 20000 + * ``` + */ + command?: string; + } +} + +/** + * WorkflowTrigger defines when a workflow should be executed. + * + * Each trigger type defines a specific condition that will cause the workflow to + * execute: + * + * - Manual: Triggered explicitly by user action via StartWorkflow RPC + * - Time: Triggered automatically based on cron schedule + * - PullRequest: Triggered automatically when specified PR events occur + * + * Trigger Semantics: + * + * - Each trigger instance can create multiple workflow executions + * - Multiple triggers of the same workflow can fire simultaneously + * - Each trigger execution is independent and tracked separately + * - Triggers are evaluated in the context specified by WorkflowTriggerContext + */ +export interface WorkflowTrigger { + /** + * WorkflowTriggerContext defines the context in which a workflow should run. + * + * Context determines where and how the workflow executes: + * + * - Projects: Execute in specific project environments + * - Repositories: Execute in environments created from repository URLs + * - Agent: Execute in agent-managed environments with custom prompts + * - FromTrigger: Use context derived from the trigger event (PR-specific) + * + * Context Usage by Trigger Type: + * + * - Manual: Can use any context type + * - Time: Typically uses Projects or Repositories context + * - PullRequest: Can use any context, FromTrigger uses PR repository context + */ + context: WorkflowTriggerContext; + + /** + * Manual trigger - executed when StartWorkflow RPC is called. No additional + * configuration needed. + */ + manual?: unknown; + + /** + * Pull request trigger - executed when specified PR events occur. Only triggers + * for PRs in repositories matching the trigger context. + */ + pullRequest?: WorkflowTrigger.PullRequest; + + /** + * Time-based trigger - executed automatically based on cron schedule. Uses + * standard cron expression format (minute hour day month weekday). + */ + time?: WorkflowTrigger.Time; +} + +export namespace WorkflowTrigger { + /** + * Pull request trigger - executed when specified PR events occur. Only triggers + * for PRs in repositories matching the trigger context. + */ + export interface PullRequest { + events?: Array< + | 'PULL_REQUEST_EVENT_UNSPECIFIED' + | 'PULL_REQUEST_EVENT_OPENED' + | 'PULL_REQUEST_EVENT_UPDATED' + | 'PULL_REQUEST_EVENT_APPROVED' + | 'PULL_REQUEST_EVENT_MERGED' + | 'PULL_REQUEST_EVENT_CLOSED' + | 'PULL_REQUEST_EVENT_READY_FOR_REVIEW' + >; + + /** + * webhook_id is the optional ID of a webhook that this trigger is bound to. When + * set, the trigger will be activated when the webhook receives events. This allows + * multiple workflows to share a single webhook endpoint. + */ + webhookId?: string | null; + } + + /** + * Time-based trigger - executed automatically based on cron schedule. Uses + * standard cron expression format (minute hour day month weekday). + */ + export interface Time { + /** + * Cron expression must be between 1 and 100 characters: + * + * ``` + * size(this) >= 1 && size(this) <= 100 + * ``` + */ + cronExpression?: string; + } +} + +/** + * WorkflowTriggerContext defines the context in which a workflow should run. + * + * Context determines where and how the workflow executes: + * + * - Projects: Execute in specific project environments + * - Repositories: Execute in environments created from repository URLs + * - Agent: Execute in agent-managed environments with custom prompts + * - FromTrigger: Use context derived from the trigger event (PR-specific) + * + * Context Usage by Trigger Type: + * + * - Manual: Can use any context type + * - Time: Typically uses Projects or Repositories context + * - PullRequest: Can use any context, FromTrigger uses PR repository context + */ +export interface WorkflowTriggerContext { + /** + * Execute workflow in agent-managed environments. Agent receives the specified + * prompt and manages execution context. + */ + agent?: WorkflowTriggerContext.Agent; + + /** + * Use context derived from the trigger event. Currently only supported for + * PullRequest triggers - uses PR repository context. + */ + fromTrigger?: unknown; + + /** + * Execute workflow in specific project environments. Creates environments for each + * specified project. + */ + projects?: WorkflowTriggerContext.Projects; + + /** + * Execute workflow in environments created from repository URLs. Supports both + * explicit repository URLs and search patterns. + */ + repositories?: WorkflowTriggerContext.Repositories; +} + +export namespace WorkflowTriggerContext { + /** + * Execute workflow in agent-managed environments. Agent receives the specified + * prompt and manages execution context. + */ + export interface Agent { + /** + * Agent prompt must be between 1 and 20,000 characters: + * + * ``` + * size(this) >= 1 && size(this) <= 20000 + * ``` + */ + prompt?: string; + } + + /** + * Execute workflow in specific project environments. Creates environments for each + * specified project. + */ + export interface Projects { + projectIds?: Array; + } + + /** + * Execute workflow in environments created from repository URLs. Supports both + * explicit repository URLs and search patterns. + */ + export interface Repositories { + environmentClassId?: string; + + /** + * RepositorySelector defines how to select repositories for workflow execution. + * Combines a search string with an SCM host to identify repositories. + */ + repoSelector?: Repositories.RepoSelector; + + /** + * RepositoryURLs contains a list of explicit repository URLs. Creates one action + * per repository URL. + */ + repositoryUrls?: Repositories.RepositoryURLs; + } + + export namespace Repositories { + /** + * RepositorySelector defines how to select repositories for workflow execution. + * Combines a search string with an SCM host to identify repositories. + */ + export interface RepoSelector { + /** + * Search string to match repositories using SCM-specific search patterns. For + * GitHub: supports GitHub search syntax (e.g., "org:gitpod-io language:go", + * "user:octocat stars:>100") For GitLab: supports GitLab search syntax See SCM + * provider documentation for supported search patterns. + */ + repoSearchString?: string; + + /** + * SCM host where the search should be performed (e.g., "github.com", "gitlab.com") + */ + scmHost?: string; + } + + /** + * RepositoryURLs contains a list of explicit repository URLs. Creates one action + * per repository URL. + */ + export interface RepositoryURLs { + repoUrls?: Array; + } + } +} + +export interface AutomationCreateResponse { + /** + * Workflow represents a workflow configuration. + */ + workflow?: Workflow; +} + +export interface AutomationRetrieveResponse { + /** + * Workflow represents a workflow configuration. + */ + workflow?: Workflow; +} + +export interface AutomationUpdateResponse { + /** + * Workflow represents a workflow configuration. + */ + workflow?: Workflow; +} + +export type AutomationDeleteResponse = unknown; + +export type AutomationCancelExecutionResponse = unknown; + +export type AutomationCancelExecutionActionResponse = unknown; + +export interface AutomationListExecutionOutputsResponse { + actionId?: string; + + values?: { [key: string]: AutomationListExecutionOutputsResponse.Values }; +} + +export namespace AutomationListExecutionOutputsResponse { + export interface Values { + boolValue?: boolean; + + floatValue?: number; + + intValue?: string; + + stringValue?: string; + } +} + +export interface AutomationRetrieveExecutionResponse { + /** + * WorkflowExecution represents a workflow execution instance. + */ + workflowExecution?: WorkflowExecution; +} + +export interface AutomationRetrieveExecutionActionResponse { + /** + * WorkflowExecutionAction represents a workflow execution action instance. + */ + workflowExecutionAction?: WorkflowExecutionAction; +} + +export interface AutomationStartExecutionResponse { + /** + * WorkflowExecution represents a workflow execution instance. + */ + workflowExecution?: WorkflowExecution; +} + +export interface AutomationCreateParams { + /** + * WorkflowAction defines the actions to be executed in a workflow. + */ + action: WorkflowAction; + + /** + * Description must be at most 500 characters: + * + * ``` + * size(this) <= 500 + * ``` + */ + description?: string; + + /** + * Optional executor for the workflow. If not provided, defaults to the creator. + * Must be either the caller themselves or a service account. + */ + executor?: Shared.Subject | null; + + /** + * Name must be between 1 and 80 characters: + * + * ``` + * size(this) >= 1 && size(this) <= 80 + * ``` + */ + name?: string; + + /** + * WorkflowAction defines the actions to be executed in a workflow. + */ + report?: WorkflowAction; + + /** + * Automation must have between 1 and 10 triggers: + * + * ``` + * size(this) >= 1 && size(this) <= 10 + * ``` + */ + triggers?: Array; +} + +export interface AutomationRetrieveParams { + workflowId?: string; +} + +export interface AutomationUpdateParams { + /** + * WorkflowAction defines the actions to be executed in a workflow. + */ + action?: WorkflowAction | null; + + /** + * Description must be at most 500 characters: + * + * ``` + * size(this) <= 500 + * ``` + */ + description?: string | null; + + executor?: Shared.Subject | null; + + /** + * Name must be between 1 and 80 characters: + * + * ``` + * size(this) >= 1 && size(this) <= 80 + * ``` + */ + name?: string | null; + + /** + * WorkflowAction defines the actions to be executed in a workflow. + */ + report?: WorkflowAction | null; + + /** + * Automation can have at most 10 triggers: + * + * ``` + * size(this) <= 10 + * ``` + */ + triggers?: Array; + + workflowId?: string; +} + +export interface AutomationListParams extends WorkflowsPageParams { + /** + * Body param + */ + filter?: AutomationListParams.Filter; + + /** + * Body param + */ + pagination?: AutomationListParams.Pagination; +} + +export namespace AutomationListParams { + export interface Filter { + /** + * creator_ids filters workflows by creator user IDs + */ + creatorIds?: Array; + + /** + * search performs case-insensitive search across workflow name, description, and + * ID + */ + search?: string; + + /** + * status_phases filters workflows by the phase of their latest execution. Only + * workflows whose most recent execution matches one of the specified phases are + * returned. + */ + statusPhases?: Array< + | 'WORKFLOW_EXECUTION_PHASE_UNSPECIFIED' + | 'WORKFLOW_EXECUTION_PHASE_PENDING' + | 'WORKFLOW_EXECUTION_PHASE_RUNNING' + | 'WORKFLOW_EXECUTION_PHASE_STOPPING' + | 'WORKFLOW_EXECUTION_PHASE_STOPPED' + | 'WORKFLOW_EXECUTION_PHASE_DELETING' + | 'WORKFLOW_EXECUTION_PHASE_DELETED' + | 'WORKFLOW_EXECUTION_PHASE_COMPLETED' + >; + + workflowIds?: Array; + } + + export interface Pagination { + /** + * Token for the next set of results that was returned as next_token of a + * PaginationResponse + */ + token?: string; + + /** + * Page size is the maximum number of results to retrieve per page. Defaults to 25. + * Maximum 100. + */ + pageSize?: number; + } +} + +export interface AutomationDeleteParams { + /** + * force indicates whether to immediately delete the workflow and all related + * resources. When true, performs cascading deletion of: + * + * - All workflow executions + * - All workflow execution actions + * - All environments created by workflow actions + * - All agent executions created by workflow actions + * - The workflow itself When false (default), marks workflow executions for + * deletion and relies on background reconciliation to clean up resources. + */ + force?: boolean; + + workflowId?: string; +} + +export interface AutomationCancelExecutionParams { + workflowExecutionId?: string; +} + +export interface AutomationCancelExecutionActionParams { + workflowExecutionActionId?: string; +} + +export interface AutomationListExecutionActionsParams extends WorkflowExecutionActionsPageParams { + /** + * Body param + */ + filter?: AutomationListExecutionActionsParams.Filter; + + /** + * Body param + */ + pagination?: AutomationListExecutionActionsParams.Pagination; +} + +export namespace AutomationListExecutionActionsParams { + export interface Filter { + phases?: Array< + | 'WORKFLOW_EXECUTION_ACTION_PHASE_UNSPECIFIED' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_PENDING' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_RUNNING' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_STOPPING' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_STOPPED' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_DELETING' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_DELETED' + | 'WORKFLOW_EXECUTION_ACTION_PHASE_DONE' + >; + + workflowExecutionActionIds?: Array; + + workflowExecutionIds?: Array; + + workflowIds?: Array; + } + + export interface Pagination { + /** + * Token for the next set of results that was returned as next_token of a + * PaginationResponse + */ + token?: string; + + /** + * Page size is the maximum number of results to retrieve per page. Defaults to 25. + * Maximum 100. + */ + pageSize?: number; + } +} + +export interface AutomationListExecutionOutputsParams extends OutputsPageParams { + /** + * Body param + */ + filter?: AutomationListExecutionOutputsParams.Filter; + + /** + * Body param + */ + pagination?: AutomationListExecutionOutputsParams.Pagination; +} + +export namespace AutomationListExecutionOutputsParams { + export interface Filter { + workflowExecutionIds?: Array; + } + + export interface Pagination { + /** + * Token for the next set of results that was returned as next_token of a + * PaginationResponse + */ + token?: string; + + /** + * Page size is the maximum number of results to retrieve per page. Defaults to 25. + * Maximum 100. + */ + pageSize?: number; + } +} + +export interface AutomationListExecutionsParams extends WorkflowExecutionsPageParams { + /** + * Body param + */ + filter?: AutomationListExecutionsParams.Filter; + + /** + * Body param + */ + pagination?: AutomationListExecutionsParams.Pagination; + + /** + * Body param: sort specifies the order of results. When unspecified, results are + * sorted by operational priority (running first, then failed, then completed, then + * others). Supported sort fields: startedAt, finishedAt, createdAt. + */ + sort?: Shared.Sort; +} + +export namespace AutomationListExecutionsParams { + export interface Filter { + hasFailedActions?: boolean | null; + + /** + * search performs case-insensitive search across workflow execution ID and trigger + * type + */ + search?: string; + + statusPhases?: Array< + | 'WORKFLOW_EXECUTION_PHASE_UNSPECIFIED' + | 'WORKFLOW_EXECUTION_PHASE_PENDING' + | 'WORKFLOW_EXECUTION_PHASE_RUNNING' + | 'WORKFLOW_EXECUTION_PHASE_STOPPING' + | 'WORKFLOW_EXECUTION_PHASE_STOPPED' + | 'WORKFLOW_EXECUTION_PHASE_DELETING' + | 'WORKFLOW_EXECUTION_PHASE_DELETED' + | 'WORKFLOW_EXECUTION_PHASE_COMPLETED' + >; + + workflowExecutionIds?: Array; + + workflowIds?: Array; + } + + export interface Pagination { + /** + * Token for the next set of results that was returned as next_token of a + * PaginationResponse + */ + token?: string; + + /** + * Page size is the maximum number of results to retrieve per page. Defaults to 25. + * Maximum 100. + */ + pageSize?: number; + } +} + +export interface AutomationRetrieveExecutionParams { + workflowExecutionId?: string; +} + +export interface AutomationRetrieveExecutionActionParams { + workflowExecutionActionId?: string; +} + +export interface AutomationStartExecutionParams { + /** + * Optional context override for the execution. When provided, replaces the + * workflow's default trigger context. User must have appropriate permissions on + * the overridden resources. Supports Projects, Repositories, and Agent context + * types. FromTrigger context type is not supported for manual overrides. + */ + contextOverride?: WorkflowTriggerContext | null; + + /** + * Parameters to substitute into workflow steps using Go template syntax. Use + * {{ .Parameters.key_name }} in templatable fields (task.command, agent.prompt, + * pull*request.title/description/branch, trigger context agent.prompt). Keys must + * match pattern ^[a-zA-Z*][a-zA-Z0-9_]\*$ Maximum 10 parameters allowed. Empty map + * is treated as no parameters provided. + */ + parameters?: { [key: string]: string }; + + workflowId?: string; +} + +export declare namespace Automations { + export { + type Workflow as Workflow, + type WorkflowAction as WorkflowAction, + type WorkflowExecution as WorkflowExecution, + type WorkflowExecutionAction as WorkflowExecutionAction, + type WorkflowStep as WorkflowStep, + type WorkflowTrigger as WorkflowTrigger, + type WorkflowTriggerContext as WorkflowTriggerContext, + type AutomationCreateResponse as AutomationCreateResponse, + type AutomationRetrieveResponse as AutomationRetrieveResponse, + type AutomationUpdateResponse as AutomationUpdateResponse, + type AutomationDeleteResponse as AutomationDeleteResponse, + type AutomationCancelExecutionResponse as AutomationCancelExecutionResponse, + type AutomationCancelExecutionActionResponse as AutomationCancelExecutionActionResponse, + type AutomationListExecutionOutputsResponse as AutomationListExecutionOutputsResponse, + type AutomationRetrieveExecutionResponse as AutomationRetrieveExecutionResponse, + type AutomationRetrieveExecutionActionResponse as AutomationRetrieveExecutionActionResponse, + type AutomationStartExecutionResponse as AutomationStartExecutionResponse, + type WorkflowsWorkflowsPage as WorkflowsWorkflowsPage, + type WorkflowExecutionActionsWorkflowExecutionActionsPage as WorkflowExecutionActionsWorkflowExecutionActionsPage, + type AutomationListExecutionOutputsResponsesOutputsPage as AutomationListExecutionOutputsResponsesOutputsPage, + type WorkflowExecutionsWorkflowExecutionsPage as WorkflowExecutionsWorkflowExecutionsPage, + type AutomationCreateParams as AutomationCreateParams, + type AutomationRetrieveParams as AutomationRetrieveParams, + type AutomationUpdateParams as AutomationUpdateParams, + type AutomationListParams as AutomationListParams, + type AutomationDeleteParams as AutomationDeleteParams, + type AutomationCancelExecutionParams as AutomationCancelExecutionParams, + type AutomationCancelExecutionActionParams as AutomationCancelExecutionActionParams, + type AutomationListExecutionActionsParams as AutomationListExecutionActionsParams, + type AutomationListExecutionOutputsParams as AutomationListExecutionOutputsParams, + type AutomationListExecutionsParams as AutomationListExecutionsParams, + type AutomationRetrieveExecutionParams as AutomationRetrieveExecutionParams, + type AutomationRetrieveExecutionActionParams as AutomationRetrieveExecutionActionParams, + type AutomationStartExecutionParams as AutomationStartExecutionParams, + }; +} diff --git a/src/resources/index.ts b/src/resources/index.ts index 1cc8a332..748ecc49 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -59,6 +59,43 @@ export { type AgentExecutionsAgentExecutionsPage, type PromptsPromptsPage, } from './agents'; +export { + Automations, + type Workflow, + type WorkflowAction, + type WorkflowExecution, + type WorkflowExecutionAction, + type WorkflowStep, + type WorkflowTrigger, + type WorkflowTriggerContext, + type AutomationCreateResponse, + type AutomationRetrieveResponse, + type AutomationUpdateResponse, + type AutomationDeleteResponse, + type AutomationCancelExecutionResponse, + type AutomationCancelExecutionActionResponse, + type AutomationListExecutionOutputsResponse, + type AutomationRetrieveExecutionResponse, + type AutomationRetrieveExecutionActionResponse, + type AutomationStartExecutionResponse, + type AutomationCreateParams, + type AutomationRetrieveParams, + type AutomationUpdateParams, + type AutomationListParams, + type AutomationDeleteParams, + type AutomationCancelExecutionParams, + type AutomationCancelExecutionActionParams, + type AutomationListExecutionActionsParams, + type AutomationListExecutionOutputsParams, + type AutomationListExecutionsParams, + type AutomationRetrieveExecutionParams, + type AutomationRetrieveExecutionActionParams, + type AutomationStartExecutionParams, + type WorkflowsWorkflowsPage, + type WorkflowExecutionActionsWorkflowExecutionActionsPage, + type AutomationListExecutionOutputsResponsesOutputsPage, + type WorkflowExecutionsWorkflowExecutionsPage, +} from './automations'; export { Editors, type Editor, diff --git a/tests/api-resources/automations.test.ts b/tests/api-resources/automations.test.ts new file mode 100644 index 00000000..0da8a86f --- /dev/null +++ b/tests/api-resources/automations.test.ts @@ -0,0 +1,263 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +import Gitpod from '@gitpod/sdk'; + +const client = new Gitpod({ + bearerToken: 'My Bearer Token', + baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', +}); + +describe('resource automations', () => { + // Mock server tests are disabled + test.skip('create: only required params', async () => { + const responsePromise = client.automations.create({ action: { limits: {} } }); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('create: required and optional params', async () => { + const response = await client.automations.create({ + action: { + limits: { + maxParallel: 0, + maxTotal: 0, + perExecution: { maxTime: '+9125115.360s' }, + }, + steps: [ + { + agent: { prompt: 'prompt' }, + pullRequest: { + branch: 'branch', + description: 'description', + draft: true, + title: 'title', + }, + report: { + outputs: [ + { + acceptanceCriteria: 'acceptanceCriteria', + boolean: {}, + command: 'command', + float: { max: 0, min: 0 }, + integer: { max: 0, min: 0 }, + key: 'key', + prompt: 'prompt', + string: { pattern: 'pattern' }, + title: 'title', + }, + ], + }, + task: { command: 'command' }, + }, + ], + }, + description: 'description', + executor: { id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', principal: 'PRINCIPAL_UNSPECIFIED' }, + name: 'name', + report: { + limits: { + maxParallel: 0, + maxTotal: 0, + perExecution: { maxTime: '+9125115.360s' }, + }, + steps: [ + { + agent: { prompt: 'prompt' }, + pullRequest: { + branch: 'branch', + description: 'description', + draft: true, + title: 'title', + }, + report: { + outputs: [ + { + acceptanceCriteria: 'acceptanceCriteria', + boolean: {}, + command: 'command', + float: { max: 0, min: 0 }, + integer: { max: 0, min: 0 }, + key: 'key', + prompt: 'prompt', + string: { pattern: 'pattern' }, + title: 'title', + }, + ], + }, + task: { command: 'command' }, + }, + ], + }, + triggers: [ + { + context: { + agent: { prompt: 'prompt' }, + fromTrigger: {}, + projects: { projectIds: ['182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e'] }, + repositories: { + environmentClassId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', + repoSelector: { repoSearchString: 'x', scmHost: 'x' }, + repositoryUrls: { repoUrls: ['x'] }, + }, + }, + manual: {}, + pullRequest: { + events: ['PULL_REQUEST_EVENT_UNSPECIFIED'], + webhookId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', + }, + time: { cronExpression: 'cronExpression' }, + }, + ], + }); + }); + + // Mock server tests are disabled + test.skip('retrieve', async () => { + const responsePromise = client.automations.retrieve({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('update', async () => { + const responsePromise = client.automations.update({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('list', async () => { + const responsePromise = client.automations.list({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('delete', async () => { + const responsePromise = client.automations.delete({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('cancelExecution', async () => { + const responsePromise = client.automations.cancelExecution({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('cancelExecutionAction', async () => { + const responsePromise = client.automations.cancelExecutionAction({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('listExecutionActions', async () => { + const responsePromise = client.automations.listExecutionActions({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('listExecutionOutputs', async () => { + const responsePromise = client.automations.listExecutionOutputs({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('listExecutions', async () => { + const responsePromise = client.automations.listExecutions({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('retrieveExecution', async () => { + const responsePromise = client.automations.retrieveExecution({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('retrieveExecutionAction', async () => { + const responsePromise = client.automations.retrieveExecutionAction({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Mock server tests are disabled + test.skip('startExecution', async () => { + const responsePromise = client.automations.startExecution({}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); +}); From fd495e19d06c023f11e684039f7de155f8286ad2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 15:33:21 +0000 Subject: [PATCH 081/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index d281cf1b..b82e7616 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d7e6093517f83ea4606a88899e81565c0f9207614e112b6057679645e0651801.yml -openapi_spec_hash: c4f8786a933b74d658f315ed5587b4bd -config_hash: 8f918c43124691f0ddd95f5fd521960a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f60e1c4938d7e8ac2e873e8638c8da463a9a6e603140fd65759a7d2d47e94ae3.yml +openapi_spec_hash: 2c4f4cc169862fba0759b128ec8108c9 +config_hash: 1e3edbeecb529f712bfaac1b561d91d5 From f1d7bbe163f8cf28f09cb7ec0bab8ce46257fcdc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 15:56:52 +0000 Subject: [PATCH 082/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b82e7616..0f3de9e3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f60e1c4938d7e8ac2e873e8638c8da463a9a6e603140fd65759a7d2d47e94ae3.yml -openapi_spec_hash: 2c4f4cc169862fba0759b128ec8108c9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a5292b4a022c56637a3b3ec0a490e739e7c140ac417b5e2560a9a86f53a314a6.yml +openapi_spec_hash: 98a28f7fc2f23ecfac4673e35ab5714a config_hash: 1e3edbeecb529f712bfaac1b561d91d5 From 4bd9b8792541099bece96206401f8b41e380f8a0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 17:51:44 +0000 Subject: [PATCH 083/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0f3de9e3..55ee9115 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a5292b4a022c56637a3b3ec0a490e739e7c140ac417b5e2560a9a86f53a314a6.yml -openapi_spec_hash: 98a28f7fc2f23ecfac4673e35ab5714a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-088cf9cc6faa9f08d2e43908e6d86bcb58082a5c7696222a78f4e3befe98304d.yml +openapi_spec_hash: 69b777f88daf7c5f9db19f20df19670b config_hash: 1e3edbeecb529f712bfaac1b561d91d5 From f5c7601650c4ba17291a034b3c4ec0b3c52f44d3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2026 15:23:54 +0000 Subject: [PATCH 084/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 55ee9115..137fe16c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-088cf9cc6faa9f08d2e43908e6d86bcb58082a5c7696222a78f4e3befe98304d.yml -openapi_spec_hash: 69b777f88daf7c5f9db19f20df19670b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-81e6dd362ed000dd15cc51a77545a0772d791241380906229b5ba6f2ba265bcb.yml +openapi_spec_hash: 9adc025d621dcefde671682cdd711ec0 config_hash: 1e3edbeecb529f712bfaac1b561d91d5 From 723978c628dab92a05195c67346c796b7232583c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Mar 2026 21:54:02 +0000 Subject: [PATCH 085/151] docs(api): update annotations parameter examples in agents --- .stats.yml | 4 ++-- src/resources/agents.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 137fe16c..8a91a435 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-81e6dd362ed000dd15cc51a77545a0772d791241380906229b5ba6f2ba265bcb.yml -openapi_spec_hash: 9adc025d621dcefde671682cdd711ec0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-eb2a06fb4bcfb9dc85e08216cdaad259453be5d03dd6cdd0562e147d33a8ff31.yml +openapi_spec_hash: 0d278e84539c7e554d6218666aa3bf41 config_hash: 1e3edbeecb529f712bfaac1b561d91d5 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index b3525203..f9aa2745 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1521,9 +1521,9 @@ export interface AgentStartExecutionParams { agentId?: string; /** - * annotations are key-value pairs for tracking external context (e.g., Linear + * annotations are key-value pairs for tracking external context (e.g., integration * session IDs, GitHub issue references). Keys should follow domain/name convention - * (e.g., "linear.app/session-id"). + * (e.g., "agent-client-session/id"). */ annotations?: { [key: string]: string }; From 52e0a3afe617f580ce1dbca45eb761cdd8e9034b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 10:58:22 +0000 Subject: [PATCH 086/151] feat(api): add sessionIds filter to agents/environments list methods --- .stats.yml | 4 ++-- src/resources/agents.ts | 6 ++++++ src/resources/environments/environments.ts | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8a91a435..379f637f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-eb2a06fb4bcfb9dc85e08216cdaad259453be5d03dd6cdd0562e147d33a8ff31.yml -openapi_spec_hash: 0d278e84539c7e554d6218666aa3bf41 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-dc11159f8832715e5e2f90bd30be75023f98924c9b347ee58140426d98a66451.yml +openapi_spec_hash: 20be193759f39a790f961ff6be44cd22 config_hash: 1e3edbeecb529f712bfaac1b561d91d5 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index f9aa2745..46ca9ba6 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1424,6 +1424,12 @@ export namespace AgentListExecutionsParams { 'AGENT_EXECUTION_ROLE_UNSPECIFIED' | 'AGENT_EXECUTION_ROLE_DEFAULT' | 'AGENT_EXECUTION_ROLE_WORKFLOW' >; + /** + * session_ids filters the response to only executions belonging to the specified + * sessions + */ + sessionIds?: Array; + statusPhases?: Array< 'PHASE_UNSPECIFIED' | 'PHASE_PENDING' | 'PHASE_RUNNING' | 'PHASE_WAITING_FOR_INPUT' | 'PHASE_STOPPED' >; diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index a1ae4f75..d7867cb9 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -1853,6 +1853,12 @@ export namespace EnvironmentListParams { */ runnerKinds?: Array; + /** + * session_ids filters the response to only environments belonging to the specified + * sessions + */ + sessionIds?: Array; + /** * actual_phases is a list of phases the environment must be in for it to be * returned in the API call From 54c0225d6cfbeb43cd5c7163667c29a5e28c08b6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 12:43:35 +0000 Subject: [PATCH 087/151] feat(api): add updateWindow field to runners configuration --- .stats.yml | 6 +++--- api.md | 1 + src/client.ts | 2 ++ src/resources/index.ts | 1 + src/resources/runners/index.ts | 1 + src/resources/runners/runners.ts | 33 ++++++++++++++++++++++++++++++++ 6 files changed, 41 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 379f637f..7e741617 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-dc11159f8832715e5e2f90bd30be75023f98924c9b347ee58140426d98a66451.yml -openapi_spec_hash: 20be193759f39a790f961ff6be44cd22 -config_hash: 1e3edbeecb529f712bfaac1b561d91d5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-9af1d2d8008f6a755a5e8ae29151cd102c698c9fce494b74dd9163a6e48edf4e.yml +openapi_spec_hash: 111508e126ff88904bcb739bc6ceaabd +config_hash: 91b2982c67083dfc3f65e5e27d94e0aa diff --git a/api.md b/api.md index e804c2aa..6828cea7 100644 --- a/api.md +++ b/api.md @@ -643,6 +643,7 @@ Types: - RunnerStatus - RunnerVariant - SearchMode +- UpdateWindow - RunnerCreateResponse - RunnerRetrieveResponse - RunnerUpdateResponse diff --git a/src/client.ts b/src/client.ts index f596d894..ad0dd92c 100644 --- a/src/client.ts +++ b/src/client.ts @@ -434,6 +434,7 @@ import { Runners, RunnersRunnersPage, SearchMode, + UpdateWindow, } from './resources/runners/runners'; import { User, @@ -1681,6 +1682,7 @@ export declare namespace Gitpod { type RunnerStatus as RunnerStatus, type RunnerVariant as RunnerVariant, type SearchMode as SearchMode, + type UpdateWindow as UpdateWindow, type RunnerCreateResponse as RunnerCreateResponse, type RunnerRetrieveResponse as RunnerRetrieveResponse, type RunnerUpdateResponse as RunnerUpdateResponse, diff --git a/src/resources/index.ts b/src/resources/index.ts index 748ecc49..17be5025 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -292,6 +292,7 @@ export { type RunnerStatus, type RunnerVariant, type SearchMode, + type UpdateWindow, type RunnerCreateResponse, type RunnerRetrieveResponse, type RunnerUpdateResponse, diff --git a/src/resources/runners/index.ts b/src/resources/runners/index.ts index fe5499a3..fb790837 100644 --- a/src/resources/runners/index.ts +++ b/src/resources/runners/index.ts @@ -37,6 +37,7 @@ export { type RunnerStatus, type RunnerVariant, type SearchMode, + type UpdateWindow, type RunnerCreateResponse, type RunnerRetrieveResponse, type RunnerUpdateResponse, diff --git a/src/resources/runners/runners.ts b/src/resources/runners/runners.ts index f0f1eee2..ecf64cc7 100644 --- a/src/resources/runners/runners.ts +++ b/src/resources/runners/runners.ts @@ -660,6 +660,12 @@ export interface RunnerConfiguration { * The release channel the runner is on */ releaseChannel?: RunnerReleaseChannel; + + /** + * update_window defines the daily time window (UTC) during which auto-updates are + * allowed. If not set, updates are allowed at any time. + */ + updateWindow?: UpdateWindow; } /** @@ -791,6 +797,24 @@ export type RunnerVariant = export type SearchMode = 'SEARCH_MODE_UNSPECIFIED' | 'SEARCH_MODE_KEYWORD' | 'SEARCH_MODE_NATIVE'; +/** + * UpdateWindow defines a daily time window (UTC) during which auto-updates are + * allowed. The window must be at least 2 hours long. Overnight windows are + * supported (e.g., start_hour=22, end_hour=4). + */ +export interface UpdateWindow { + /** + * end_hour is the end of the update window as a UTC hour (0-23). If not set, + * defaults to start_hour + 2. + */ + endHour?: number | null; + + /** + * start_hour is the beginning of the update window as a UTC hour (0-23). +required + */ + startHour?: number | null; +} + export interface RunnerCreateResponse { runner: Runner; @@ -1240,6 +1264,14 @@ export namespace RunnerUpdateParams { * The release channel the runner is on */ releaseChannel?: RunnersAPI.RunnerReleaseChannel | null; + + /** + * update_window defines the daily time window (UTC) during which auto-updates are + * allowed. start_hour is required. If end_hour is omitted, it defaults to + * start_hour + 2. Send an empty UpdateWindow (no start_hour or end_hour) to clear + * a custom window and allow updates at any time. + */ + updateWindow?: RunnersAPI.UpdateWindow | null; } export namespace Configuration { @@ -1457,6 +1489,7 @@ export declare namespace Runners { type RunnerStatus as RunnerStatus, type RunnerVariant as RunnerVariant, type SearchMode as SearchMode, + type UpdateWindow as UpdateWindow, type RunnerCreateResponse as RunnerCreateResponse, type RunnerRetrieveResponse as RunnerRetrieveResponse, type RunnerUpdateResponse as RunnerUpdateResponse, From 693174bb0cc890681450918bde61b0b29656f122 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 13:17:58 +0000 Subject: [PATCH 088/151] feat(api): add sessionId parameter to environments create from project --- .stats.yml | 4 ++-- src/resources/environments/environments.ts | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7e741617..6bc8138e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-9af1d2d8008f6a755a5e8ae29151cd102c698c9fce494b74dd9163a6e48edf4e.yml -openapi_spec_hash: 111508e126ff88904bcb739bc6ceaabd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-055db8fdb0c818654b041a70752ac1e2b8d3625244c81463c722cfd860f684e2.yml +openapi_spec_hash: 7e9ed18957abb39e539f50a9ca3adc73 config_hash: 91b2982c67083dfc3f65e5e27d94e0aa diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index d7867cb9..c4b3a7de 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -1918,6 +1918,12 @@ export interface EnvironmentCreateFromProjectParams { projectId?: string; + /** + * session_id is the ID of the session this environment belongs to. If empty, a new + * session is created implicitly. + */ + sessionId?: string; + /** * Spec is the configuration of the environment that's required for the runner to * start the environment Configuration already defined in the Project will override From da506d7c77297fc4023688e25f2a36edff0b02a2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 16:11:41 +0000 Subject: [PATCH 089/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6bc8138e..71166a9f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-055db8fdb0c818654b041a70752ac1e2b8d3625244c81463c722cfd860f684e2.yml -openapi_spec_hash: 7e9ed18957abb39e539f50a9ca3adc73 -config_hash: 91b2982c67083dfc3f65e5e27d94e0aa +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-228aa0f8b440a040117a3e5e2282f857a2cbaf4957bae2c3f04accc653ae42e4.yml +openapi_spec_hash: 2a9a4195f6d6b9397c5d7ff46c18f9bd +config_hash: 1bfdd908308b0bc392edbef83566284c From 0f5ef294f4b52bcb02c908259ef5d4e243a9f151 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 19:46:54 +0000 Subject: [PATCH 090/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 71166a9f..1494d4ad 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-228aa0f8b440a040117a3e5e2282f857a2cbaf4957bae2c3f04accc653ae42e4.yml -openapi_spec_hash: 2a9a4195f6d6b9397c5d7ff46c18f9bd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-cd774a77f01f7c7c0872caf935eab4de8b06811e0a6c17af6da4e642d24aa1a5.yml +openapi_spec_hash: a1c5294457addfc76d9ffc1e65a5125e config_hash: 1bfdd908308b0bc392edbef83566284c From 834cba602e5f46c845b48991abc643c43628aa94 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 20:50:10 +0000 Subject: [PATCH 091/151] chore(internal): tweak CI branches --- .github/workflows/ci.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ef64e78..4c6845ae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,14 @@ name: CI on: push: - branches-ignore: - - 'generated' - - 'codegen/**' - - 'integrated/**' - - 'stl-preview-head/**' - - 'stl-preview-base/**' + branches: + - '**' + - '!integrated/**' + - '!stl-preview-head/**' + - '!stl-preview-base/**' + - '!generated' + - '!codegen/**' + - 'codegen/stl/**' pull_request: branches-ignore: - 'stl-preview-head/**' From 9dbc9a5410b59c6e1161e886a72e5c50ae221bf1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 21:04:30 +0000 Subject: [PATCH 092/151] feat(api): add read_only field to PersonalAccessToken proto messages --- .stats.yml | 4 ++-- src/resources/users/pats.ts | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1494d4ad..1d71a2c0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-cd774a77f01f7c7c0872caf935eab4de8b06811e0a6c17af6da4e642d24aa1a5.yml -openapi_spec_hash: a1c5294457addfc76d9ffc1e65a5125e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-fae3aa4414fe83c95acadea5fc12f2ca16c81ac39b406e086d674fa4a892ba34.yml +openapi_spec_hash: c69a15cafc180101cb77cc70e7cee30f config_hash: 1bfdd908308b0bc392edbef83566284c diff --git a/src/resources/users/pats.ts b/src/resources/users/pats.ts index 165fe066..38c83f31 100644 --- a/src/resources/users/pats.ts +++ b/src/resources/users/pats.ts @@ -408,6 +408,12 @@ export interface PersonalAccessToken { */ lastUsed?: string; + /** + * When true, the token can only be used for read operations. Mutations will be + * denied at the data layer. + */ + readOnly?: boolean; + userId?: string; } From 811b8f37b3caed8228b561180d61981c9278f299 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Mar 2026 12:04:41 +0000 Subject: [PATCH 093/151] feat(api): add RESOURCE_ROLE_ORG_AUDIT_LOG_READER to ResourceRole enum --- .stats.yml | 4 ++-- src/resources/shared.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1d71a2c0..20dce76d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-fae3aa4414fe83c95acadea5fc12f2ca16c81ac39b406e086d674fa4a892ba34.yml -openapi_spec_hash: c69a15cafc180101cb77cc70e7cee30f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-29a2b14753a2248cf654669748e268c94b1d979777990129422653fbccf4a393.yml +openapi_spec_hash: e7b5f3eb2052606d8e25fa943cf48fd0 config_hash: 1bfdd908308b0bc392edbef83566284c diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 76108bdf..bcfa50e6 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -209,6 +209,7 @@ export type ResourceRole = | 'RESOURCE_ROLE_ORG_PROJECTS_ADMIN' | 'RESOURCE_ROLE_ORG_AUTOMATIONS_ADMIN' | 'RESOURCE_ROLE_ORG_GROUPS_ADMIN' + | 'RESOURCE_ROLE_ORG_AUDIT_LOG_READER' | 'RESOURCE_ROLE_GROUP_ADMIN' | 'RESOURCE_ROLE_GROUP_VIEWER' | 'RESOURCE_ROLE_USER_IDENTITY' From b3b884b86f923fad96293c0abb748916a98d0b84 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Mar 2026 15:28:09 +0000 Subject: [PATCH 094/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 20dce76d..28189c22 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-29a2b14753a2248cf654669748e268c94b1d979777990129422653fbccf4a393.yml -openapi_spec_hash: e7b5f3eb2052606d8e25fa943cf48fd0 -config_hash: 1bfdd908308b0bc392edbef83566284c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f1324c9042b32cf2d853a8b80b018625c1a047e750f8b846c353cc800b8ffa4f.yml +openapi_spec_hash: 6b6acf2797dcc5d245d577fa7d1a9afe +config_hash: bb91d6262c6e660a87ffa99531e8ea81 From 00d203b0d1da84e9f508e4686e5e5d1e6b1d4a4a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Mar 2026 19:49:31 +0000 Subject: [PATCH 095/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 28189c22..7620ac4f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f1324c9042b32cf2d853a8b80b018625c1a047e750f8b846c353cc800b8ffa4f.yml -openapi_spec_hash: 6b6acf2797dcc5d245d577fa7d1a9afe -config_hash: bb91d6262c6e660a87ffa99531e8ea81 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-fd1185f71f8b7c1f4b6d13ff6d89cf6d1b3fe3333d2b6da41b94b2ffcbfbd9c5.yml +openapi_spec_hash: 4868ffc06e2a812b4a93bfbac1584102 +config_hash: 555f115fcb663264461c0f66de8c25b7 From 86823bb16fa41eb4539895325a6643754738457b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Mar 2026 21:08:54 +0000 Subject: [PATCH 096/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7620ac4f..aac10082 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-fd1185f71f8b7c1f4b6d13ff6d89cf6d1b3fe3333d2b6da41b94b2ffcbfbd9c5.yml -openapi_spec_hash: 4868ffc06e2a812b4a93bfbac1584102 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f702ddc06be77c4ebea791119d390c67022381f7e44cff14f1debb61f38c487a.yml +openapi_spec_hash: 746f5337fcd1223da227610fa4010cf2 config_hash: 555f115fcb663264461c0f66de8c25b7 From 3a31327e44c0a5a67900a90ccbab4a16f6b807ed Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 12:43:05 +0000 Subject: [PATCH 097/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index aac10082..5aa05d06 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f702ddc06be77c4ebea791119d390c67022381f7e44cff14f1debb61f38c487a.yml -openapi_spec_hash: 746f5337fcd1223da227610fa4010cf2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f75b21b427e51f993458aa2ccc5e9af7963e448ccc019e8020c5c06d4044fc3a.yml +openapi_spec_hash: 6bff77fadf4978bcd16979e690783a8f config_hash: 555f115fcb663264461c0f66de8c25b7 From e2f1f5d8f0cc088a0f5b2cf503ad003b4833b4c1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 17:38:59 +0000 Subject: [PATCH 098/151] feat(api): add loop conditions to agents, update wake event types --- .stats.yml | 6 +++--- src/resources/agents.ts | 38 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5aa05d06..999d2910 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f75b21b427e51f993458aa2ccc5e9af7963e448ccc019e8020c5c06d4044fc3a.yml -openapi_spec_hash: 6bff77fadf4978bcd16979e690783a8f -config_hash: 555f115fcb663264461c0f66de8c25b7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a7deaeeaec204a29afa78cfb8cc180a8a661120f955a6681043bf8417a18ac06.yml +openapi_spec_hash: c30bb27830ead5c7602ab367a6e51728 +config_hash: b0a3fd86ab6f098dc64e390b2a0dfc77 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index 46ca9ba6..beb77c47 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -730,6 +730,8 @@ export namespace AgentExecution { limits?: Spec.Limits; + loopConditions?: Array; + session?: string; /** @@ -748,6 +750,14 @@ export namespace AgentExecution { maxOutputTokens?: string; } + + export interface LoopCondition { + id?: string; + + description?: string; + + expression?: string; + } } /** @@ -1315,15 +1325,39 @@ export namespace UserInputBlock { * fires. Delivered via SendToAgentExecution as a new oneof variant. */ export interface WakeEvent { - timer: WakeEvent.Timer; - /** * The interest ID that fired (from WaitingInfo.Interest.id). */ interestId?: string; + + loopRetrigger?: WakeEvent.LoopRetrigger; + + timer?: WakeEvent.Timer; } export namespace WakeEvent { + export interface LoopRetrigger { + outputs?: { [key: string]: string }; + + unmetConditions?: Array; + } + + export namespace LoopRetrigger { + export interface UnmetCondition { + id?: string; + + description?: string; + + expression?: string; + + iteration?: number; + + maxIterations?: number; + + reason?: string; + } + } + export interface Timer { /** * The actual time the timer was evaluated as expired. From 024cbac51a1158bf68c48c9cf672c0c3b148cfc4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 19:44:45 +0000 Subject: [PATCH 099/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 999d2910..33a2951b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a7deaeeaec204a29afa78cfb8cc180a8a661120f955a6681043bf8417a18ac06.yml -openapi_spec_hash: c30bb27830ead5c7602ab367a6e51728 -config_hash: b0a3fd86ab6f098dc64e390b2a0dfc77 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f76c09ab0f9cb8aa252f3e73abf8ebc017706fe0c6f166a6e531e9e5164001e5.yml +openapi_spec_hash: 977531d9223653b1868b73970c485c55 +config_hash: 9006956c2bbfddd199282d395269e2d5 From 29cff620b6789d91bb4053e101fb4a18a4b0fc08 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 09:42:28 +0000 Subject: [PATCH 100/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 33a2951b..2ffaaeb3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f76c09ab0f9cb8aa252f3e73abf8ebc017706fe0c6f166a6e531e9e5164001e5.yml -openapi_spec_hash: 977531d9223653b1868b73970c485c55 -config_hash: 9006956c2bbfddd199282d395269e2d5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-c48144943803f4a8f6e721e5f1611985485621c88b5c6cd6e4e6df3ad36420f4.yml +openapi_spec_hash: a48e0a822ede4ce2d48c14ba00e149b4 +config_hash: 480df9bb1d5150d2f37c201d28220533 From 9bfe01e657fc1d36804c7e26524951b0f4c184ff Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 12:36:55 +0000 Subject: [PATCH 101/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2ffaaeb3..da3aeb43 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-c48144943803f4a8f6e721e5f1611985485621c88b5c6cd6e4e6df3ad36420f4.yml -openapi_spec_hash: a48e0a822ede4ce2d48c14ba00e149b4 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-99b9496f01443f12c3438a2826da4d8b0e28418c738434865e342f3f01f79aa8.yml +openapi_spec_hash: e3e249ef81eb05be33542aa2e7145c6f config_hash: 480df9bb1d5150d2f37c201d28220533 From ead3de02355af9f8efb03b9a70ed3334d0bd8c30 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 14:10:31 +0000 Subject: [PATCH 102/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index da3aeb43..8202f452 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-99b9496f01443f12c3438a2826da4d8b0e28418c738434865e342f3f01f79aa8.yml -openapi_spec_hash: e3e249ef81eb05be33542aa2e7145c6f -config_hash: 480df9bb1d5150d2f37c201d28220533 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f12ace58a293e967ac373e545eb25b1f4bfb72c66a6ed3477d36543e45635b32.yml +openapi_spec_hash: 98c8febb9b8b0788ae9b674ef80e7005 +config_hash: 7dcf23a612f573a3267446501c35a0e0 From e728590a07f53977b6e22ae1e49db5dedfaf37e6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 14:58:46 +0000 Subject: [PATCH 103/151] feat(api): add AGENT_EXECUTION_VIEWER role to ResourceRole type --- .stats.yml | 4 ++-- src/resources/shared.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8202f452..8fc1df39 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-f12ace58a293e967ac373e545eb25b1f4bfb72c66a6ed3477d36543e45635b32.yml -openapi_spec_hash: 98c8febb9b8b0788ae9b674ef80e7005 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-84a17c2c7c56901f5fd5ebb6e444c831671d403eba90509a6ecd85780ba04ad2.yml +openapi_spec_hash: 5ae1e9b53725fcf9a3224289f2f413e9 config_hash: 7dcf23a612f573a3267446501c35a0e0 diff --git a/src/resources/shared.ts b/src/resources/shared.ts index bcfa50e6..a5704d35 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -245,6 +245,7 @@ export type ResourceRole = | 'RESOURCE_ROLE_AGENT_EXECUTION_ADMIN' | 'RESOURCE_ROLE_AGENT_EXECUTION_RUNNER' | 'RESOURCE_ROLE_AGENT_EXECUTION_OUTPUTS_REPORTER' + | 'RESOURCE_ROLE_AGENT_EXECUTION_VIEWER' | 'RESOURCE_ROLE_AGENT_ADMIN' | 'RESOURCE_ROLE_AGENT_VIEWER' | 'RESOURCE_ROLE_AGENT_EXECUTOR' From bf403a175281b9b5e61d644015548d4e1f5f2607 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:31:52 +0000 Subject: [PATCH 104/151] feat(api): add conversation_sharing_policy to agent policy --- .stats.yml | 6 +++--- api.md | 1 + src/resources/organizations/index.ts | 1 + src/resources/organizations/organizations.ts | 2 ++ src/resources/organizations/policies.ts | 20 +++++++++++++++++++ src/resources/shared.ts | 1 - .../organizations/policies.test.ts | 1 + 7 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8fc1df39..9236557c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-84a17c2c7c56901f5fd5ebb6e444c831671d403eba90509a6ecd85780ba04ad2.yml -openapi_spec_hash: 5ae1e9b53725fcf9a3224289f2f413e9 -config_hash: 7dcf23a612f573a3267446501c35a0e0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-bda11704254692a0568ae0b36b970e79946aa725c9a64c3511f979dc5c20aa13.yml +openapi_spec_hash: abc326f8f7553f8e86eedc8bca0b0378 +config_hash: a456e43b92b021483b4b81971da31909 diff --git a/api.md b/api.md index 6828cea7..3f3c6724 100644 --- a/api.md +++ b/api.md @@ -473,6 +473,7 @@ Methods: Types: - AgentPolicy +- ConversationSharingPolicy - CrowdStrikeConfig - KernelControlsAction - OrganizationPolicies diff --git a/src/resources/organizations/index.ts b/src/resources/organizations/index.ts index 82cec164..f554edca 100644 --- a/src/resources/organizations/index.ts +++ b/src/resources/organizations/index.ts @@ -71,6 +71,7 @@ export { export { Policies, type AgentPolicy, + type ConversationSharingPolicy, type CrowdStrikeConfig, type KernelControlsAction, type OrganizationPolicies, diff --git a/src/resources/organizations/organizations.ts b/src/resources/organizations/organizations.ts index 561baa7e..7397d56f 100644 --- a/src/resources/organizations/organizations.ts +++ b/src/resources/organizations/organizations.ts @@ -55,6 +55,7 @@ import { import * as PoliciesAPI from './policies'; import { AgentPolicy, + ConversationSharingPolicy, CrowdStrikeConfig, KernelControlsAction, OrganizationPolicies, @@ -1048,6 +1049,7 @@ export declare namespace Organizations { export { Policies as Policies, type AgentPolicy as AgentPolicy, + type ConversationSharingPolicy as ConversationSharingPolicy, type CrowdStrikeConfig as CrowdStrikeConfig, type KernelControlsAction as KernelControlsAction, type OrganizationPolicies as OrganizationPolicies, diff --git a/src/resources/organizations/policies.ts b/src/resources/organizations/policies.ts index 58613282..7da786f6 100644 --- a/src/resources/organizations/policies.ts +++ b/src/resources/organizations/policies.ts @@ -1,6 +1,7 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../core/resource'; +import * as PoliciesAPI from './policies'; import { APIPromise } from '../../core/api-promise'; import { RequestOptions } from '../../internal/request-options'; @@ -112,6 +113,11 @@ export interface AgentPolicy { */ scmToolsDisabled: boolean; + /** + * conversation_sharing_policy controls whether agent conversations can be shared + */ + conversationSharingPolicy?: ConversationSharingPolicy; + /** * scm_tools_allowed_group_id restricts SCM tools access to members of this group. * Empty means no restriction (all users can use SCM tools if not disabled). @@ -119,6 +125,14 @@ export interface AgentPolicy { scmToolsAllowedGroupId?: string; } +/** + * ConversationSharingPolicy controls how agent conversations can be shared. + */ +export type ConversationSharingPolicy = + | 'CONVERSATION_SHARING_POLICY_UNSPECIFIED' + | 'CONVERSATION_SHARING_POLICY_DISABLED' + | 'CONVERSATION_SHARING_POLICY_ORGANIZATION'; + /** * CrowdStrikeConfig configures CrowdStrike Falcon sensor deployment */ @@ -476,6 +490,11 @@ export namespace PolicyUpdateParams { */ commandDenyList?: Array; + /** + * conversation_sharing_policy controls whether agent conversations can be shared + */ + conversationSharingPolicy?: PoliciesAPI.ConversationSharingPolicy | null; + /** * mcp_disabled controls whether MCP (Model Context Protocol) is disabled for * agents @@ -555,6 +574,7 @@ export namespace PolicyUpdateParams { export declare namespace Policies { export { type AgentPolicy as AgentPolicy, + type ConversationSharingPolicy as ConversationSharingPolicy, type CrowdStrikeConfig as CrowdStrikeConfig, type KernelControlsAction as KernelControlsAction, type OrganizationPolicies as OrganizationPolicies, diff --git a/src/resources/shared.ts b/src/resources/shared.ts index a5704d35..bcfa50e6 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -245,7 +245,6 @@ export type ResourceRole = | 'RESOURCE_ROLE_AGENT_EXECUTION_ADMIN' | 'RESOURCE_ROLE_AGENT_EXECUTION_RUNNER' | 'RESOURCE_ROLE_AGENT_EXECUTION_OUTPUTS_REPORTER' - | 'RESOURCE_ROLE_AGENT_EXECUTION_VIEWER' | 'RESOURCE_ROLE_AGENT_ADMIN' | 'RESOURCE_ROLE_AGENT_VIEWER' | 'RESOURCE_ROLE_AGENT_EXECUTOR' diff --git a/tests/api-resources/organizations/policies.test.ts b/tests/api-resources/organizations/policies.test.ts index 9de80ee5..21af5203 100644 --- a/tests/api-resources/organizations/policies.test.ts +++ b/tests/api-resources/organizations/policies.test.ts @@ -49,6 +49,7 @@ describe('resource policies', () => { organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', agentPolicy: { commandDenyList: ['string'], + conversationSharingPolicy: 'CONVERSATION_SHARING_POLICY_UNSPECIFIED', mcpDisabled: true, scmToolsAllowedGroupId: 'scmToolsAllowedGroupId', scmToolsDisabled: true, From 2b0fe0b585142ca23d6786d32312650514e4ddd0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:19:04 +0000 Subject: [PATCH 105/151] chore(internal): regenerate SDK with no functional changes --- .stats.yml | 6 +++--- src/resources/shared.ts | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9236557c..4d457637 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-bda11704254692a0568ae0b36b970e79946aa725c9a64c3511f979dc5c20aa13.yml -openapi_spec_hash: abc326f8f7553f8e86eedc8bca0b0378 -config_hash: a456e43b92b021483b4b81971da31909 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-ba1ec7984802784b2b08954c4ed82dbf0b232a3f8a356ae4a1bd09a9ce5da698.yml +openapi_spec_hash: 5206c1aaee85555cf9c08efc8245efff +config_hash: 5dfe2ceeca8a86a1817ddc788283814a diff --git a/src/resources/shared.ts b/src/resources/shared.ts index bcfa50e6..a5704d35 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -245,6 +245,7 @@ export type ResourceRole = | 'RESOURCE_ROLE_AGENT_EXECUTION_ADMIN' | 'RESOURCE_ROLE_AGENT_EXECUTION_RUNNER' | 'RESOURCE_ROLE_AGENT_EXECUTION_OUTPUTS_REPORTER' + | 'RESOURCE_ROLE_AGENT_EXECUTION_VIEWER' | 'RESOURCE_ROLE_AGENT_ADMIN' | 'RESOURCE_ROLE_AGENT_VIEWER' | 'RESOURCE_ROLE_AGENT_EXECUTOR' From caf46779d0ccc6c471cffb5c924fb02d0feea3b1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:48:30 +0000 Subject: [PATCH 106/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4d457637..9009f2c5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-ba1ec7984802784b2b08954c4ed82dbf0b232a3f8a356ae4a1bd09a9ce5da698.yml -openapi_spec_hash: 5206c1aaee85555cf9c08efc8245efff -config_hash: 5dfe2ceeca8a86a1817ddc788283814a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-bd9914e7b59fc62bee0c8b6ed488b702b04a669d1180b5549b0b7b44af4d8801.yml +openapi_spec_hash: 7c920142d8ae78ab387efdc9cdc3a4d8 +config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 From 583982a5ed14658974f010c607cc1d254eabbe1c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 23:18:35 +0000 Subject: [PATCH 107/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9009f2c5..ca43795b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-bd9914e7b59fc62bee0c8b6ed488b702b04a669d1180b5549b0b7b44af4d8801.yml -openapi_spec_hash: 7c920142d8ae78ab387efdc9cdc3a4d8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-221a9ea52426d803e6ec7db57b813429c411c251a402965787aa3467ec677b2b.yml +openapi_spec_hash: 11202f2e26fbe67ea48107ae70bc9b2e config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 From 217a0b3270e3962bf8097c1c0e9748f0d9a4c271 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 08:28:35 +0000 Subject: [PATCH 108/151] feat(api): add hasFailedExecutionSince parameter to automations list method --- .stats.yml | 4 ++-- src/resources/automations.ts | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ca43795b..0a5b6482 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-221a9ea52426d803e6ec7db57b813429c411c251a402965787aa3467ec677b2b.yml -openapi_spec_hash: 11202f2e26fbe67ea48107ae70bc9b2e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-72bdb1df5196e62a848060603a6967149bc29c56c240fce63db51411d487362d.yml +openapi_spec_hash: c4ab595bbfec841426210a41288da729 config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 diff --git a/src/resources/automations.ts b/src/resources/automations.ts index d3dcaaae..47bafb0f 100644 --- a/src/resources/automations.ts +++ b/src/resources/automations.ts @@ -2619,6 +2619,15 @@ export namespace AutomationListParams { */ creatorIds?: Array; + /** + * has_failed_execution_since filters workflows that have at least one failed + * execution with create_time >= the specified timestamp. A failed execution is one + * that is COMPLETED with failed_action_count > 0, or STOPPED with + * failed_action_count > 0 or a non-empty failure_message. This filter is mutually + * exclusive with status_phases. + */ + hasFailedExecutionSince?: string; + /** * search performs case-insensitive search across workflow name, description, and * ID From 02863e6b7f366348e46cb44e53c15404aea596ce Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 09:51:44 +0000 Subject: [PATCH 109/151] feat(api): add credentialProxy field to environments Secret --- .stats.yml | 4 +-- src/resources/environments/environments.ts | 39 ++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0a5b6482..93556f60 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-72bdb1df5196e62a848060603a6967149bc29c56c240fce63db51411d487362d.yml -openapi_spec_hash: c4ab595bbfec841426210a41288da729 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-00b0806e92d9492889e6f4456f9d1edfa57673ea41d8434d076dd705a98ae1a6.yml +openapi_spec_hash: 0a52f29825648feddf5da57621a312c8 config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 diff --git a/src/resources/environments/environments.ts b/src/resources/environments/environments.ts index c4b3a7de..eb9d7214 100644 --- a/src/resources/environments/environments.ts +++ b/src/resources/environments/environments.ts @@ -945,6 +945,16 @@ export namespace EnvironmentSpec { */ containerRegistryBasicAuthHost?: string; + /** + * credential_proxy configures transparent credential injection via the credential + * proxy. When set, the credential proxy intercepts HTTPS traffic to the target + * hosts and replaces the dummy secret value with the real value in the specified + * HTTP header. The real secret value is never exposed in the environment. This + * field is orthogonal to mount — a secret can be both mounted (e.g. as a git + * credential) and proxied at the same time. + */ + credentialProxy?: Secret.CredentialProxy; + environmentVariable?: string; /** @@ -988,6 +998,35 @@ export namespace EnvironmentSpec { sourceRef?: string; } + export namespace Secret { + /** + * credential_proxy configures transparent credential injection via the credential + * proxy. When set, the credential proxy intercepts HTTPS traffic to the target + * hosts and replaces the dummy secret value with the real value in the specified + * HTTP header. The real secret value is never exposed in the environment. This + * field is orthogonal to mount — a secret can be both mounted (e.g. as a git + * credential) and proxied at the same time. + */ + export interface CredentialProxy { + /** + * format describes how the secret value is encoded. The proxy uses this to decode + * the value before injecting it into the header. + */ + format?: 'FORMAT_UNSPECIFIED' | 'FORMAT_PLAIN' | 'FORMAT_BASE64'; + + /** + * header is the HTTP header name to inject (e.g. "Authorization"). + */ + header?: string; + + /** + * target_hosts lists the hostnames to intercept (for example "github.com" or + * "\*.github.com"). Wildcards are subdomain-only and do not match the apex domain. + */ + targetHosts?: Array; + } + } + export interface SSHPublicKey { /** * id is the unique identifier of the public key From 51da5bfc1509472e2a96ce199097bca3377e7b6a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 12:41:28 +0000 Subject: [PATCH 110/151] chore(internal): update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2412bb77..c85fe684 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .prism.log +.stdy.log node_modules yarn-error.log codegen.log From 7e78aca647ff60acafe52ab90c0846207190df66 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 15:51:45 +0000 Subject: [PATCH 111/151] feat(api): add search parameter to agents list prompts method --- .stats.yml | 4 ++-- src/resources/agents.ts | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 93556f60..020cf5de 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-00b0806e92d9492889e6f4456f9d1edfa57673ea41d8434d076dd705a98ae1a6.yml -openapi_spec_hash: 0a52f29825648feddf5da57621a312c8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-925801ec83630f69a6811ca5bed45643ee8d58afe0e769830dd2b3201715bc80.yml +openapi_spec_hash: 234fb343a86237c85ffedad38d79bd2e config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index beb77c47..6344355b 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1514,6 +1514,12 @@ export namespace AgentListPromptsParams { isSkill?: boolean; isTemplate?: boolean; + + /** + * search performs case-insensitive search across prompt name, description, and + * command. + */ + search?: string; } export interface Pagination { From 197b1a57dcf34317f0927deabfbe9252a4e2037e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 11:41:41 +0000 Subject: [PATCH 112/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 020cf5de..66afd2fb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-925801ec83630f69a6811ca5bed45643ee8d58afe0e769830dd2b3201715bc80.yml -openapi_spec_hash: 234fb343a86237c85ffedad38d79bd2e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-0895d9507f65bc472526f952e89667eea3b68ba777c5626f48f0c0a77f28d7bf.yml +openapi_spec_hash: 6e82f97487758b596347a0cea93ecd1f config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 From 50e0e9c4da97de8fe91ea2b193930556f33dfe74 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 11:42:55 +0000 Subject: [PATCH 113/151] feat(api): add min_size and max_size to prebuilds warm pools --- .stats.yml | 4 +- src/resources/agents.ts | 6 --- src/resources/prebuilds.ts | 61 +++++++++++++++++++++++++-- tests/api-resources/prebuilds.test.ts | 4 ++ 4 files changed, 64 insertions(+), 11 deletions(-) diff --git a/.stats.yml b/.stats.yml index 66afd2fb..0f0a998b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-0895d9507f65bc472526f952e89667eea3b68ba777c5626f48f0c0a77f28d7bf.yml -openapi_spec_hash: 6e82f97487758b596347a0cea93ecd1f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-38af3b7959b169657232801bef106659fa1c37da5eab9f928abd0d75d6c8978a.yml +openapi_spec_hash: 995d980761d1ea9951b9ad5e1d2b58dd config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index 6344355b..beb77c47 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1514,12 +1514,6 @@ export namespace AgentListPromptsParams { isSkill?: boolean; isTemplate?: boolean; - - /** - * search performs case-insensitive search across prompt name, description, and - * command. - */ - search?: string; } export interface Pagination { diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index d9605cd6..56bf98d3 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -661,10 +661,24 @@ export interface WarmPoolSpec { desiredPhase?: WarmPoolPhase; /** - * desired_size is the number of warm instances to maintain. + * @deprecated desired_size is the number of warm instances to maintain. + * Deprecated: Use min_size and max_size instead for dynamic scaling. Existing + * pools will be migrated to min_size=max_size=desired_size. */ desiredSize?: number; + /** + * max_size is the maximum number of warm instances to maintain. The pool will + * never scale above this value. Must be >= min_size and <= 20. + */ + maxSize?: number | null; + + /** + * min_size is the minimum number of warm instances to maintain. The pool will + * never scale below this value. Must be >= 1 and <= max_size. + */ + minSize?: number | null; + /** * snapshot_id is the prebuild snapshot to warm up in the pool. Updated by the * reconciler when a new prebuild completes for this project and environment class. @@ -694,11 +708,26 @@ export interface WarmPoolStatus { */ failureMessage?: string; + /** + * running_instances is the number of running warm instances in the pool, ready to + * be claimed for near-instant environment startup. + */ + runningInstances?: number; + /** * status_version is incremented each time the status is updated. Used for * optimistic concurrency control. */ statusVersion?: string; + + /** + * stopped_instances is the number of pre-provisioned but stopped instances in the + * pool. When a running instance is claimed, stopped instances are used to backfill + * the running pool faster than provisioning from scratch. Stopped instances only + * incur storage costs, allowing a larger total pool at lower cost than keeping all + * instances running. + */ + stoppedInstances?: number; } export interface PrebuildCreateResponse { @@ -886,9 +915,22 @@ export interface PrebuildCreateWarmPoolParams { projectId: string; /** - * desired_size is the number of warm instances to maintain. + * @deprecated desired_size is the number of warm instances to maintain. + * Deprecated: Use min_size and max_size instead for dynamic scaling. */ desiredSize?: number; + + /** + * max_size is the maximum number of warm instances to maintain. The pool will + * never scale above this value. Must be >= min_size and <= 20. + */ + maxSize?: number | null; + + /** + * min_size is the minimum number of warm instances to maintain. The pool will + * never scale below this value. Must be >= 1 and <= max_size. + */ + minSize?: number | null; } export interface PrebuildDeleteWarmPoolParams { @@ -958,9 +1000,22 @@ export interface PrebuildUpdateWarmPoolParams { warmPoolId: string; /** - * desired_size updates the number of warm instances to maintain. + * @deprecated desired_size updates the number of warm instances to maintain. + * Deprecated: Use min_size and max_size instead for dynamic scaling. */ desiredSize?: number | null; + + /** + * max_size updates the maximum number of warm instances to maintain. The pool will + * never scale above this value. Must be >= min_size and <= 20. + */ + maxSize?: number | null; + + /** + * min_size updates the minimum number of warm instances to maintain. The pool will + * never scale below this value. Must be >= 1 and <= max_size. + */ + minSize?: number | null; } export declare namespace Prebuilds { diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts index 5ddd55e0..e688eaac 100644 --- a/tests/api-resources/prebuilds.test.ts +++ b/tests/api-resources/prebuilds.test.ts @@ -141,6 +141,8 @@ describe('resource prebuilds', () => { environmentClassId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', desiredSize: 2, + maxSize: 1, + minSize: 1, }); }); @@ -217,6 +219,8 @@ describe('resource prebuilds', () => { const response = await client.prebuilds.updateWarmPool({ warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', desiredSize: 5, + maxSize: 1, + minSize: 1, }); }); }); From a3f67cca31d94822628e1df12c84b7f9d88edf64 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 12:06:35 +0000 Subject: [PATCH 114/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0f0a998b..2890bff9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-38af3b7959b169657232801bef106659fa1c37da5eab9f928abd0d75d6c8978a.yml -openapi_spec_hash: 995d980761d1ea9951b9ad5e1d2b58dd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d2c151e90e58f98f598a91ca9440eded57b96da07877075eaccdee3ed3ef40a2.yml +openapi_spec_hash: f12e774ba78e93b44278fcf9b8ff08a3 config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 From c40b2366aecfed9247806cff87914d0e19c259d6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:28:36 +0000 Subject: [PATCH 115/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2890bff9..a9a3a2de 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d2c151e90e58f98f598a91ca9440eded57b96da07877075eaccdee3ed3ef40a2.yml -openapi_spec_hash: f12e774ba78e93b44278fcf9b8ff08a3 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a4ab6604a76d175e72a9e789ed92900b511a0dd1eefbb5b9eff7598d03805b43.yml +openapi_spec_hash: b68d741be82e05899e816fd3c540c160 config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 From 74a87ee1d29679c394c0c8417f57944f1fcf6b77 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 15:17:05 +0000 Subject: [PATCH 116/151] chore(ci): skip lint on metadata-only changes Note that we still want to run tests, as these depend on the metadata. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c6845ae..99bd6f00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: timeout-minutes: 10 name: lint runs-on: ${{ github.repository == 'stainless-sdks/gitpod-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 @@ -38,7 +38,7 @@ jobs: timeout-minutes: 5 name: build runs-on: ${{ github.repository == 'stainless-sdks/gitpod-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') permissions: contents: read id-token: write From a7e1b02445a7bd5f00409acf0af72615c91c6202 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 16:11:41 +0000 Subject: [PATCH 117/151] chore(internal): regenerate SDK with no functional changes --- .stats.yml | 6 +-- src/resources/agents.ts | 6 +++ src/resources/prebuilds.ts | 61 ++------------------------- tests/api-resources/prebuilds.test.ts | 4 -- 4 files changed, 12 insertions(+), 65 deletions(-) diff --git a/.stats.yml b/.stats.yml index a9a3a2de..5061d4d1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a4ab6604a76d175e72a9e789ed92900b511a0dd1eefbb5b9eff7598d03805b43.yml -openapi_spec_hash: b68d741be82e05899e816fd3c540c160 -config_hash: 2b667d8e1f2c879dc0cfac9aceed9eb3 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d3cb9b32fcd7b10a75bdb3ab72be3ce62ef2ebbc4321663dc892bf653e69edcd.yml +openapi_spec_hash: db205e154f216da622892c7b07d33234 +config_hash: 719d606666b99e520b83306733eee5d5 diff --git a/src/resources/agents.ts b/src/resources/agents.ts index beb77c47..6344355b 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1514,6 +1514,12 @@ export namespace AgentListPromptsParams { isSkill?: boolean; isTemplate?: boolean; + + /** + * search performs case-insensitive search across prompt name, description, and + * command. + */ + search?: string; } export interface Pagination { diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index 56bf98d3..d9605cd6 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -661,24 +661,10 @@ export interface WarmPoolSpec { desiredPhase?: WarmPoolPhase; /** - * @deprecated desired_size is the number of warm instances to maintain. - * Deprecated: Use min_size and max_size instead for dynamic scaling. Existing - * pools will be migrated to min_size=max_size=desired_size. + * desired_size is the number of warm instances to maintain. */ desiredSize?: number; - /** - * max_size is the maximum number of warm instances to maintain. The pool will - * never scale above this value. Must be >= min_size and <= 20. - */ - maxSize?: number | null; - - /** - * min_size is the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. - */ - minSize?: number | null; - /** * snapshot_id is the prebuild snapshot to warm up in the pool. Updated by the * reconciler when a new prebuild completes for this project and environment class. @@ -708,26 +694,11 @@ export interface WarmPoolStatus { */ failureMessage?: string; - /** - * running_instances is the number of running warm instances in the pool, ready to - * be claimed for near-instant environment startup. - */ - runningInstances?: number; - /** * status_version is incremented each time the status is updated. Used for * optimistic concurrency control. */ statusVersion?: string; - - /** - * stopped_instances is the number of pre-provisioned but stopped instances in the - * pool. When a running instance is claimed, stopped instances are used to backfill - * the running pool faster than provisioning from scratch. Stopped instances only - * incur storage costs, allowing a larger total pool at lower cost than keeping all - * instances running. - */ - stoppedInstances?: number; } export interface PrebuildCreateResponse { @@ -915,22 +886,9 @@ export interface PrebuildCreateWarmPoolParams { projectId: string; /** - * @deprecated desired_size is the number of warm instances to maintain. - * Deprecated: Use min_size and max_size instead for dynamic scaling. + * desired_size is the number of warm instances to maintain. */ desiredSize?: number; - - /** - * max_size is the maximum number of warm instances to maintain. The pool will - * never scale above this value. Must be >= min_size and <= 20. - */ - maxSize?: number | null; - - /** - * min_size is the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. - */ - minSize?: number | null; } export interface PrebuildDeleteWarmPoolParams { @@ -1000,22 +958,9 @@ export interface PrebuildUpdateWarmPoolParams { warmPoolId: string; /** - * @deprecated desired_size updates the number of warm instances to maintain. - * Deprecated: Use min_size and max_size instead for dynamic scaling. + * desired_size updates the number of warm instances to maintain. */ desiredSize?: number | null; - - /** - * max_size updates the maximum number of warm instances to maintain. The pool will - * never scale above this value. Must be >= min_size and <= 20. - */ - maxSize?: number | null; - - /** - * min_size updates the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. - */ - minSize?: number | null; } export declare namespace Prebuilds { diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts index e688eaac..5ddd55e0 100644 --- a/tests/api-resources/prebuilds.test.ts +++ b/tests/api-resources/prebuilds.test.ts @@ -141,8 +141,6 @@ describe('resource prebuilds', () => { environmentClassId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', desiredSize: 2, - maxSize: 1, - minSize: 1, }); }); @@ -219,8 +217,6 @@ describe('resource prebuilds', () => { const response = await client.prebuilds.updateWarmPool({ warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', desiredSize: 5, - maxSize: 1, - minSize: 1, }); }); }); From 64bbf582744173e1fed171456cf1bc3929c72634 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 16:52:46 +0000 Subject: [PATCH 118/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5061d4d1..ff567668 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d3cb9b32fcd7b10a75bdb3ab72be3ce62ef2ebbc4321663dc892bf653e69edcd.yml -openapi_spec_hash: db205e154f216da622892c7b07d33234 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-2110902e48daa64a96807838ec3cb8461618762cca4ed69116960195481b07df.yml +openapi_spec_hash: 3fb674220196e951da8e3d45eba67ec7 config_hash: 719d606666b99e520b83306733eee5d5 From b7d2e429e498e58bdde9c171e67f90aaacd087da Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 10:00:52 +0000 Subject: [PATCH 119/151] feat(api): add managedMetricsEnabled field to runners MetricsConfiguration --- .stats.yml | 6 +-- src/resources/prebuilds.ts | 61 +++++++++++++++++++++++++-- src/resources/runners/runners.ts | 12 ++++++ tests/api-resources/prebuilds.test.ts | 4 ++ 4 files changed, 77 insertions(+), 6 deletions(-) diff --git a/.stats.yml b/.stats.yml index ff567668..abf9d5ad 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-2110902e48daa64a96807838ec3cb8461618762cca4ed69116960195481b07df.yml -openapi_spec_hash: 3fb674220196e951da8e3d45eba67ec7 -config_hash: 719d606666b99e520b83306733eee5d5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-46b2bdeb8322ab3291dc87f9ac5d2e899a8ea34f79b2c2b1beadc551a1700fcf.yml +openapi_spec_hash: 1a1032b0d0f6ce441d13430b58abb3a0 +config_hash: de54bcc58fea1260a6792f8fd013439b diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index d9605cd6..56bf98d3 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -661,10 +661,24 @@ export interface WarmPoolSpec { desiredPhase?: WarmPoolPhase; /** - * desired_size is the number of warm instances to maintain. + * @deprecated desired_size is the number of warm instances to maintain. + * Deprecated: Use min_size and max_size instead for dynamic scaling. Existing + * pools will be migrated to min_size=max_size=desired_size. */ desiredSize?: number; + /** + * max_size is the maximum number of warm instances to maintain. The pool will + * never scale above this value. Must be >= min_size and <= 20. + */ + maxSize?: number | null; + + /** + * min_size is the minimum number of warm instances to maintain. The pool will + * never scale below this value. Must be >= 1 and <= max_size. + */ + minSize?: number | null; + /** * snapshot_id is the prebuild snapshot to warm up in the pool. Updated by the * reconciler when a new prebuild completes for this project and environment class. @@ -694,11 +708,26 @@ export interface WarmPoolStatus { */ failureMessage?: string; + /** + * running_instances is the number of running warm instances in the pool, ready to + * be claimed for near-instant environment startup. + */ + runningInstances?: number; + /** * status_version is incremented each time the status is updated. Used for * optimistic concurrency control. */ statusVersion?: string; + + /** + * stopped_instances is the number of pre-provisioned but stopped instances in the + * pool. When a running instance is claimed, stopped instances are used to backfill + * the running pool faster than provisioning from scratch. Stopped instances only + * incur storage costs, allowing a larger total pool at lower cost than keeping all + * instances running. + */ + stoppedInstances?: number; } export interface PrebuildCreateResponse { @@ -886,9 +915,22 @@ export interface PrebuildCreateWarmPoolParams { projectId: string; /** - * desired_size is the number of warm instances to maintain. + * @deprecated desired_size is the number of warm instances to maintain. + * Deprecated: Use min_size and max_size instead for dynamic scaling. */ desiredSize?: number; + + /** + * max_size is the maximum number of warm instances to maintain. The pool will + * never scale above this value. Must be >= min_size and <= 20. + */ + maxSize?: number | null; + + /** + * min_size is the minimum number of warm instances to maintain. The pool will + * never scale below this value. Must be >= 1 and <= max_size. + */ + minSize?: number | null; } export interface PrebuildDeleteWarmPoolParams { @@ -958,9 +1000,22 @@ export interface PrebuildUpdateWarmPoolParams { warmPoolId: string; /** - * desired_size updates the number of warm instances to maintain. + * @deprecated desired_size updates the number of warm instances to maintain. + * Deprecated: Use min_size and max_size instead for dynamic scaling. */ desiredSize?: number | null; + + /** + * max_size updates the maximum number of warm instances to maintain. The pool will + * never scale above this value. Must be >= min_size and <= 20. + */ + maxSize?: number | null; + + /** + * min_size updates the minimum number of warm instances to maintain. The pool will + * never scale below this value. Must be >= 1 and <= max_size. + */ + minSize?: number | null; } export declare namespace Prebuilds { diff --git a/src/resources/runners/runners.ts b/src/resources/runners/runners.ts index ecf64cc7..1864f404 100644 --- a/src/resources/runners/runners.ts +++ b/src/resources/runners/runners.ts @@ -546,6 +546,12 @@ export interface MetricsConfiguration { */ enabled?: boolean; + /** + * When true, the runner pushes metrics to the management plane via + * ReportRunnerMetrics instead of directly to the remote_write endpoint. + */ + managedMetricsEnabled?: boolean; + /** * password is the password to use for the metrics collector */ @@ -1284,6 +1290,12 @@ export namespace RunnerUpdateParams { */ enabled?: boolean | null; + /** + * When true, the runner pushes metrics to the management plane via + * ReportRunnerMetrics instead of directly to the remote_write endpoint. + */ + managedMetricsEnabled?: boolean | null; + /** * password is the password to use for the metrics collector */ diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts index 5ddd55e0..e688eaac 100644 --- a/tests/api-resources/prebuilds.test.ts +++ b/tests/api-resources/prebuilds.test.ts @@ -141,6 +141,8 @@ describe('resource prebuilds', () => { environmentClassId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', desiredSize: 2, + maxSize: 1, + minSize: 1, }); }); @@ -217,6 +219,8 @@ describe('resource prebuilds', () => { const response = await client.prebuilds.updateWarmPool({ warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', desiredSize: 5, + maxSize: 1, + minSize: 1, }); }); }); From a72b6c81385168933314a76794899bb91c6114cf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:06:04 +0000 Subject: [PATCH 120/151] feat(api): allow min_size >= 0 for warm pool dynamic scaling --- .stats.yml | 4 ++-- src/resources/prebuilds.ts | 9 ++++++--- tests/api-resources/prebuilds.test.ts | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.stats.yml b/.stats.yml index abf9d5ad..2f926b01 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-46b2bdeb8322ab3291dc87f9ac5d2e899a8ea34f79b2c2b1beadc551a1700fcf.yml -openapi_spec_hash: 1a1032b0d0f6ce441d13430b58abb3a0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-dc7143aaf5c9250839a926b35309a54fab505e05d50ea7bc06adf2bcbcdbc889.yml +openapi_spec_hash: b1b47e82090bf165700db79dd40533fe config_hash: de54bcc58fea1260a6792f8fd013439b diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index 56bf98d3..291e9a25 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -675,7 +675,8 @@ export interface WarmPoolSpec { /** * min_size is the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. + * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow + * full scale-down. */ minSize?: number | null; @@ -928,7 +929,8 @@ export interface PrebuildCreateWarmPoolParams { /** * min_size is the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. + * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow + * full scale-down. */ minSize?: number | null; } @@ -1013,7 +1015,8 @@ export interface PrebuildUpdateWarmPoolParams { /** * min_size updates the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. + * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow + * full scale-down. */ minSize?: number | null; } diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts index e688eaac..9308e71c 100644 --- a/tests/api-resources/prebuilds.test.ts +++ b/tests/api-resources/prebuilds.test.ts @@ -142,7 +142,7 @@ describe('resource prebuilds', () => { projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', desiredSize: 2, maxSize: 1, - minSize: 1, + minSize: 20, }); }); @@ -220,7 +220,7 @@ describe('resource prebuilds', () => { warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', desiredSize: 5, maxSize: 1, - minSize: 1, + minSize: 20, }); }); }); From 993a447ef3390cd787661868a28bb2116345821e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:43:11 +0000 Subject: [PATCH 121/151] feat(ec2): add RUNNER_CAPABILITY_ASG_WARM_POOL capability --- .stats.yml | 4 ++-- src/resources/runners/runners.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2f926b01..60a0dd76 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-dc7143aaf5c9250839a926b35309a54fab505e05d50ea7bc06adf2bcbcdbc889.yml -openapi_spec_hash: b1b47e82090bf165700db79dd40533fe +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-3f158bc08381a9336e28ef19d3bc89fba44faae548fd29c8e53849d3573c2d4c.yml +openapi_spec_hash: 054f7fecad0cd62c97b22c93dc79a369 config_hash: de54bcc58fea1260a6792f8fd013439b diff --git a/src/resources/runners/runners.ts b/src/resources/runners/runners.ts index 1864f404..b3623212 100644 --- a/src/resources/runners/runners.ts +++ b/src/resources/runners/runners.ts @@ -630,7 +630,8 @@ export type RunnerCapability = | 'RUNNER_CAPABILITY_LIST_SCM_ORGANIZATIONS' | 'RUNNER_CAPABILITY_CHECK_REPOSITORY_ACCESS' | 'RUNNER_CAPABILITY_RUNNER_SIDE_AGENT' - | 'RUNNER_CAPABILITY_WARM_POOL'; + | 'RUNNER_CAPABILITY_WARM_POOL' + | 'RUNNER_CAPABILITY_ASG_WARM_POOL'; export interface RunnerConfiguration { /** From 353883cb024626e7994a08f2deecea0dd60a1849 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 18:15:31 +0000 Subject: [PATCH 122/151] feat(api): add desiredSize field to WarmPoolStatus in prebuilds --- .stats.yml | 4 ++-- src/resources/prebuilds.ts | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 60a0dd76..ccedf6fd 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-3f158bc08381a9336e28ef19d3bc89fba44faae548fd29c8e53849d3573c2d4c.yml -openapi_spec_hash: 054f7fecad0cd62c97b22c93dc79a369 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-8f6dea0eef78b44b26c72efce3f2a9443d1b431e4a11b4c540c3967ddf0e063e.yml +openapi_spec_hash: 7b0e355f20c891b32efe36e691704b75 config_hash: de54bcc58fea1260a6792f8fd013439b diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index 291e9a25..27212da8 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -704,6 +704,13 @@ export interface WarmPoolStatus { */ phase: WarmPoolPhase; + /** + * desired_size is the current target number of instances the autoscaler has + * decided on. Unlike running_instances, this value is stable and does not + * fluctuate as instances are claimed and backfilled. + */ + desiredSize?: number; + /** * failure_message contains details about why the warm pool is degraded or failed */ From ca8c11c5e9b538421341f2f09c633dcf39439f15 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 20:37:37 +0000 Subject: [PATCH 123/151] chore(internal): regenerate SDK with no functional changes --- .stats.yml | 6 +++--- src/resources/prebuilds.ts | 9 +++------ src/resources/runners/runners.ts | 12 ------------ tests/api-resources/prebuilds.test.ts | 4 ++-- 4 files changed, 8 insertions(+), 23 deletions(-) diff --git a/.stats.yml b/.stats.yml index ccedf6fd..9dc6b4b1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-8f6dea0eef78b44b26c72efce3f2a9443d1b431e4a11b4c540c3967ddf0e063e.yml -openapi_spec_hash: 7b0e355f20c891b32efe36e691704b75 -config_hash: de54bcc58fea1260a6792f8fd013439b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5843fddc36a9619ea8a4c4491d6ddb3b8a18a3b9d995391bc7b9265350e6e08f.yml +openapi_spec_hash: c8e7ad218f0999c9b9579724805a9f97 +config_hash: 719d606666b99e520b83306733eee5d5 diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index 27212da8..7d8ab11c 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -675,8 +675,7 @@ export interface WarmPoolSpec { /** * min_size is the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow - * full scale-down. + * never scale below this value. Must be >= 1 and <= max_size. */ minSize?: number | null; @@ -936,8 +935,7 @@ export interface PrebuildCreateWarmPoolParams { /** * min_size is the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow - * full scale-down. + * never scale below this value. Must be >= 1 and <= max_size. */ minSize?: number | null; } @@ -1022,8 +1020,7 @@ export interface PrebuildUpdateWarmPoolParams { /** * min_size updates the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow - * full scale-down. + * never scale below this value. Must be >= 1 and <= max_size. */ minSize?: number | null; } diff --git a/src/resources/runners/runners.ts b/src/resources/runners/runners.ts index b3623212..833ba037 100644 --- a/src/resources/runners/runners.ts +++ b/src/resources/runners/runners.ts @@ -546,12 +546,6 @@ export interface MetricsConfiguration { */ enabled?: boolean; - /** - * When true, the runner pushes metrics to the management plane via - * ReportRunnerMetrics instead of directly to the remote_write endpoint. - */ - managedMetricsEnabled?: boolean; - /** * password is the password to use for the metrics collector */ @@ -1291,12 +1285,6 @@ export namespace RunnerUpdateParams { */ enabled?: boolean | null; - /** - * When true, the runner pushes metrics to the management plane via - * ReportRunnerMetrics instead of directly to the remote_write endpoint. - */ - managedMetricsEnabled?: boolean | null; - /** * password is the password to use for the metrics collector */ diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts index 9308e71c..e688eaac 100644 --- a/tests/api-resources/prebuilds.test.ts +++ b/tests/api-resources/prebuilds.test.ts @@ -142,7 +142,7 @@ describe('resource prebuilds', () => { projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', desiredSize: 2, maxSize: 1, - minSize: 20, + minSize: 1, }); }); @@ -220,7 +220,7 @@ describe('resource prebuilds', () => { warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', desiredSize: 5, maxSize: 1, - minSize: 20, + minSize: 1, }); }); }); From cc9b601ae180912ef05f7809e416f14e04af28c8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 07:43:48 +0000 Subject: [PATCH 124/151] chore(internal): regenerate SDK with no functional changes --- .stats.yml | 6 +++--- src/resources/prebuilds.ts | 9 ++++++--- src/resources/runners/runners.ts | 12 ++++++++++++ tests/api-resources/prebuilds.test.ts | 4 ++-- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9dc6b4b1..699d74c0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-5843fddc36a9619ea8a4c4491d6ddb3b8a18a3b9d995391bc7b9265350e6e08f.yml -openapi_spec_hash: c8e7ad218f0999c9b9579724805a9f97 -config_hash: 719d606666b99e520b83306733eee5d5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a4e4d9807871b7c4f572b0ad7eaac8954d12451f30bb5788277015c7064c3440.yml +openapi_spec_hash: cff2a4560986a873ccfbbd118814e4e9 +config_hash: 7a2cbe5967b1eef12830d2a23fc32c83 diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts index 7d8ab11c..27212da8 100644 --- a/src/resources/prebuilds.ts +++ b/src/resources/prebuilds.ts @@ -675,7 +675,8 @@ export interface WarmPoolSpec { /** * min_size is the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. + * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow + * full scale-down. */ minSize?: number | null; @@ -935,7 +936,8 @@ export interface PrebuildCreateWarmPoolParams { /** * min_size is the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. + * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow + * full scale-down. */ minSize?: number | null; } @@ -1020,7 +1022,8 @@ export interface PrebuildUpdateWarmPoolParams { /** * min_size updates the minimum number of warm instances to maintain. The pool will - * never scale below this value. Must be >= 1 and <= max_size. + * never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow + * full scale-down. */ minSize?: number | null; } diff --git a/src/resources/runners/runners.ts b/src/resources/runners/runners.ts index 833ba037..b3623212 100644 --- a/src/resources/runners/runners.ts +++ b/src/resources/runners/runners.ts @@ -546,6 +546,12 @@ export interface MetricsConfiguration { */ enabled?: boolean; + /** + * When true, the runner pushes metrics to the management plane via + * ReportRunnerMetrics instead of directly to the remote_write endpoint. + */ + managedMetricsEnabled?: boolean; + /** * password is the password to use for the metrics collector */ @@ -1285,6 +1291,12 @@ export namespace RunnerUpdateParams { */ enabled?: boolean | null; + /** + * When true, the runner pushes metrics to the management plane via + * ReportRunnerMetrics instead of directly to the remote_write endpoint. + */ + managedMetricsEnabled?: boolean | null; + /** * password is the password to use for the metrics collector */ diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts index e688eaac..9308e71c 100644 --- a/tests/api-resources/prebuilds.test.ts +++ b/tests/api-resources/prebuilds.test.ts @@ -142,7 +142,7 @@ describe('resource prebuilds', () => { projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', desiredSize: 2, maxSize: 1, - minSize: 1, + minSize: 20, }); }); @@ -220,7 +220,7 @@ describe('resource prebuilds', () => { warmPoolId: 'a1b2c3d4-5678-9abc-def0-1234567890ab', desiredSize: 5, maxSize: 1, - minSize: 1, + minSize: 20, }); }); }); From 548f3a8e7345e2d4f5966122d534fefe1d032414 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 11:37:42 +0000 Subject: [PATCH 125/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 699d74c0..b1dbd429 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a4e4d9807871b7c4f572b0ad7eaac8954d12451f30bb5788277015c7064c3440.yml -openapi_spec_hash: cff2a4560986a873ccfbbd118814e4e9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-e1c236e7db9c10bf400560385187ff1ff7be96ea0512c8c733b8c2060b5c38f7.yml +openapi_spec_hash: bc809609c12ae8fe95eaee43a35278f9 config_hash: 7a2cbe5967b1eef12830d2a23fc32c83 From c3f5785e73f91da91c69c6c4efdb3bbcfa378895 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 17:52:31 +0000 Subject: [PATCH 126/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b1dbd429..434c02af 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-e1c236e7db9c10bf400560385187ff1ff7be96ea0512c8c733b8c2060b5c38f7.yml -openapi_spec_hash: bc809609c12ae8fe95eaee43a35278f9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-fa0cdbce4ec4c7890ccca1447232476d6fcb21b02dd3db7852d7009179bafd8c.yml +openapi_spec_hash: 5474d9742e790b98d0b7c55c43aeeac5 config_hash: 7a2cbe5967b1eef12830d2a23fc32c83 From 091e1e1dcdb3f67bba806f330766274004234736 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 19:32:14 +0000 Subject: [PATCH 127/151] feat(agents): enforce sub-agent depth and concurrency limits in backend --- .stats.yml | 4 ++-- src/resources/organizations/policies.ts | 14 ++++++++++++++ tests/api-resources/organizations/policies.test.ts | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 434c02af..1088d16a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-fa0cdbce4ec4c7890ccca1447232476d6fcb21b02dd3db7852d7009179bafd8c.yml -openapi_spec_hash: 5474d9742e790b98d0b7c55c43aeeac5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-ed3a1c285331386ba5056502d899a2e4659e9e738e9c126bee45fc101ca1e146.yml +openapi_spec_hash: 367ebe7e572da1892a3eaae9344cfcba config_hash: 7a2cbe5967b1eef12830d2a23fc32c83 diff --git a/src/resources/organizations/policies.ts b/src/resources/organizations/policies.ts index 7da786f6..8d8cd4b3 100644 --- a/src/resources/organizations/policies.ts +++ b/src/resources/organizations/policies.ts @@ -118,6 +118,13 @@ export interface AgentPolicy { */ conversationSharingPolicy?: ConversationSharingPolicy; + /** + * max_subagents_per_environment limits the number of non-terminal sub-agents a + * parent can have running simultaneously in the same environment. Valid range: + * 0-10. Zero means use the default (5). + */ + maxSubagentsPerEnvironment?: number; + /** * scm_tools_allowed_group_id restricts SCM tools access to members of this group. * Empty means no restriction (all users can use SCM tools if not disabled). @@ -495,6 +502,13 @@ export namespace PolicyUpdateParams { */ conversationSharingPolicy?: PoliciesAPI.ConversationSharingPolicy | null; + /** + * max_subagents_per_environment limits the number of non-terminal sub-agents a + * parent can have running simultaneously in the same environment. Valid range: + * 0-10. Zero means use the default (5). + */ + maxSubagentsPerEnvironment?: number | null; + /** * mcp_disabled controls whether MCP (Model Context Protocol) is disabled for * agents diff --git a/tests/api-resources/organizations/policies.test.ts b/tests/api-resources/organizations/policies.test.ts index 21af5203..7fd9de1a 100644 --- a/tests/api-resources/organizations/policies.test.ts +++ b/tests/api-resources/organizations/policies.test.ts @@ -50,6 +50,7 @@ describe('resource policies', () => { agentPolicy: { commandDenyList: ['string'], conversationSharingPolicy: 'CONVERSATION_SHARING_POLICY_UNSPECIFIED', + maxSubagentsPerEnvironment: 10, mcpDisabled: true, scmToolsAllowedGroupId: 'scmToolsAllowedGroupId', scmToolsDisabled: true, From a285f6013dd1382c2dcd5e3d520e90f44af02354 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 11:30:29 +0000 Subject: [PATCH 128/151] feat(api): add terminal field to RunsOn --- .stats.yml | 6 +++--- src/resources/shared.ts | 6 ++++++ yarn.lock | 6 +++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1088d16a..d5a496e4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-ed3a1c285331386ba5056502d899a2e4659e9e738e9c126bee45fc101ca1e146.yml -openapi_spec_hash: 367ebe7e572da1892a3eaae9344cfcba -config_hash: 7a2cbe5967b1eef12830d2a23fc32c83 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a43265810afa7f7c50a08fec12012d5109ecad109105f5c6cf4205f9114ad5fc.yml +openapi_spec_hash: 44434ed0762787b31c9ecec5f670fae5 +config_hash: 63777babba88b7fa1dbf28164294eaed diff --git a/src/resources/shared.ts b/src/resources/shared.ts index a5704d35..40ee15d3 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -323,6 +323,12 @@ export interface RunsOn { * Machine runs the service/task directly on the VM/machine level. */ machine?: unknown; + + /** + * Terminal runs the service inside a managed PTY terminal in the devcontainer. + * Users can attach to the terminal interactively via the terminal API. + */ + terminal?: unknown; } export namespace RunsOn { diff --git a/yarn.lock b/yarn.lock index 17b091f8..9d562436 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1268,9 +1268,9 @@ bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: tweetnacl "^0.14.3" brace-expansion@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== + version "2.0.3" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.3.tgz#0493338bdd58e319b1039c67cf7ee439892c01d9" + integrity sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA== dependencies: balanced-match "^1.0.0" From c095797ffaf0db7caedd47aac75b3dc8baa8a3d5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 15:04:42 +0000 Subject: [PATCH 129/151] chore(internal): regenerate SDK with no functional changes --- .stats.yml | 6 ++--- src/resources/groups/groups.ts | 40 +++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/.stats.yml b/.stats.yml index d5a496e4..d0f6e1c7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-a43265810afa7f7c50a08fec12012d5109ecad109105f5c6cf4205f9114ad5fc.yml -openapi_spec_hash: 44434ed0762787b31c9ecec5f670fae5 -config_hash: 63777babba88b7fa1dbf28164294eaed +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-2414772123f92b697fd3e4c661c0719539aa93dd7fcd50dad734b279fec80ced.yml +openapi_spec_hash: 44556e215acc58a53f8f18abd00ad4a7 +config_hash: 8934bf27653a3fd17f4e3d6a0f8cc7b8 diff --git a/src/resources/groups/groups.ts b/src/resources/groups/groups.ts index 47ee809f..de059d7e 100644 --- a/src/resources/groups/groups.ts +++ b/src/resources/groups/groups.ts @@ -81,7 +81,7 @@ export class Groups extends APIResource { } /** - * Gets information about a specific group. + * Gets information about a specific group by ID or name. * * Use this method to: * @@ -91,12 +91,12 @@ export class Groups extends APIResource { * * ### Examples * - * - Get group details: + * - Get group by ID: * - * Retrieves information about a specific group. + * Retrieves information about a specific group by its unique ID. * * ```yaml - * groupId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" + * id: "d2c94c27-3b76-4a42-b88c-95a85e392c68" * ``` * * ### Authorization @@ -106,7 +106,7 @@ export class Groups extends APIResource { * @example * ```ts * const group = await client.groups.retrieve({ - * groupId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', + * id: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', * }); * ``` */ @@ -481,7 +481,20 @@ export interface GroupCreateParams { } export interface GroupRetrieveParams { + /** + * id looks up the group by its unique ID. + */ + id?: string; + + /** + * @deprecated Deprecated: use the group oneof instead. + */ groupId?: string; + + /** + * name looks up the group by its name within the caller's organization. + */ + name?: string; } export interface GroupUpdateParams { @@ -509,10 +522,27 @@ export namespace GroupListParams { * filter contains options for filtering the list of groups. */ export interface Filter { + /** + * direct_share filters groups by their direct_share flag. When set, only groups + * matching this value are returned. + */ + directShare?: boolean | null; + + /** + * group_ids filters the response to only groups with the specified IDs + */ + groupIds?: Array; + /** * search performs case-insensitive search across group name, description, and ID */ search?: string; + + /** + * system_managed filters groups by their system_managed flag. When set, only + * groups matching this value are returned. + */ + systemManaged?: boolean | null; } /** From 44ab02783ad943510c73c27e514db9c074266b54 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 19:20:46 +0000 Subject: [PATCH 130/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index d0f6e1c7..fd1d45ea 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-2414772123f92b697fd3e4c661c0719539aa93dd7fcd50dad734b279fec80ced.yml -openapi_spec_hash: 44556e215acc58a53f8f18abd00ad4a7 -config_hash: 8934bf27653a3fd17f4e3d6a0f8cc7b8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-91befc5e43ed71fca019a53c01de7aeb7c83d7f062deaecdf664d90ae91fbadc.yml +openapi_spec_hash: fd9566a74a031e79106728e79c6d6591 +config_hash: ced51a017429d0c5ea7712b9cf28430d From 1a61b782581ec2402a5c628e4f57feb676669323 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 21:39:18 +0000 Subject: [PATCH 131/151] feat(api): add customAgents field and CustomSecurityAgent type to policies --- .stats.yml | 6 +-- api.md | 2 + src/resources/organizations/index.ts | 2 + src/resources/organizations/organizations.ts | 4 ++ src/resources/organizations/policies.ts | 57 ++++++++++++++++++++ 5 files changed, 68 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index fd1d45ea..074927a1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-91befc5e43ed71fca019a53c01de7aeb7c83d7f062deaecdf664d90ae91fbadc.yml -openapi_spec_hash: fd9566a74a031e79106728e79c6d6591 -config_hash: ced51a017429d0c5ea7712b9cf28430d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-9ac5c8d650ab1874d96d115ab908743dac63f83f5e2cf4b46b6343abd3aec57a.yml +openapi_spec_hash: 017f9c3b551aca91196f2c2333032e6d +config_hash: ff8b5dec4d7afdd9b88a136ac6e71e0e diff --git a/api.md b/api.md index 3f3c6724..96536d55 100644 --- a/api.md +++ b/api.md @@ -475,6 +475,8 @@ Types: - AgentPolicy - ConversationSharingPolicy - CrowdStrikeConfig +- CustomAgentEnvMapping +- CustomSecurityAgent - KernelControlsAction - OrganizationPolicies - SecurityAgentPolicy diff --git a/src/resources/organizations/index.ts b/src/resources/organizations/index.ts index f554edca..29e04f78 100644 --- a/src/resources/organizations/index.ts +++ b/src/resources/organizations/index.ts @@ -73,6 +73,8 @@ export { type AgentPolicy, type ConversationSharingPolicy, type CrowdStrikeConfig, + type CustomAgentEnvMapping, + type CustomSecurityAgent, type KernelControlsAction, type OrganizationPolicies, type SecurityAgentPolicy, diff --git a/src/resources/organizations/organizations.ts b/src/resources/organizations/organizations.ts index 7397d56f..70082492 100644 --- a/src/resources/organizations/organizations.ts +++ b/src/resources/organizations/organizations.ts @@ -57,6 +57,8 @@ import { AgentPolicy, ConversationSharingPolicy, CrowdStrikeConfig, + CustomAgentEnvMapping, + CustomSecurityAgent, KernelControlsAction, OrganizationPolicies, Policies, @@ -1051,6 +1053,8 @@ export declare namespace Organizations { type AgentPolicy as AgentPolicy, type ConversationSharingPolicy as ConversationSharingPolicy, type CrowdStrikeConfig as CrowdStrikeConfig, + type CustomAgentEnvMapping as CustomAgentEnvMapping, + type CustomSecurityAgent as CustomSecurityAgent, type KernelControlsAction as KernelControlsAction, type OrganizationPolicies as OrganizationPolicies, type SecurityAgentPolicy as SecurityAgentPolicy, diff --git a/src/resources/organizations/policies.ts b/src/resources/organizations/policies.ts index 8d8cd4b3..a7f257ed 100644 --- a/src/resources/organizations/policies.ts +++ b/src/resources/organizations/policies.ts @@ -172,6 +172,61 @@ export interface CrowdStrikeConfig { tags?: string; } +/** + * CustomAgentEnvMapping maps a script placeholder to an organization secret. The + * backend resolves the secret name to a UUID at runtime. + */ +export interface CustomAgentEnvMapping { + /** + * name is the environment variable name used as a placeholder in the start + * command. + */ + name?: string; + + /** + * secret_name is the name of the organization secret whose value populates this + * placeholder. + */ + secretName?: string; +} + +/** + * CustomSecurityAgent defines a custom security agent configured by an + * organization admin. + */ +export interface CustomSecurityAgent { + /** + * id is a unique identifier for this custom agent within the organization + */ + id: string; + + /** + * description is a human-readable description of what this agent does + */ + description?: string; + + /** + * enabled controls whether this custom agent is deployed to environments + */ + enabled?: boolean; + + /** + * env_mappings maps script placeholders to organization secret names, resolved to + * secret values at runtime. + */ + envMappings?: Array; + + /** + * name is the display name for this custom agent + */ + name?: string; + + /** + * start_command is the shell script that starts the agent + */ + startCommand?: string; +} + /** * KernelControlsAction defines how a kernel-level policy violation is handled. */ @@ -590,6 +645,8 @@ export declare namespace Policies { type AgentPolicy as AgentPolicy, type ConversationSharingPolicy as ConversationSharingPolicy, type CrowdStrikeConfig as CrowdStrikeConfig, + type CustomAgentEnvMapping as CustomAgentEnvMapping, + type CustomSecurityAgent as CustomSecurityAgent, type KernelControlsAction as KernelControlsAction, type OrganizationPolicies as OrganizationPolicies, type SecurityAgentPolicy as SecurityAgentPolicy, From 25f783f7f7490c965a8a9819547d943c95e1bf33 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 07:24:51 +0000 Subject: [PATCH 132/151] fix(types): make id optional in CustomSecurityAgent --- .stats.yml | 4 ++-- src/resources/organizations/policies.ts | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 074927a1..e2670b0f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-9ac5c8d650ab1874d96d115ab908743dac63f83f5e2cf4b46b6343abd3aec57a.yml -openapi_spec_hash: 017f9c3b551aca91196f2c2333032e6d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d7f0f4a63fbad7214c33bb22f1ea3dd188513fab77747ec06254320f7c75c523.yml +openapi_spec_hash: 76946f9da9287bfcc0a4da1dc33b312f config_hash: ff8b5dec4d7afdd9b88a136ac6e71e0e diff --git a/src/resources/organizations/policies.ts b/src/resources/organizations/policies.ts index a7f257ed..604b29e0 100644 --- a/src/resources/organizations/policies.ts +++ b/src/resources/organizations/policies.ts @@ -196,9 +196,10 @@ export interface CustomAgentEnvMapping { */ export interface CustomSecurityAgent { /** - * id is a unique identifier for this custom agent within the organization + * id is a unique identifier for this custom agent within the organization. + * Server-generated at save time if empty. */ - id: string; + id?: string; /** * description is a human-readable description of what this agent does From ea30c15e45101e78d86dca3af9db567bf9a787c8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 10:06:41 +0000 Subject: [PATCH 133/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index e2670b0f..e981e190 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d7f0f4a63fbad7214c33bb22f1ea3dd188513fab77747ec06254320f7c75c523.yml -openapi_spec_hash: 76946f9da9287bfcc0a4da1dc33b312f -config_hash: ff8b5dec4d7afdd9b88a136ac6e71e0e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-78e7f700a9e175f54dceb305eeaa99080ba0fe2ff97085a69da414cce0fed656.yml +openapi_spec_hash: 115ea7b9ce81b3d4c8d18ac237088480 +config_hash: 832c76d9cd88fc815f872ad64998911a From 272e39c392b6a5a6c459e6bbd40407d4a8a6294b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:18:18 +0000 Subject: [PATCH 134/151] feat(api): add exclude_team_ids parameter to organization list members --- .stats.yml | 4 ++-- src/resources/organizations/organizations.ts | 6 ++++++ tests/api-resources/organizations/organizations.test.ts | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index e981e190..5076de37 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-78e7f700a9e175f54dceb305eeaa99080ba0fe2ff97085a69da414cce0fed656.yml -openapi_spec_hash: 115ea7b9ce81b3d4c8d18ac237088480 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7a4f235379c078f7947364104260063f605613df775ccb0fe8d3710810589bc5.yml +openapi_spec_hash: 2afba992f3e6ed516002fb391d54d7b4 config_hash: 832c76d9cd88fc815f872ad64998911a diff --git a/src/resources/organizations/organizations.ts b/src/resources/organizations/organizations.ts index 70082492..3cdc46f4 100644 --- a/src/resources/organizations/organizations.ts +++ b/src/resources/organizations/organizations.ts @@ -908,6 +908,12 @@ export namespace OrganizationListMembersParams { */ excludeGroupIds?: Array; + /** + * exclude_members_in_any_team excludes members who belong to any team in the + * organization + */ + excludeMembersInAnyTeam?: boolean; + /** * roles filters members by their organization role */ diff --git a/tests/api-resources/organizations/organizations.test.ts b/tests/api-resources/organizations/organizations.test.ts index 52a8d17d..89665f2b 100644 --- a/tests/api-resources/organizations/organizations.test.ts +++ b/tests/api-resources/organizations/organizations.test.ts @@ -145,6 +145,7 @@ describe('resource organizations', () => { pageSize: 0, filter: { excludeGroupIds: ['182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e'], + excludeMembersInAnyTeam: true, roles: ['ORGANIZATION_ROLE_UNSPECIFIED'], search: 'search', statuses: ['USER_STATUS_UNSPECIFIED'], From 567bc3a93c2cc65fd939527a3a0868cf30fd1e44 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:04:51 +0000 Subject: [PATCH 135/151] feat(backend/api,dashboard): add server-side `recentlyCompleted` sort for `ListWorkflows` --- .stats.yml | 4 ++-- src/resources/automations.ts | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5076de37..e19c3214 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7a4f235379c078f7947364104260063f605613df775ccb0fe8d3710810589bc5.yml -openapi_spec_hash: 2afba992f3e6ed516002fb391d54d7b4 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-eb4b27e6f97d8a8ebb2a75f24367f74153abb7d3a7c16c9110fc0af1be6ed8c9.yml +openapi_spec_hash: e1a8fd3ecf7c9ca8b7639857f56defc2 config_hash: 832c76d9cd88fc815f872ad64998911a diff --git a/src/resources/automations.ts b/src/resources/automations.ts index 47bafb0f..68735821 100644 --- a/src/resources/automations.ts +++ b/src/resources/automations.ts @@ -2610,6 +2610,12 @@ export interface AutomationListParams extends WorkflowsPageParams { * Body param */ pagination?: AutomationListParams.Pagination; + + /** + * Body param: sort specifies the order of results. When unspecified, results are + * sorted alphabetically by name ascending. + */ + sort?: AutomationListParams.Sort; } export namespace AutomationListParams { @@ -2666,6 +2672,16 @@ export namespace AutomationListParams { */ pageSize?: number; } + + /** + * sort specifies the order of results. When unspecified, results are sorted + * alphabetically by name ascending. + */ + export interface Sort { + field?: 'SORT_FIELD_UNSPECIFIED' | 'SORT_FIELD_NAME' | 'SORT_FIELD_RECENTLY_COMPLETED'; + + order?: Shared.SortOrder; + } } export interface AutomationDeleteParams { From 2da2da37ed83460e2b066a134a9bfe07454417cc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:54:07 +0000 Subject: [PATCH 136/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index e19c3214..5df81ccd 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-eb4b27e6f97d8a8ebb2a75f24367f74153abb7d3a7c16c9110fc0af1be6ed8c9.yml -openapi_spec_hash: e1a8fd3ecf7c9ca8b7639857f56defc2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1de1f598d14617efe8f8a2034e5eb7bbdc802c6a51585aa90800c45c51097d1d.yml +openapi_spec_hash: 6404715e9e40c26063077beb5fde7f2a config_hash: 832c76d9cd88fc815f872ad64998911a From d341ea27e87d728ff4001679b665cb629335ee63 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 18:57:13 +0000 Subject: [PATCH 137/151] feat(api): add claimsExpression field to SSO configurations --- .stats.yml | 4 ++-- .../organizations/sso-configurations.ts | 24 +++++++++++++++++++ .../organizations/sso-configurations.test.ts | 2 ++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5df81ccd..9d09258f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-1de1f598d14617efe8f8a2034e5eb7bbdc802c6a51585aa90800c45c51097d1d.yml -openapi_spec_hash: 6404715e9e40c26063077beb5fde7f2a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-86397010ee4d38791a16758fd0668c48c3c6c0c552e0aca553e78250eb452f97.yml +openapi_spec_hash: 32003ebf118835677522e0d0166b8200 config_hash: 832c76d9cd88fc815f872ad64998911a diff --git a/src/resources/organizations/sso-configurations.ts b/src/resources/organizations/sso-configurations.ts index be2c8b73..08d20208 100644 --- a/src/resources/organizations/sso-configurations.ts +++ b/src/resources/organizations/sso-configurations.ts @@ -282,6 +282,15 @@ export interface SSOConfiguration { */ claims?: { [key: string]: string }; + /** + * claims_expression is a CEL (Common Expression Language) expression evaluated + * against the OIDC token claims during login. When set, the expression must + * evaluate to true for the login to succeed. The expression has access to a + * `claims` variable containing all token claims as a map. Example: + * `claims.email_verified && claims.email.endsWith("@example.com")` + */ + claimsExpression?: string; + /** * client_id is the client ID of the OIDC application set on the IdP */ @@ -342,6 +351,14 @@ export interface SSOConfigurationCreateParams { */ additionalScopes?: Array; + /** + * claims_expression is an optional CEL expression evaluated against OIDC token + * claims during login. When set, the expression must evaluate to true for the + * login to succeed. Example: + * `claims.email_verified && claims.email.endsWith("@example.com")` + */ + claimsExpression?: string | null; + displayName?: string; /** @@ -377,6 +394,13 @@ export interface SSOConfigurationUpdateParams { */ claims?: { [key: string]: string }; + /** + * claims_expression is a CEL expression evaluated against OIDC token claims during + * login. When set, the expression must evaluate to true for the login to succeed. + * When present with an empty string, the expression is cleared. + */ + claimsExpression?: string | null; + /** * client_id is the client ID of the SSO provider */ diff --git a/tests/api-resources/organizations/sso-configurations.test.ts b/tests/api-resources/organizations/sso-configurations.test.ts index c173f8c5..e6304844 100644 --- a/tests/api-resources/organizations/sso-configurations.test.ts +++ b/tests/api-resources/organizations/sso-configurations.test.ts @@ -33,6 +33,7 @@ describe('resource ssoConfigurations', () => { issuerUrl: 'https://accounts.google.com', organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047', additionalScopes: ['x'], + claimsExpression: 'claimsExpression', displayName: 'displayName', emailDomain: 'acme-corp.com', emailDomains: ['sfN2.l.iJR-BU.u9JV9.a.m.o2D-4b-Jd.0Z-kX.L.n.S.f.UKbxB'], @@ -80,6 +81,7 @@ describe('resource ssoConfigurations', () => { ssoConfigurationId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68', additionalScopes: { scopes: ['x'] }, claims: { foo: 'string' }, + claimsExpression: 'claimsExpression', clientId: 'new-client-id', clientSecret: 'new-client-secret', displayName: 'displayName', From 6b8a25764a84f622836748e470cc1c51e0977813 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 09:29:58 +0000 Subject: [PATCH 138/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9d09258f..357427bf 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-86397010ee4d38791a16758fd0668c48c3c6c0c552e0aca553e78250eb452f97.yml -openapi_spec_hash: 32003ebf118835677522e0d0166b8200 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-ce2f3371515758ff78c958ff5ea8a32ae1917607858fb006ef25407fb03458a2.yml +openapi_spec_hash: 280252e283aa8b1ff998d211e92fbbd6 config_hash: 832c76d9cd88fc815f872ad64998911a From aa7b9bff086eca2b93320f2dcf078ad76abcd553 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 09:40:34 +0000 Subject: [PATCH 139/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 357427bf..7b8d2b3e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-ce2f3371515758ff78c958ff5ea8a32ae1917607858fb006ef25407fb03458a2.yml -openapi_spec_hash: 280252e283aa8b1ff998d211e92fbbd6 -config_hash: 832c76d9cd88fc815f872ad64998911a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-ea44e431a3c4c7e117c70d54c64500e3b8f8bed99c4ef21c1445f2b2b82a2926.yml +openapi_spec_hash: b01753a713087df30734d8793c830666 +config_hash: 8ddb47f7aae7ba0d746096f40a010873 From f605d55f111bf83b4e472fe8b639d0953361ef9e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 20:05:27 +0000 Subject: [PATCH 140/151] feat(api): add RESOURCE_TYPE_NOTIFICATION to ResourceType enum --- .stats.yml | 6 +++--- src/resources/shared.ts | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7b8d2b3e..39cfbb04 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-ea44e431a3c4c7e117c70d54c64500e3b8f8bed99c4ef21c1445f2b2b82a2926.yml -openapi_spec_hash: b01753a713087df30734d8793c830666 -config_hash: 8ddb47f7aae7ba0d746096f40a010873 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-e8866ae81b8afaf96e76b281290be1485af1674c03262cfd43cd0f5b2851c775.yml +openapi_spec_hash: a157c52535f5028047eea5d0d7750af2 +config_hash: 60242c6ae6fc727bce872753690be6fd diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 40ee15d3..efb056cb 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -314,7 +314,8 @@ export type ResourceType = | 'RESOURCE_TYPE_ANNOUNCEMENT_BANNER' | 'RESOURCE_TYPE_SERVICE_ACCOUNT_TOKEN' | 'RESOURCE_TYPE_ROLE_ASSIGNMENT' - | 'RESOURCE_TYPE_WARM_POOL'; + | 'RESOURCE_TYPE_WARM_POOL' + | 'RESOURCE_TYPE_NOTIFICATION'; export interface RunsOn { docker?: RunsOn.Docker; From 992e5d0e42c8e6546be7ec08e3ace411edaf015c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 00:35:42 +0000 Subject: [PATCH 141/151] feat(api): add environment field to agent wake events --- .stats.yml | 4 ++-- src/resources/agents.ts | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 39cfbb04..c958eff6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-e8866ae81b8afaf96e76b281290be1485af1674c03262cfd43cd0f5b2851c775.yml -openapi_spec_hash: a157c52535f5028047eea5d0d7750af2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-cade77d00e2ea53642be459df51982a608717dc6a15fdf5c6403a52571e7709b.yml +openapi_spec_hash: 88a0edaa03c6a9ae7eed84333977bfe2 config_hash: 60242c6ae6fc727bce872753690be6fd diff --git a/src/resources/agents.ts b/src/resources/agents.ts index 6344355b..27755f1c 100644 --- a/src/resources/agents.ts +++ b/src/resources/agents.ts @@ -1325,6 +1325,8 @@ export namespace UserInputBlock { * fires. Delivered via SendToAgentExecution as a new oneof variant. */ export interface WakeEvent { + environment?: WakeEvent.Environment; + /** * The interest ID that fired (from WaitingInfo.Interest.id). */ @@ -1336,6 +1338,17 @@ export interface WakeEvent { } export namespace WakeEvent { + export interface Environment { + environmentId?: string; + + failureMessage?: Array; + + /** + * The phase the environment reached (e.g. "running", "stopped", "deleted"). + */ + phase?: string; + } + export interface LoopRetrigger { outputs?: { [key: string]: string }; From badc257d04b0aecb4a3becba683862e2d6d64d0f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 08:55:21 +0000 Subject: [PATCH 142/151] feat(api): add disabled parameter to automation update method --- .stats.yml | 6 +++--- src/resources/automations.ts | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index c958eff6..3d7a16d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-cade77d00e2ea53642be459df51982a608717dc6a15fdf5c6403a52571e7709b.yml -openapi_spec_hash: 88a0edaa03c6a9ae7eed84333977bfe2 -config_hash: 60242c6ae6fc727bce872753690be6fd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7b0c078bf03d89222865a5c11f0371cade6476f5348102f3ada80e453a44fc3a.yml +openapi_spec_hash: 88d52b6f3750a4015a926dcb909633fb +config_hash: 69ebf8df948a14a1809ba846a1ec4527 diff --git a/src/resources/automations.ts b/src/resources/automations.ts index 68735821..9646efdb 100644 --- a/src/resources/automations.ts +++ b/src/resources/automations.ts @@ -2572,6 +2572,12 @@ export interface AutomationUpdateParams { */ description?: string | null; + /** + * When set, enables or disables the workflow. A disabled workflow will not be + * triggered by any automatic trigger and manual starts are rejected. + */ + disabled?: boolean | null; + executor?: Shared.Subject | null; /** From 189c5ce2f7cd99cc1c79759417eacc4743077ce5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 11:55:09 +0000 Subject: [PATCH 143/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3d7a16d6..a2a58a27 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-7b0c078bf03d89222865a5c11f0371cade6476f5348102f3ada80e453a44fc3a.yml -openapi_spec_hash: 88d52b6f3750a4015a926dcb909633fb -config_hash: 69ebf8df948a14a1809ba846a1ec4527 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d00798f187c6cb34b901902a128fe022e059636f48442f7d67f547129453748a.yml +openapi_spec_hash: 3996bd43fef56b6b95fbd9258c05334b +config_hash: b968e68acc589109eb718eb46fb0d318 From 7d33b61f60efc5a4c9ffdc166701215eeb8f37b9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 12:31:39 +0000 Subject: [PATCH 144/151] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index a2a58a27..21b6f562 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d00798f187c6cb34b901902a128fe022e059636f48442f7d67f547129453748a.yml -openapi_spec_hash: 3996bd43fef56b6b95fbd9258c05334b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-27eff498d6315a771ef8fe98e8a88caa18b93725144a0f8210b640310b6e9a04.yml +openapi_spec_hash: cb6006c99f55d32062452679bff81804 config_hash: b968e68acc589109eb718eb46fb0d318 From 2dff2b67016fac3d85e1f891ad2eeaf5901c2638 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 15:02:13 +0000 Subject: [PATCH 145/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 21b6f562..c9dde5fb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-27eff498d6315a771ef8fe98e8a88caa18b93725144a0f8210b640310b6e9a04.yml -openapi_spec_hash: cb6006c99f55d32062452679bff81804 -config_hash: b968e68acc589109eb718eb46fb0d318 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-c8dc62d99f936361a1ff3cbc5dec754b1b48dd568ad37b62090232ea83560b4a.yml +openapi_spec_hash: 5ae0b46445867cadb4877a1b48eaad16 +config_hash: f365b422a530c390d99a7c25b5ecb55e From abb7bbf4145cecec4133b8ad3c9b576b5585f540 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 22:01:45 +0000 Subject: [PATCH 146/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index c9dde5fb..25923365 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-c8dc62d99f936361a1ff3cbc5dec754b1b48dd568ad37b62090232ea83560b4a.yml -openapi_spec_hash: 5ae0b46445867cadb4877a1b48eaad16 -config_hash: f365b422a530c390d99a7c25b5ecb55e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-fc2984e57ba2bcc93187fcc9c36258aba7d012f4ae43420e3b70aa680ca30cab.yml +openapi_spec_hash: e47cd10806a5915c4625eda64a9ad922 +config_hash: 4637c1b33f226f70f8ca473ed4107db4 From 3713074b20d253e3da0f1144206d9c9db4cf090a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 06:35:15 +0000 Subject: [PATCH 147/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 25923365..db720b5a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-fc2984e57ba2bcc93187fcc9c36258aba7d012f4ae43420e3b70aa680ca30cab.yml -openapi_spec_hash: e47cd10806a5915c4625eda64a9ad922 -config_hash: 4637c1b33f226f70f8ca473ed4107db4 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-235a20f33e6a93f83aad57a77eb9eaed59a523b3d6afbedb5852250bec86eef2.yml +openapi_spec_hash: db65d3acea1fbfe83a5b7928c98f4388 +config_hash: 7a80f85305907b2a848ff25e67d15751 From 5b8b387ffb849b4d60c047ab30dd77ec5986c3d1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 08:22:26 +0000 Subject: [PATCH 148/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index db720b5a..09bd832a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-235a20f33e6a93f83aad57a77eb9eaed59a523b3d6afbedb5852250bec86eef2.yml -openapi_spec_hash: db65d3acea1fbfe83a5b7928c98f4388 -config_hash: 7a80f85305907b2a848ff25e67d15751 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-e7cce8d6a7d5ddda39e669751171309ecb804f0862d953b8aeb83513f9b8656b.yml +openapi_spec_hash: a6b984d708637d861525638e3ad462f1 +config_hash: 8a3d3a3914768fc140e372e60d93ec17 From 7a658bc4dcd22d36231774de04a6b70605002643 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 08:28:25 +0000 Subject: [PATCH 149/151] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 09bd832a..82c3873e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 193 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-e7cce8d6a7d5ddda39e669751171309ecb804f0862d953b8aeb83513f9b8656b.yml -openapi_spec_hash: a6b984d708637d861525638e3ad462f1 -config_hash: 8a3d3a3914768fc140e372e60d93ec17 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-dabc0ff98cd7b9d91850b3c0dbada4e487e698333cd0b7257959e4819d9a29d6.yml +openapi_spec_hash: b974bdc6025a26cfa62857bf74ec379b +config_hash: 13514c5eb422e4eb01767e718798de1e From 4c742c4e96ad1f56e5dac29d294614d50a95a372 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 17:29:23 +0000 Subject: [PATCH 150/151] release: 0.14.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 95 +++++++++++++++++++++++++++++++++++ package.json | 2 +- src/version.ts | 2 +- 4 files changed, 98 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index ed21d28c..727e2bea 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.13.0" + ".": "0.14.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 6590a4f8..c4a175c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,100 @@ # Changelog +## 0.14.0 (2026-04-02) + +Full Changelog: [v0.13.0...v0.14.0](https://github.com/gitpod-io/gitpod-sdk-typescript/compare/v0.13.0...v0.14.0) + +### Features + +* [backend/api] add backend search for group members ([d7dee78](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/d7dee782586a5d1685a6a3c740e3fa2dc4d80bd5)) +* **agents:** enforce sub-agent depth and concurrency limits in backend ([091e1e1](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/091e1e1dcdb3f67bba806f330766274004234736)) +* **api:** add acknowledgeToken parameter to environments start method ([4e4cf9c](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/4e4cf9c8c51749944cd4d37f98ca46fd48524b0f)) +* **api:** add AGENT_EXECUTION_VIEWER role to ResourceRole type ([e728590](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/e728590a07f53977b6e22ae1e49db5dedfaf37e6)) +* **api:** add agentMessage param and AgentMessage/Type types to agents ([3116d62](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/3116d62117a33546b4293d0914819e26836688c4)) +* **api:** add automations resource with workflows/executions/actions ([c714e29](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/c714e295b0d1f65f804fc85a93487e9549a47d1d)) +* **api:** add bpfDebugLevel field to KernelControlsConfig in environments ([a287ad3](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/a287ad3af6bf663011161691ca7913a446541a42)) +* **api:** add claimsExpression field to SSO configurations ([d341ea2](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/d341ea27e87d728ff4001679b665cb629335ee63)) +* **api:** add conversation_sharing_policy to agent policy ([bf403a1](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/bf403a175281b9b5e61d644015548d4e1f5f2607)) +* **api:** add CountResponseRelation type ([b873069](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/b87306930d710a13c53c98b56b96b812c3521d84)) +* **api:** add credentialProxy field to environments Secret ([02863e6](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/02863e6b7f366348e46cb44e53c15404aea596ce)) +* **api:** add customAgents field and CustomSecurityAgent type to policies ([1a61b78](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/1a61b782581ec2402a5c628e4f57feb676669323)) +* **api:** add desiredSize field to WarmPoolStatus in prebuilds ([353883c](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/353883cb024626e7994a08f2deecea0dd60a1849)) +* **api:** add disabled parameter to automation update method ([badc257](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/badc257d04b0aecb4a3becba683862e2d6d64d0f)) +* **api:** add environment field to agent wake events ([992e5d0](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/992e5d0e42c8e6546be7ec08e3ace411edaf015c)) +* **api:** add exclude_team_ids parameter to organization list members ([272e39c](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/272e39c392b6a5a6c459e6bbd40407d4a8a6294b)) +* **api:** add excludePromptContent parameter to agents list prompts method ([49a254a](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/49a254a20c1966e30bbd4d0e7efe1a124fd0f12e)) +* **api:** add filter parameter to groups list method ([8bc4dd7](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/8bc4dd780908d6853d89b803caa340bf25537f4d)) +* **api:** add hasFailedExecutionSince parameter to automations list method ([217a0b3](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/217a0b3270e3962bf8097c1c0e9748f0d9a4c271)) +* **api:** add lockdownAt field to EnvironmentStatus ([1b40ec9](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/1b40ec9b2d39a90bc0c82691bf7b7c5b47f2799c)) +* **api:** add loop conditions to agents, update wake event types ([e2f1f5d](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/e2f1f5d8f0cc088a0f5b2cf503ad003b4833b4c1)) +* **api:** add managedMetricsEnabled field to runners MetricsConfiguration ([b7d2e42](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/b7d2e429e498e58bdde9c171e67f90aaacd087da)) +* **api:** add min_size and max_size to prebuilds warm pools ([50e0e9c](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/50e0e9c4da97de8fe91ea2b193930556f33dfe74)) +* **api:** add organizationTier to identity authenticated response ([510f3f8](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/510f3f8486518e6fb69f44cbc7b34e842b22c1ca)) +* **api:** add read_only field to PersonalAccessToken proto messages ([9dbc9a5](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/9dbc9a5410b59c6e1161e886a72e5c50ae221bf1)) +* **api:** add RESOURCE_ROLE_ORG_AUDIT_LOG_READER to ResourceRole enum ([811b8f3](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/811b8f37b3caed8228b561180d61981c9278f299)) +* **api:** add RESOURCE_TYPE_NOTIFICATION to ResourceType enum ([f605d55](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/f605d55f111bf83b4e472fe8b639d0953361ef9e)) +* **api:** add resourceIds to role assignments, simplify executable deny list in policies ([a2c14c0](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/a2c14c0e1702564a2855ea6d7f49605dd6e7e4c1)) +* **api:** add resourceTypeFilters parameter to events watch method ([07bb8ec](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/07bb8ec587dd0b5b1d5b43ed506ab8733ebbd073)) +* **api:** add role/senderExecutionId fields to agents AgentMessage ([2c815f0](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/2c815f0c52891d6b0d7869bffdccd28890520b22)) +* **api:** add RUNNER_CAPABILITY_WARM_POOL to RunnerCapability enum ([f7ee363](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/f7ee36368822b4dbad149abf3d1944a6d3f1a2fb)) +* **api:** add search parameter to agents list prompts method ([7e78aca](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/7e78aca647ff60acafe52ab90c0846207190df66)) +* **api:** add SESSION_ADMIN and SESSION_USER to ResourceRole enum ([186e30f](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/186e30fccfe1a41601816d1a46bf163e00c24b18)) +* **api:** add sessionId parameter to agents and environments ([0ef9494](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/0ef9494e37d62933fea68a26d73c8932f7ebce11)) +* **api:** add sessionId parameter to environments create from project ([693174b](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/693174bb0cc890681450918bde61b0b29656f122)) +* **api:** add sessionIds filter to agents/environments list methods ([52e0a3a](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/52e0a3afe617f580ce1dbca45eb761cdd8e9034b)) +* **api:** add snapshotSizeBytes field to PrebuildStatus ([17124f0](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/17124f098f482d4d8160f40b26439eb0f741b5e0)) +* **api:** add SONNET_4_6 model variants to AgentExecution ([8646e6e](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/8646e6ea9fc56779c5785cb0a614116064320cbc)) +* **api:** add sort option to ListAuditLogs ([e617fb0](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/e617fb005b9122702ee2987a316d12d46bc22c35)) +* **api:** add sort parameter to projects list and Sort/SortOrder types ([3322c72](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/3322c72b72dd47a46c674074f580aef9a36dcedd)) +* **api:** add SUPPORTED_MODEL_HAIKU_4_5 to AgentExecution model ([eb7a869](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/eb7a869bec5729291aededfc320b4b9ea499a5f7)) +* **api:** add TEAM_ADMIN and TEAM_VIEWER to ResourceRole ([4428302](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/442830279d79a2181f304c53bacc465616989c42)) +* **api:** add terminal field to RunsOn ([a285f60](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/a285f6013dd1382c2dcd5e3d520e90f44af02354)) +* **api:** add time range filters to event list method ([1b2c056](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/1b2c0567bfad884aadcb3bbeb81af84c76afe1c3)) +* **api:** add updateWindow field to runners configuration ([54c0225](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/54c0225d6cfbeb43cd5c7163667c29a5e28c08b6)) +* **api:** add WakeEvent type and wakeEvent parameter to agents ([ea254b6](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/ea254b67bf12c9dca3b8d205d56883c53179dd20)) +* **api:** add warm pool CRUD methods and types to prebuilds ([2ebb4cd](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/2ebb4cdb5f1461a96bac9b29cc4ffcf1dbf9c439)) +* **api:** allow min_size >= 0 for warm pool dynamic scaling ([a72b6c8](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/a72b6c81385168933314a76794899bb91c6114cf)) +* **backend/api,dashboard:** add server-side `recentlyCompleted` sort for `ListWorkflows` ([567bc3a](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/567bc3a93c2cc65fd939527a3a0868cf30fd1e44)) +* **ec2:** add RUNNER_CAPABILITY_ASG_WARM_POOL capability ([993a447](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/993a447ef3390cd787661868a28bb2116345821e)) +* **types:** remove agent execution enum values from Principal and ResourceRole ([4378ae7](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/4378ae76a8d9b668c2b428009c39ec35aa8dc781)) + + +### Bug Fixes + +* **api:** remove acknowledgeToken parameter from environments start method ([77917e4](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/77917e43fbdc905617e238b8f2d0c1a9e5c9fade)) +* **api:** rename executableDenyList to vetoExecPolicy in policies ([84bf167](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/84bf167dd9dd77c72968cd5267d9a2b25a6caa76)) +* **client:** preserve URL params already embedded in path ([7424783](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/7424783edb1c99c339910557206e36d02cc9ad75)) +* **docs/contributing:** correct pnpm link command ([43ff14c](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/43ff14ca7e7126233cd7dd75cd191766b96ab492)) +* fix request delays for retrying to be more respectful of high requested delays ([858345c](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/858345c8d80809668d46f6b0757c0fb14702cb73)) +* **types:** make id optional in CustomSecurityAgent ([25f783f](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/25f783f7f7490c965a8a9819547d943c95e1bf33)) + + +### Chores + +* **ci:** skip lint on metadata-only changes ([74a87ee](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/74a87ee1d29679c394c0c8417f57944f1fcf6b77)) +* **ci:** skip uploading artifacts on stainless-internal branches ([a4c7e10](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/a4c7e10ee9bda8648752c8c56f49960a54cca88a)) +* **docs:** add missing descriptions ([ad400e2](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/ad400e2a897ed2b82a4dff08de92b16d74b0e6d1)) +* **internal:** move stringifyQuery implementation to internal function ([b25ce90](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/b25ce90fcccaa5dab211114e17d9c155f26b05c5)) +* **internal:** regenerate SDK with no functional changes ([c095797](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/c095797ffaf0db7caedd47aac75b3dc8baa8a3d5)) +* **internal:** regenerate SDK with no functional changes ([cc9b601](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/cc9b601ae180912ef05f7809e416f14e04af28c8)) +* **internal:** regenerate SDK with no functional changes ([ca8c11c](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/ca8c11c5e9b538421341f2f09c633dcf39439f15)) +* **internal:** regenerate SDK with no functional changes ([a7e1b02](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/a7e1b02445a7bd5f00409acf0af72615c91c6202)) +* **internal:** regenerate SDK with no functional changes ([2b0fe0b](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/2b0fe0b585142ca23d6786d32312650514e4ddd0)) +* **internal:** remove mock server code ([d7effec](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/d7effeca87947f2c067de984a7fac9f4e498eaac)) +* **internal:** tweak CI branches ([834cba6](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/834cba602e5f46c845b48991abc643c43628aa94)) +* **internal:** update dependencies to address dependabot vulnerabilities ([3daa978](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/3daa97802cc6ccbfc732028820ff17c46f775503)) +* **internal:** update gitignore ([51da5bf](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/51da5bfc1509472e2a96ce199097bca3377e7b6a)) +* **test:** update skip reason message ([9e5570d](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/9e5570d13dbf4c3101e679038a8e4bdb2460882d)) +* **types:** move CountResponseRelation from organizations to shared ([c47174a](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/c47174a9c78d9785316d7f4085a4aea653b11cc1)) +* update mock server docs ([cd79de5](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/cd79de5fbf0ffd6dcc51c8a0d930065335254f1f)) + + +### Documentation + +* **api:** clarify resourceId/resourceIds permission behavior in groups role assignments ([1b36502](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/1b36502903ea6f8a6b558bd152379137191907a8)) +* **api:** clarify timeout constraints in environments and organization policies ([8a68a4d](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/8a68a4d7213b28c0c5376ccc3eb873692f4961ba)) +* **api:** update annotations parameter examples in agents ([723978c](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/723978c628dab92a05195c67346c796b7232583c)) + ## 0.13.0 (2026-02-18) Full Changelog: [v0.12.0...v0.13.0](https://github.com/gitpod-io/gitpod-sdk-typescript/compare/v0.12.0...v0.13.0) diff --git a/package.json b/package.json index 2aba7e90..7364c376 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gitpod/sdk", - "version": "0.13.0", + "version": "0.14.0", "description": "The official TypeScript library for the Gitpod API", "author": "Gitpod ", "types": "dist/index.d.ts", diff --git a/src/version.ts b/src/version.ts index 9d013cc2..e2b0672c 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.13.0'; // x-release-please-version +export const VERSION = '0.14.0'; // x-release-please-version From 8b2934c63435e16b7b1053acdc673f57cf249712 Mon Sep 17 00:00:00 2001 From: Kyle Brennan Date: Thu, 2 Apr 2026 17:41:10 +0000 Subject: [PATCH 151/151] ci: pin actions to latest release commit SHAs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - actions/checkout: v6 → v6.0.2 (de0fac2e) - actions/setup-node: v4 → v6.3.0 (53b83947) - actions/github-script: v8 tag → v8 SHA (ed597411) Co-authored-by: Ona --- .github/workflows/ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 99bd6f00..f5fc5df9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,10 +21,10 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/gitpod-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: '20' @@ -43,10 +43,10 @@ jobs: contents: read id-token: write steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: '20' @@ -61,7 +61,7 @@ jobs: github.repository == 'stainless-sdks/gitpod-typescript' && !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc - uses: actions/github-script@v8 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 with: script: core.setOutput('github_token', await core.getIDToken()); @@ -80,10 +80,10 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/gitpod-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: '20'