From c77633b90e182d6d7b0d279410d6b82e436872ca Mon Sep 17 00:00:00 2001 From: scalarbot Date: Wed, 28 Oct 2026 13:04:29 +0000 Subject: [PATCH 1/3] feat(api)!: update SDK surface (10 changes) - Regenerated with generator `0.36.11` (previously `0.36.9`). - Added optional body field `automaticSizing` to `sessions.create`. - Added optional body field `memoryMb` to `sessions.update`. - Added optional body field `resourceSettings` to `projects.create`. - Added optional body field `resourceSettings` to `projects.update`. - Added optional body field `warmPoolSchedule` to `projects.update`. - Added optional query param `type` to `billing.listUsage`. - Removed operation `organizations.subscriptions.reset` (`POST /v1/organizations/{organizationId}/subscriptions/reset`). - Removed operation `users.delete` (`DELETE /v1/users/{userId}`). - Removed operation `users.subscriptions.reset` (`POST /v1/users/{userId}/subscriptions/reset`). BREAKING CHANGE: 3 breaking changes to the SDK surface. - Removed operation `organizations.subscriptions.reset` (`POST /v1/organizations/{organizationId}/subscriptions/reset`). - Removed operation `users.delete` (`DELETE /v1/users/{userId}`). - Removed operation `users.subscriptions.reset` (`POST /v1/users/{userId}/subscriptions/reset`). Build: oVyn1k00ZNOl5HtvCahlE --- api.md | 60 +- pyproject.toml | 1 - scalar-sdk.manifest.json | 550 ++---------- src/tembo/_base_client.py | 15 +- src/tembo/_utils/_utils.py | 17 +- src/tembo/_version.py | 2 +- src/tembo/resources/billing.py | 19 +- .../resources/organizations/subscriptions.py | 130 +-- src/tembo/resources/projects/projects.py | 78 +- src/tembo/resources/sessions/sessions.py | 16 +- src/tembo/resources/users/subscriptions.py | 126 +-- src/tembo/resources/users/users.py | 112 +-- src/tembo/types/__init__.py | 2 - src/tembo/types/artifact_list_response.py | 2 + src/tembo/types/billing_list_usage_params.py | 9 +- .../types/billing_list_usage_response.py | 32 +- src/tembo/types/organizations/__init__.py | 2 - .../subscription_reset_params.py | 17 - .../subscription_reset_response.py | 11 - src/tembo/types/project_create_params.py | 69 +- src/tembo/types/project_create_response.py | 73 +- src/tembo/types/project_duplicate_response.py | 73 +- src/tembo/types/project_list_response.py | 73 +- src/tembo/types/project_retrieve_response.py | 72 +- src/tembo/types/project_update_params.py | 81 +- src/tembo/types/project_update_response.py | 72 +- .../types/projects/build_list_response.py | 6 +- .../types/projects/build_retrieve_response.py | 6 +- .../types/projects/snapshot_list_response.py | 8 +- .../projects/snapshot_retrieve_response.py | 8 +- .../projects/snapshot_update_response.py | 8 +- src/tembo/types/session_create_params.py | 3 + src/tembo/types/session_create_response.py | 3 + src/tembo/types/session_fork_response.py | 3 + src/tembo/types/session_retrieve_response.py | 3 + src/tembo/types/session_update_params.py | 3 + src/tembo/types/session_update_response.py | 3 + src/tembo/types/user_delete_params.py | 25 - src/tembo/types/user_delete_response.py | 17 - src/tembo/types/users/__init__.py | 2 - .../types/users/subscription_reset_params.py | 17 - .../users/subscription_reset_response.py | 11 - tests/smoke-test.py | 793 ++++++++---------- 43 files changed, 1069 insertions(+), 1564 deletions(-) delete mode 100644 src/tembo/types/organizations/subscription_reset_params.py delete mode 100644 src/tembo/types/organizations/subscription_reset_response.py delete mode 100644 src/tembo/types/user_delete_params.py delete mode 100644 src/tembo/types/user_delete_response.py delete mode 100644 src/tembo/types/users/subscription_reset_params.py delete mode 100644 src/tembo/types/users/subscription_reset_response.py diff --git a/api.md b/api.md index eae1ade7..787f3663 100644 --- a/api.md +++ b/api.md @@ -47,7 +47,6 @@ Complete reference of every operation, grouped by resource. See [the README](./R - [Validate organization provider credentials](#validate-organization-provider-credentials) - [`Organizations Subscriptions`](#organizations-subscriptions) - [Retrieve organization subscriptions](#retrieve-organization-subscriptions) - - [Reset organization subscription usage](#reset-organization-subscription-usage) - [`McpConnections`](#mcpconnections) - [List MCP connections](#list-mcp-connections) - [Create an MCP connection](#create-an-mcp-connection) @@ -75,7 +74,6 @@ Complete reference of every operation, grouped by resource. See [the README](./R - [`Users`](#users) - [Retrieve the current user](#retrieve-the-current-user) - [Retrieve a user](#retrieve-a-user) - - [Delete a user](#delete-a-user) - [`Users Settings`](#users-settings) - [Retrieve user settings](#retrieve-user-settings) - [Update user settings](#update-user-settings) @@ -84,7 +82,6 @@ Complete reference of every operation, grouped by resource. See [the README](./R - [Retrieve a user connected account](#retrieve-a-user-connected-account) - [`Users Subscriptions`](#users-subscriptions) - [Retrieve user subscriptions](#retrieve-user-subscriptions) - - [Reset user subscription usage](#reset-user-subscription-usage) - [`Users ProfilePicture`](#users-profilepicture) - [Retrieve a user profile picture](#retrieve-a-user-profile-picture) - [Update your profile picture](#update-your-profile-picture) @@ -757,23 +754,6 @@ subscription = client.organizations.subscriptions.retrieve( ) ``` -#### Reset organization subscription usage - -Redeem an earned ChatGPT rate-limit reset. - -| Direction | Type | -| --- | --- | -| Request | [`SubscriptionResetParams`](./src/tembo/types/organizations/subscription_reset_params.py) | -| Response | [`SubscriptionResetResponse`](./src/tembo/types/organizations/subscription_reset_response.py) | - -```python -subscription = client.organizations.subscriptions.reset( - organization_id="organizationId", - idempotency_key="7c9e6679-7425-40de-944b-e07fc1f90ae7", - provider="chatgpt", -) -``` - ## `McpConnections` ### List MCP connections @@ -1097,21 +1077,6 @@ user = client.users.retrieve( ) ``` -### Delete a user - -Queue permanent deletion of your user account. - -| Direction | Type | -| --- | --- | -| Request | [`UserDeleteParams`](./src/tembo/types/user_delete_params.py) | -| Response | [`UserDeleteResponse`](./src/tembo/types/user_delete_response.py) | - -```python -user = client.users.delete( - user_id="userId", -) -``` - ### `Users Settings` #### Retrieve user settings @@ -1192,23 +1157,6 @@ subscription = client.users.subscriptions.retrieve( ) ``` -#### Reset user subscription usage - -Redeem an earned ChatGPT rate-limit reset. - -| Direction | Type | -| --- | --- | -| Request | [`SubscriptionResetParams`](./src/tembo/types/users/subscription_reset_params.py) | -| Response | [`SubscriptionResetResponse`](./src/tembo/types/users/subscription_reset_response.py) | - -```python -subscription = client.users.subscriptions.reset( - user_id="userId", - idempotency_key="7c9e6679-7425-40de-944b-e07fc1f90ae7", - provider="chatgpt", -) -``` - ### `Users ProfilePicture` #### Retrieve a user profile picture @@ -1310,7 +1258,7 @@ session = client.sessions.retrieve( ### Update a session -Update a session: archive or restore it, set priority, rename it, change agent/model, switch between Build (normal) and Plan (planning) modes, configure its workspace and branches, or change visibility between private and visible to workspace (public). Archiving uses level=0; restoring archived sessions uses level=1 and does not restart work. Use pins to pin or unpin sessions. +Update a session: archive or restore it, set priority, rename it, change agent/model, switch between Build (normal) and Plan (planning) modes, configure its workspace and branches, or change visibility between private and visible to workspace (public). Archiving uses level=0; restoring archived sessions uses level=1 and does not restart work. Use pins to pin or unpin sessions. Submit memoryMb alone to request asynchronous memory growth for a running adaptive sandbox within project limits; sandbox metrics report progress. | Direction | Type | | --- | --- | @@ -1561,7 +1509,8 @@ Create a reusable project environment. ```python project = client.projects.create( name="x", - sizes=["nano"], + sizes=["medium"], + resource_settings={"automaticSizing": False}, ) ``` @@ -1591,6 +1540,7 @@ Update project repositories, setup script, agent instructions, environment varia ```python project = client.projects.update( project_id="projectId", + resource_settings={"automaticSizing": False}, ) ``` @@ -2682,7 +2632,7 @@ billing = client.billing.retrieve() ### List billing usage -List session usage with cursor pagination. +List session usage by default, or include warm pool compute with the type filter. Uses cursor pagination. | Direction | Type | | --- | --- | diff --git a/pyproject.toml b/pyproject.toml index b379b51c..d6c402e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,6 @@ dependencies = [ "pydantic>=1.9.0, <3", "typing-extensions>=4.14, <5", "anyio>=3.5.0, <5", - "distro>=1.7.0, <2", "sniffio", ] diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json index 8ea464b3..c61f8138 100644 --- a/scalar-sdk.manifest.json +++ b/scalar-sdk.manifest.json @@ -1,7 +1,7 @@ { "name": "TemboSdk", "slug": "temboSdk", - "generatorVersion": "0.36.9", + "generatorVersion": "0.36.11", "servers": [ "https://api.tembo.io/" ], @@ -11456,176 +11456,6 @@ "responseLinks": [], "transport": "http" }, - { - "resource": "organizations.subscriptions", - "publicResource": "organizations.subscriptions", - "operation": "reset", - "publicOperation": "reset", - "deprecated": false, - "method": "POST", - "path": "/v1/organizations/{organizationId}/subscriptions/reset", - "pathParams": [ - "organizationId" - ], - "publicPathParams": [ - "organizationId" - ], - "queryParams": [], - "publicQueryParams": [], - "headerParams": [], - "publicHeaderParams": [], - "bodyParams": [ - "idempotencyKey", - "provider" - ], - "publicBodyParams": [ - "idempotencyKey", - "provider" - ], - "bodyParamDetails": [ - { - "name": "idempotencyKey", - "required": true - }, - { - "name": "provider", - "required": true - } - ], - "pathParamDetails": [ - { - "name": "organizationId", - "required": true, - "style": "simple", - "explode": false - } - ], - "queryParamDetails": [], - "headerParamDetails": [], - "cookieParams": [], - "publicCookieParams": [], - "cookieParamDetails": [], - "paramsModel": { - "publicName": "SubscriptionResetParams" - }, - "requestBody": { - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ], - "required": true, - "publicName": "body", - "publicIdentifier": "body" - }, - "response": { - "status": "200", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - "result": { - "successStatus": "200", - "errorStatuses": [ - "400", - "403", - "404", - "409", - "500", - "502", - "503" - ] - }, - "errorResponses": [ - { - "status": "400", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "403", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "404", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "409", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "500", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "502", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "503", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - } - ], - "responseLinks": [], - "transport": "http" - }, { "resource": "mcpConnections", "publicResource": "mcpConnections", @@ -14224,134 +14054,6 @@ "responseLinks": [], "transport": "http" }, - { - "resource": "users", - "publicResource": "users", - "operation": "delete", - "publicOperation": "delete", - "deprecated": false, - "method": "DELETE", - "path": "/v1/users/{userId}", - "pathParams": [ - "userId" - ], - "publicPathParams": [ - "userId" - ], - "queryParams": [], - "publicQueryParams": [], - "headerParams": [], - "publicHeaderParams": [], - "bodyParams": [ - "deletionQuestionnaire" - ], - "publicBodyParams": [ - "deletionQuestionnaire" - ], - "bodyParamDetails": [ - { - "name": "deletionQuestionnaire", - "required": false - } - ], - "pathParamDetails": [ - { - "name": "userId", - "required": true, - "style": "simple", - "explode": false - } - ], - "queryParamDetails": [], - "headerParamDetails": [], - "cookieParams": [], - "publicCookieParams": [], - "cookieParamDetails": [], - "paramsModel": { - "publicName": "UserDeleteParams" - }, - "requestBody": { - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ], - "required": true, - "publicName": "body", - "publicIdentifier": "body" - }, - "response": { - "status": "200", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - "result": { - "successStatus": "200", - "errorStatuses": [ - "400", - "403", - "404", - "500" - ] - }, - "errorResponses": [ - { - "status": "400", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "403", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "404", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "500", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - } - ], - "responseLinks": [], - "transport": "http" - }, { "resource": "users.settings", "publicResource": "users.settings", @@ -15052,164 +14754,6 @@ "responseLinks": [], "transport": "http" }, - { - "resource": "users.subscriptions", - "publicResource": "users.subscriptions", - "operation": "reset", - "publicOperation": "reset", - "deprecated": false, - "method": "POST", - "path": "/v1/users/{userId}/subscriptions/reset", - "pathParams": [ - "userId" - ], - "publicPathParams": [ - "userId" - ], - "queryParams": [], - "publicQueryParams": [], - "headerParams": [], - "publicHeaderParams": [], - "bodyParams": [ - "idempotencyKey", - "provider" - ], - "publicBodyParams": [ - "idempotencyKey", - "provider" - ], - "bodyParamDetails": [ - { - "name": "idempotencyKey", - "required": true - }, - { - "name": "provider", - "required": true - } - ], - "pathParamDetails": [ - { - "name": "userId", - "required": true, - "style": "simple", - "explode": false - } - ], - "queryParamDetails": [], - "headerParamDetails": [], - "cookieParams": [], - "publicCookieParams": [], - "cookieParamDetails": [], - "paramsModel": { - "publicName": "SubscriptionResetParams" - }, - "requestBody": { - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ], - "required": true, - "publicName": "body", - "publicIdentifier": "body" - }, - "response": { - "status": "200", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - "result": { - "successStatus": "200", - "errorStatuses": [ - "400", - "403", - "404", - "409", - "500", - "502" - ] - }, - "errorResponses": [ - { - "status": "400", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "403", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "404", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "409", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "500", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - }, - { - "status": "502", - "contentType": "application/json", - "encoding": "json", - "contents": [ - { - "contentType": "application/json", - "encoding": "json" - } - ] - } - ], - "responseLinks": [], - "transport": "http" - }, { "resource": "users.profilePicture", "publicResource": "users.profilePicture", @@ -15951,6 +15495,7 @@ "richContent", "pullRequestId", "queueRightAway", + "automaticSizing", "sessionMode", "startupAgent" ], @@ -15970,6 +15515,7 @@ "richContent", "pullRequestId", "queueRightAway", + "automaticSizing", "sessionMode", "startupAgent" ], @@ -16034,6 +15580,10 @@ "name": "queueRightAway", "required": false }, + { + "name": "automaticSizing", + "required": false + }, { "name": "sessionMode", "required": false @@ -16331,6 +15881,7 @@ "headerParams": [], "publicHeaderParams": [], "bodyParams": [ + "memoryMb", "agent", "agentOptions", "baseBranch", @@ -16347,6 +15898,7 @@ "visibility" ], "publicBodyParams": [ + "memoryMb", "agent", "agentOptions", "baseBranch", @@ -16363,6 +15915,10 @@ "visibility" ], "bodyParamDetails": [ + { + "name": "memoryMb", + "required": false + }, { "name": "agent", "required": false @@ -18779,47 +18335,41 @@ "publicHeaderParams": [], "bodyParams": [ "description", - "includeDeps", - "includeSkills", "name", "setupScript", "codeRepositoryIds", "agentInstructions", "color", "icon", + "includeDeps", + "includeSkills", "onboardingDefault", "runNow", "schedule", - "sizes" + "sizes", + "resourceSettings" ], "publicBodyParams": [ "description", - "includeDeps", - "includeSkills", "name", "setupScript", "codeRepositoryIds", "agentInstructions", "color", "icon", + "includeDeps", + "includeSkills", "onboardingDefault", "runNow", "schedule", - "sizes" + "sizes", + "resourceSettings" ], "bodyParamDetails": [ { "name": "description", "required": false }, - { - "name": "includeDeps", - "required": false - }, - { - "name": "includeSkills", - "required": false - }, { "name": "name", "required": true @@ -18844,6 +18394,14 @@ "name": "icon", "required": false }, + { + "name": "includeDeps", + "required": false + }, + { + "name": "includeSkills", + "required": false + }, { "name": "onboardingDefault", "required": false @@ -18858,7 +18416,11 @@ }, { "name": "sizes", - "required": true + "required": false + }, + { + "name": "resourceSettings", + "required": false } ], "pathParamDetails": [], @@ -19102,34 +18664,38 @@ "publicHeaderParams": [], "bodyParams": [ "description", - "includeDeps", - "includeSkills", "name", "setupScript", "codeRepositoryIds", "agentInstructions", "color", "icon", + "includeDeps", + "includeSkills", + "resourceSettings", "defaultForSizes", "environmentVariables", "schedule", "sizes", + "warmPoolSchedule", "warmPoolEnabled" ], "publicBodyParams": [ "description", - "includeDeps", - "includeSkills", "name", "setupScript", "codeRepositoryIds", "agentInstructions", "color", "icon", + "includeDeps", + "includeSkills", + "resourceSettings", "defaultForSizes", "environmentVariables", "schedule", "sizes", + "warmPoolSchedule", "warmPoolEnabled" ], "bodyParamDetails": [ @@ -19137,14 +18703,6 @@ "name": "description", "required": false }, - { - "name": "includeDeps", - "required": false - }, - { - "name": "includeSkills", - "required": false - }, { "name": "name", "required": false @@ -19169,6 +18727,18 @@ "name": "icon", "required": false }, + { + "name": "includeDeps", + "required": false + }, + { + "name": "includeSkills", + "required": false + }, + { + "name": "resourceSettings", + "required": false + }, { "name": "defaultForSizes", "required": false @@ -19185,6 +18755,10 @@ "name": "sizes", "required": false }, + { + "name": "warmPoolSchedule", + "required": false + }, { "name": "warmPoolEnabled", "required": false @@ -29531,6 +29105,7 @@ "queryParams": [ "cursor", "limit", + "type", "sessionId", "createdAfter", "createdBefore", @@ -29540,6 +29115,7 @@ "publicQueryParams": [ "cursor", "limit", + "type", "sessionId", "createdAfter", "createdBefore", @@ -29566,6 +29142,12 @@ "explode": true, "defaultValue": 50 }, + { + "name": "type", + "required": false, + "style": "form", + "explode": true + }, { "name": "sessionId", "required": false, diff --git a/src/tembo/_base_client.py b/src/tembo/_base_client.py index 5c5dac00..7a4b7a89 100644 --- a/src/tembo/_base_client.py +++ b/src/tembo/_base_client.py @@ -36,7 +36,6 @@ import anyio import httpx -import distro import pydantic from httpx import URL from pydantic import PrivateAttr @@ -2143,15 +2142,15 @@ def get_platform() -> Platform: # system is Linux and platform_name is a string like 'Linux-5.10.81-android12-9-00001-geba40aecb3b7-ab8534902-aarch64-with-libc' return "Android" - if system == "linux": - # https://distro.readthedocs.io/en/latest/#distro.id - distro_id = distro.id() - if distro_id == "freebsd": - return "FreeBSD" + # The BSDs are not Linux distributions: `platform.system()` reports them by name (`FreeBSD`, + # `OpenBSD`), so the kernel name alone tells them apart and no distribution lookup is needed. + if system == "freebsd": + return "FreeBSD" - if distro_id == "openbsd": - return "OpenBSD" + if system == "openbsd": + return "OpenBSD" + if system == "linux": return "Linux" if platform_name: diff --git a/src/tembo/_utils/_utils.py b/src/tembo/_utils/_utils.py index 8b051e25..1af7aca2 100644 --- a/src/tembo/_utils/_utils.py +++ b/src/tembo/_utils/_utils.py @@ -203,19 +203,14 @@ def is_iterable(obj: object) -> TypeGuard[Iterable[object]]: return isinstance(obj, Iterable) -# copied from https://github.com/Rapptz/RoboDanny def human_join(seq: Sequence[str], *, delim: str = ", ", final: str = "or") -> str: - size = len(seq) - if size == 0: + """Joins `seq` into an English list: `"a"`, `"a or b"`, `"a, b or c"` (no comma before `final`).""" + if not seq: return "" - - if size == 1: - return seq[0] - - if size == 2: - return f"{seq[0]} {final} {seq[1]}" - - return delim.join(seq[:-1]) + f" {final} {seq[-1]}" + *head, last = seq + if not head: + return last + return f"{delim.join(head)} {final} {last}" def quote(string: str) -> str: diff --git a/src/tembo/_version.py b/src/tembo/_version.py index 3e9326a7..17fb69dc 100644 --- a/src/tembo/_version.py +++ b/src/tembo/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Scalar. See README.md for details. __title__ = "temboSdk" -__version__ = "0.4.0" # x-release-please-version +__version__ = "0.5.0" # x-release-please-version diff --git a/src/tembo/resources/billing.py b/src/tembo/resources/billing.py index 89745354..9f6d42e4 100644 --- a/src/tembo/resources/billing.py +++ b/src/tembo/resources/billing.py @@ -6,6 +6,7 @@ from typing import Union from datetime import datetime +from typing_extensions import Literal from .._types import SequenceNotStr from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given @@ -75,6 +76,7 @@ def list_usage( *, cursor: str | Omit = omit, limit: int | Omit = omit, + type: Literal["all", "sessions", "warm-pool"] | Omit = omit, session_id: str | Omit = omit, created_after: Union[str, datetime] | Omit = omit, created_before: Union[str, datetime] | Omit = omit, @@ -88,14 +90,15 @@ def list_usage( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BillingListUsageResponse: """ - List session usage with cursor pagination. + List session usage by default, or include warm pool compute with the type filter. Uses cursor pagination. Args: cursor: Continuation cursor from the previous response nextCursor. Omit for the first page; null nextCursor means there are no more pages. limit: Maximum number of items to return in one page. Use nextCursor from the response to fetch more items. + type: Usage types to include. Defaults to sessions for backwards compatibility. session_id: Filter billing usage to this session. - created_after: Only sessions created at or after this ISO 8601 timestamp. - created_before: Only sessions created before this ISO 8601 timestamp. + created_after: Include sessions created or warm pool runtime at or after this ISO 8601 timestamp. + created_before: Include sessions created or warm pool runtime before this ISO 8601 timestamp. created_by: Filter by creator IDs, supplied as a comma-separated list. models: Filter by model names, supplied as a comma-separated list. extra_headers: Send extra headers with the request. @@ -124,6 +127,7 @@ def list_usage( { "cursor": cursor, "limit": limit, + "type": type, "session_id": session_id, "created_after": created_after, "created_before": created_before, @@ -186,6 +190,7 @@ async def list_usage( *, cursor: str | Omit = omit, limit: int | Omit = omit, + type: Literal["all", "sessions", "warm-pool"] | Omit = omit, session_id: str | Omit = omit, created_after: Union[str, datetime] | Omit = omit, created_before: Union[str, datetime] | Omit = omit, @@ -199,14 +204,15 @@ async def list_usage( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BillingListUsageResponse: """ - List session usage with cursor pagination. + List session usage by default, or include warm pool compute with the type filter. Uses cursor pagination. Args: cursor: Continuation cursor from the previous response nextCursor. Omit for the first page; null nextCursor means there are no more pages. limit: Maximum number of items to return in one page. Use nextCursor from the response to fetch more items. + type: Usage types to include. Defaults to sessions for backwards compatibility. session_id: Filter billing usage to this session. - created_after: Only sessions created at or after this ISO 8601 timestamp. - created_before: Only sessions created before this ISO 8601 timestamp. + created_after: Include sessions created or warm pool runtime at or after this ISO 8601 timestamp. + created_before: Include sessions created or warm pool runtime before this ISO 8601 timestamp. created_by: Filter by creator IDs, supplied as a comma-separated list. models: Filter by model names, supplied as a comma-separated list. extra_headers: Send extra headers with the request. @@ -235,6 +241,7 @@ async def list_usage( { "cursor": cursor, "limit": limit, + "type": type, "session_id": session_id, "created_after": created_after, "created_before": created_before, diff --git a/src/tembo/resources/organizations/subscriptions.py b/src/tembo/resources/organizations/subscriptions.py index ebde8cc1..4e952a8d 100644 --- a/src/tembo/resources/organizations/subscriptions.py +++ b/src/tembo/resources/organizations/subscriptions.py @@ -4,10 +4,8 @@ import httpx -from typing_extensions import Literal - from ..._types import Body, Query, Headers, NotGiven, not_given -from ..._utils import path_template, maybe_transform, async_maybe_transform +from ..._utils import path_template from ..._compat import cached_property from ..._resource import SyncAPIResource, AsyncAPIResource from ..._response import ( @@ -18,8 +16,6 @@ ) from ..._base_client import make_request_options from ...types.organizations.subscription_retrieve_response import SubscriptionRetrieveResponse -from ...types.organizations.subscription_reset_response import SubscriptionResetResponse -from ...types.organizations import subscription_reset_params __all__ = ["SubscriptionsResource", "AsyncSubscriptionsResource"] @@ -74,62 +70,6 @@ def retrieve( cast_to=SubscriptionRetrieveResponse, ) - def reset( - self, - organization_id: str, - *, - idempotency_key: str, - provider: Literal["chatgpt"], - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResetResponse: - """ - Redeem an earned ChatGPT rate-limit reset. - - Args: - organization_id: Path parameter. - idempotency_key: Unique UUID for this reset attempt. Reuse the same UUID when retrying to avoid redeeming another reset credit. - provider: Subscription provider whose rate-limit reset credit to redeem. Currently only chatgpt is supported. - extra_headers: Send extra headers with the request. - extra_query: Send extra query parameters with the request. - extra_body: Send extra JSON properties with the request. - timeout: Override the client-level default timeout for this request, in seconds. - - Returns: - SubscriptionResetResponse: Reset organization subscription usage - - Example: - ```python - subscription = client.organizations.subscriptions.reset( - organization_id="organizationId", - idempotency_key="7c9e6679-7425-40de-944b-e07fc1f90ae7", - provider="chatgpt", - ) - ``` - """ - if organization_id is None or (isinstance(organization_id, str) and not organization_id): - raise ValueError(f"Expected a non-empty value for `organization_id` but received {organization_id!r}") - return self._post( - path_template( - "/v1/organizations/{organizationId}/subscriptions/reset", **{"organizationId": organization_id} - ), - body=maybe_transform( - { - "idempotency_key": idempotency_key, - "provider": provider, - }, - subscription_reset_params.SubscriptionResetParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=SubscriptionResetResponse, - ) - class AsyncSubscriptionsResource(AsyncAPIResource): @cached_property @@ -181,62 +121,6 @@ async def retrieve( cast_to=SubscriptionRetrieveResponse, ) - async def reset( - self, - organization_id: str, - *, - idempotency_key: str, - provider: Literal["chatgpt"], - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResetResponse: - """ - Redeem an earned ChatGPT rate-limit reset. - - Args: - organization_id: Path parameter. - idempotency_key: Unique UUID for this reset attempt. Reuse the same UUID when retrying to avoid redeeming another reset credit. - provider: Subscription provider whose rate-limit reset credit to redeem. Currently only chatgpt is supported. - extra_headers: Send extra headers with the request. - extra_query: Send extra query parameters with the request. - extra_body: Send extra JSON properties with the request. - timeout: Override the client-level default timeout for this request, in seconds. - - Returns: - SubscriptionResetResponse: Reset organization subscription usage - - Example: - ```python - subscription = await client.organizations.subscriptions.reset( - organization_id="organizationId", - idempotency_key="7c9e6679-7425-40de-944b-e07fc1f90ae7", - provider="chatgpt", - ) - ``` - """ - if organization_id is None or (isinstance(organization_id, str) and not organization_id): - raise ValueError(f"Expected a non-empty value for `organization_id` but received {organization_id!r}") - return await self._post( - path_template( - "/v1/organizations/{organizationId}/subscriptions/reset", **{"organizationId": organization_id} - ), - body=await async_maybe_transform( - { - "idempotency_key": idempotency_key, - "provider": provider, - }, - subscription_reset_params.SubscriptionResetParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=SubscriptionResetResponse, - ) - class SubscriptionsResourceWithRawResponse: def __init__(self, subscriptions: SubscriptionsResource) -> None: @@ -245,9 +129,6 @@ def __init__(self, subscriptions: SubscriptionsResource) -> None: self.retrieve = to_raw_response_wrapper( subscriptions.retrieve, ) - self.reset = to_raw_response_wrapper( - subscriptions.reset, - ) class AsyncSubscriptionsResourceWithRawResponse: @@ -257,9 +138,6 @@ def __init__(self, subscriptions: AsyncSubscriptionsResource) -> None: self.retrieve = async_to_raw_response_wrapper( subscriptions.retrieve, ) - self.reset = async_to_raw_response_wrapper( - subscriptions.reset, - ) class SubscriptionsResourceWithStreamingResponse: @@ -269,9 +147,6 @@ def __init__(self, subscriptions: SubscriptionsResource) -> None: self.retrieve = to_streamed_response_wrapper( subscriptions.retrieve, ) - self.reset = to_streamed_response_wrapper( - subscriptions.reset, - ) class AsyncSubscriptionsResourceWithStreamingResponse: @@ -281,6 +156,3 @@ def __init__(self, subscriptions: AsyncSubscriptionsResource) -> None: self.retrieve = async_to_streamed_response_wrapper( subscriptions.retrieve, ) - self.reset = async_to_streamed_response_wrapper( - subscriptions.reset, - ) diff --git a/src/tembo/resources/projects/projects.py b/src/tembo/resources/projects/projects.py index d955d457..eecb23b2 100644 --- a/src/tembo/resources/projects/projects.py +++ b/src/tembo/resources/projects/projects.py @@ -193,8 +193,6 @@ def create( self, *, description: Optional[str] | Omit = omit, - include_deps: bool | Omit = omit, - include_skills: bool | Omit = omit, name: str, setup_script: Optional[str] | Omit = omit, code_repository_ids: Optional[SequenceNotStr[str]] | Omit = omit, @@ -225,10 +223,13 @@ def create( "package", ] | Omit = omit, + include_deps: bool | Omit = omit, + include_skills: bool | Omit = omit, onboarding_default: bool | Omit = omit, run_now: bool | Omit = omit, schedule: project_create_params.Schedule | Omit = omit, - sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]], + sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] | Omit = omit, + resource_settings: project_create_params.ResourceSettings | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -241,18 +242,19 @@ def create( Args: description: Short project description, or null to clear it. - include_deps: Include project dependencies when building the environment. Defaults to true on creation. - include_skills: Include skills in the project environment. Defaults to true on creation. name: Project display name. setup_script: Setup script to run while building the environment, or null to clear it. code_repository_ids: Repository IDs included in the project environment. On update, replaces the repository selection. agent_instructions: Instructions supplied to agents using this project, or null to clear them. color: Project display color. icon: Project display icon. + include_deps: Deprecated and ignored. Project builds always install dependencies. + include_skills: Deprecated and ignored. Project builds always include skills. onboarding_default: Make this project the onboarding default for the organization. run_now: Queue initial snapshot builds immediately when a build host is available. Defaults to false. schedule: Recurring schedule for rebuilding the project environment. sizes: Workspace VM sizes to build for this project. + resource_settings: Body parameter. extra_headers: Send extra headers with the request. extra_query: Send extra query parameters with the request. extra_body: Send extra JSON properties with the request. @@ -265,7 +267,8 @@ def create( ```python project = client.projects.create( name="x", - sizes=["nano"], + sizes=["medium"], + resource_settings={"automaticSizing": False}, ) ``` """ @@ -274,18 +277,19 @@ def create( body=maybe_transform( { "description": description, - "include_deps": include_deps, - "include_skills": include_skills, "name": name, "setup_script": setup_script, "code_repository_ids": code_repository_ids, "agent_instructions": agent_instructions, "color": color, "icon": icon, + "include_deps": include_deps, + "include_skills": include_skills, "onboarding_default": onboarding_default, "run_now": run_now, "schedule": schedule, "sizes": sizes, + "resource_settings": resource_settings, }, project_create_params.ProjectCreateParams, ), @@ -341,8 +345,6 @@ def update( project_id: str, *, description: Optional[str] | Omit = omit, - include_deps: bool | Omit = omit, - include_skills: bool | Omit = omit, name: str | Omit = omit, setup_script: Optional[str] | Omit = omit, code_repository_ids: Optional[SequenceNotStr[str]] | Omit = omit, @@ -373,10 +375,14 @@ def update( "package", ] | Omit = omit, + include_deps: bool | Omit = omit, + include_skills: bool | Omit = omit, + resource_settings: project_update_params.ResourceSettings | Omit = omit, default_for_sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] | Omit = omit, environment_variables: Dict[str, str] | Omit = omit, schedule: project_update_params.Schedule | Omit = omit, sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] | Omit = omit, + warm_pool_schedule: Optional[project_update_params.WarmPoolSchedule] | Omit = omit, warm_pool_enabled: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -391,18 +397,20 @@ def update( Args: project_id: Path parameter. description: Short project description, or null to clear it. - include_deps: Include project dependencies when building the environment. Defaults to true on creation. - include_skills: Include skills in the project environment. Defaults to true on creation. name: Project display name. setup_script: Setup script to run while building the environment, or null to clear it. code_repository_ids: Repository IDs included in the project environment. On update, replaces the repository selection. agent_instructions: Instructions supplied to agents using this project, or null to clear them. color: Project display color. icon: Project display icon. + include_deps: Deprecated and ignored. Project builds always install dependencies. + include_skills: Deprecated and ignored. Project builds always include skills. + resource_settings: Body parameter. default_for_sizes: VM sizes for which this project is the organization default. An empty array removes its default assignments. environment_variables: Replace the complete environment-variable map. Use createProjectEnvironmentVariables to add or replace individual keys instead. schedule: Change the project build schedule, including enabling or pausing it. sizes: Replace the workspace VM sizes built for this project. + warm_pool_schedule: Weekly availability for prewarmed VMs. Null means always on; days use 0=Sunday. Overnight windows end the following day. warm_pool_enabled: Enable or disable prewarmed VMs for this project. extra_headers: Send extra headers with the request. extra_query: Send extra query parameters with the request. @@ -416,6 +424,7 @@ def update( ```python project = client.projects.update( project_id="projectId", + resource_settings={"automaticSizing": False}, ) ``` """ @@ -426,18 +435,20 @@ def update( body=maybe_transform( { "description": description, - "include_deps": include_deps, - "include_skills": include_skills, "name": name, "setup_script": setup_script, "code_repository_ids": code_repository_ids, "agent_instructions": agent_instructions, "color": color, "icon": icon, + "include_deps": include_deps, + "include_skills": include_skills, + "resource_settings": resource_settings, "default_for_sizes": default_for_sizes, "environment_variables": environment_variables, "schedule": schedule, "sizes": sizes, + "warm_pool_schedule": warm_pool_schedule, "warm_pool_enabled": warm_pool_enabled, }, project_update_params.ProjectUpdateParams, @@ -661,8 +672,6 @@ async def create( self, *, description: Optional[str] | Omit = omit, - include_deps: bool | Omit = omit, - include_skills: bool | Omit = omit, name: str, setup_script: Optional[str] | Omit = omit, code_repository_ids: Optional[SequenceNotStr[str]] | Omit = omit, @@ -693,10 +702,13 @@ async def create( "package", ] | Omit = omit, + include_deps: bool | Omit = omit, + include_skills: bool | Omit = omit, onboarding_default: bool | Omit = omit, run_now: bool | Omit = omit, schedule: project_create_params.Schedule | Omit = omit, - sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]], + sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] | Omit = omit, + resource_settings: project_create_params.ResourceSettings | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -709,18 +721,19 @@ async def create( Args: description: Short project description, or null to clear it. - include_deps: Include project dependencies when building the environment. Defaults to true on creation. - include_skills: Include skills in the project environment. Defaults to true on creation. name: Project display name. setup_script: Setup script to run while building the environment, or null to clear it. code_repository_ids: Repository IDs included in the project environment. On update, replaces the repository selection. agent_instructions: Instructions supplied to agents using this project, or null to clear them. color: Project display color. icon: Project display icon. + include_deps: Deprecated and ignored. Project builds always install dependencies. + include_skills: Deprecated and ignored. Project builds always include skills. onboarding_default: Make this project the onboarding default for the organization. run_now: Queue initial snapshot builds immediately when a build host is available. Defaults to false. schedule: Recurring schedule for rebuilding the project environment. sizes: Workspace VM sizes to build for this project. + resource_settings: Body parameter. extra_headers: Send extra headers with the request. extra_query: Send extra query parameters with the request. extra_body: Send extra JSON properties with the request. @@ -733,7 +746,8 @@ async def create( ```python project = await client.projects.create( name="x", - sizes=["nano"], + sizes=["medium"], + resource_settings={"automaticSizing": False}, ) ``` """ @@ -742,18 +756,19 @@ async def create( body=await async_maybe_transform( { "description": description, - "include_deps": include_deps, - "include_skills": include_skills, "name": name, "setup_script": setup_script, "code_repository_ids": code_repository_ids, "agent_instructions": agent_instructions, "color": color, "icon": icon, + "include_deps": include_deps, + "include_skills": include_skills, "onboarding_default": onboarding_default, "run_now": run_now, "schedule": schedule, "sizes": sizes, + "resource_settings": resource_settings, }, project_create_params.ProjectCreateParams, ), @@ -809,8 +824,6 @@ async def update( project_id: str, *, description: Optional[str] | Omit = omit, - include_deps: bool | Omit = omit, - include_skills: bool | Omit = omit, name: str | Omit = omit, setup_script: Optional[str] | Omit = omit, code_repository_ids: Optional[SequenceNotStr[str]] | Omit = omit, @@ -841,10 +854,14 @@ async def update( "package", ] | Omit = omit, + include_deps: bool | Omit = omit, + include_skills: bool | Omit = omit, + resource_settings: project_update_params.ResourceSettings | Omit = omit, default_for_sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] | Omit = omit, environment_variables: Dict[str, str] | Omit = omit, schedule: project_update_params.Schedule | Omit = omit, sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] | Omit = omit, + warm_pool_schedule: Optional[project_update_params.WarmPoolSchedule] | Omit = omit, warm_pool_enabled: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -859,18 +876,20 @@ async def update( Args: project_id: Path parameter. description: Short project description, or null to clear it. - include_deps: Include project dependencies when building the environment. Defaults to true on creation. - include_skills: Include skills in the project environment. Defaults to true on creation. name: Project display name. setup_script: Setup script to run while building the environment, or null to clear it. code_repository_ids: Repository IDs included in the project environment. On update, replaces the repository selection. agent_instructions: Instructions supplied to agents using this project, or null to clear them. color: Project display color. icon: Project display icon. + include_deps: Deprecated and ignored. Project builds always install dependencies. + include_skills: Deprecated and ignored. Project builds always include skills. + resource_settings: Body parameter. default_for_sizes: VM sizes for which this project is the organization default. An empty array removes its default assignments. environment_variables: Replace the complete environment-variable map. Use createProjectEnvironmentVariables to add or replace individual keys instead. schedule: Change the project build schedule, including enabling or pausing it. sizes: Replace the workspace VM sizes built for this project. + warm_pool_schedule: Weekly availability for prewarmed VMs. Null means always on; days use 0=Sunday. Overnight windows end the following day. warm_pool_enabled: Enable or disable prewarmed VMs for this project. extra_headers: Send extra headers with the request. extra_query: Send extra query parameters with the request. @@ -884,6 +903,7 @@ async def update( ```python project = await client.projects.update( project_id="projectId", + resource_settings={"automaticSizing": False}, ) ``` """ @@ -894,18 +914,20 @@ async def update( body=await async_maybe_transform( { "description": description, - "include_deps": include_deps, - "include_skills": include_skills, "name": name, "setup_script": setup_script, "code_repository_ids": code_repository_ids, "agent_instructions": agent_instructions, "color": color, "icon": icon, + "include_deps": include_deps, + "include_skills": include_skills, + "resource_settings": resource_settings, "default_for_sizes": default_for_sizes, "environment_variables": environment_variables, "schedule": schedule, "sizes": sizes, + "warm_pool_schedule": warm_pool_schedule, "warm_pool_enabled": warm_pool_enabled, }, project_update_params.ProjectUpdateParams, diff --git a/src/tembo/resources/sessions/sessions.py b/src/tembo/resources/sessions/sessions.py index 7b68cbe0..3656553c 100644 --- a/src/tembo/resources/sessions/sessions.py +++ b/src/tembo/resources/sessions/sessions.py @@ -236,6 +236,7 @@ def create( rich_content: session_create_params.RichContent | Omit = omit, pull_request_id: str | Omit = omit, queue_right_away: bool | Omit = omit, + automatic_sizing: bool | Omit = omit, session_mode: Literal["chat", "terminal"] | Omit = omit, startup_agent: Literal["claudeCode", "codex", "opencode", "pi", "amp", "cursor"] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -264,6 +265,7 @@ def create( rich_content: Optional rich-text representation of the initial task. Provide description separately. pull_request_id: Pull request to associate with the session. Requires richContent. queue_right_away: Whether to queue the initial task immediately instead of only creating the session. + automatic_sizing: Size the VM automatically. Only for sessions created without a project (projectId "tembo"). session_mode: Whether to create a chat session or a terminal session. startup_agent: Coding agent to start in a terminal session. extra_headers: Send extra headers with the request. @@ -307,6 +309,7 @@ def create( "rich_content": rich_content, "pull_request_id": pull_request_id, "queue_right_away": queue_right_away, + "automatic_sizing": automatic_sizing, "session_mode": session_mode, "startup_agent": startup_agent, }, @@ -363,6 +366,7 @@ def update( self, session_id: str, *, + memory_mb: int | Omit = omit, agent: Optional[str] | Omit = omit, agent_options: session_update_params.AgentOptions | Omit = omit, base_branch: Optional[str] | Omit = omit, @@ -386,10 +390,11 @@ def update( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SessionUpdateResponse: """ - Update a session: archive or restore it, set priority, rename it, change agent/model, switch between Build (normal) and Plan (planning) modes, configure its workspace and branches, or change visibility between private and visible to workspace (public). Archiving uses level=0; restoring archived sessions uses level=1 and does not restart work. Use pins to pin or unpin sessions. + Update a session: archive or restore it, set priority, rename it, change agent/model, switch between Build (normal) and Plan (planning) modes, configure its workspace and branches, or change visibility between private and visible to workspace (public). Archiving uses level=0; restoring archived sessions uses level=1 and does not restart work. Use pins to pin or unpin sessions. Submit memoryMb alone to request asynchronous memory growth for a running adaptive sandbox within project limits; sandbox metrics report progress. Args: session_id: Path parameter. + memory_mb: Request in-place memory growth for a running adaptive sandbox, within project limits. Submit separately from other session changes. Returns the session while the resize runs asynchronously; sandbox metrics report its progress. agent: Change the agent and model key. Null clears the session override. agent_options: Change agent-specific runtime options, such as reasoning effort. base_branch: Change the starting Git branch. Null clears the session override. @@ -425,6 +430,7 @@ def update( path_template("/v1/sessions/{sessionId}", **{"sessionId": session_id}), body=maybe_transform( { + "memory_mb": memory_mb, "agent": agent, "agent_options": agent_options, "base_branch": base_branch, @@ -806,6 +812,7 @@ async def create( rich_content: session_create_params.RichContent | Omit = omit, pull_request_id: str | Omit = omit, queue_right_away: bool | Omit = omit, + automatic_sizing: bool | Omit = omit, session_mode: Literal["chat", "terminal"] | Omit = omit, startup_agent: Literal["claudeCode", "codex", "opencode", "pi", "amp", "cursor"] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -834,6 +841,7 @@ async def create( rich_content: Optional rich-text representation of the initial task. Provide description separately. pull_request_id: Pull request to associate with the session. Requires richContent. queue_right_away: Whether to queue the initial task immediately instead of only creating the session. + automatic_sizing: Size the VM automatically. Only for sessions created without a project (projectId "tembo"). session_mode: Whether to create a chat session or a terminal session. startup_agent: Coding agent to start in a terminal session. extra_headers: Send extra headers with the request. @@ -877,6 +885,7 @@ async def create( "rich_content": rich_content, "pull_request_id": pull_request_id, "queue_right_away": queue_right_away, + "automatic_sizing": automatic_sizing, "session_mode": session_mode, "startup_agent": startup_agent, }, @@ -933,6 +942,7 @@ async def update( self, session_id: str, *, + memory_mb: int | Omit = omit, agent: Optional[str] | Omit = omit, agent_options: session_update_params.AgentOptions | Omit = omit, base_branch: Optional[str] | Omit = omit, @@ -956,10 +966,11 @@ async def update( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SessionUpdateResponse: """ - Update a session: archive or restore it, set priority, rename it, change agent/model, switch between Build (normal) and Plan (planning) modes, configure its workspace and branches, or change visibility between private and visible to workspace (public). Archiving uses level=0; restoring archived sessions uses level=1 and does not restart work. Use pins to pin or unpin sessions. + Update a session: archive or restore it, set priority, rename it, change agent/model, switch between Build (normal) and Plan (planning) modes, configure its workspace and branches, or change visibility between private and visible to workspace (public). Archiving uses level=0; restoring archived sessions uses level=1 and does not restart work. Use pins to pin or unpin sessions. Submit memoryMb alone to request asynchronous memory growth for a running adaptive sandbox within project limits; sandbox metrics report progress. Args: session_id: Path parameter. + memory_mb: Request in-place memory growth for a running adaptive sandbox, within project limits. Submit separately from other session changes. Returns the session while the resize runs asynchronously; sandbox metrics report its progress. agent: Change the agent and model key. Null clears the session override. agent_options: Change agent-specific runtime options, such as reasoning effort. base_branch: Change the starting Git branch. Null clears the session override. @@ -995,6 +1006,7 @@ async def update( path_template("/v1/sessions/{sessionId}", **{"sessionId": session_id}), body=await async_maybe_transform( { + "memory_mb": memory_mb, "agent": agent, "agent_options": agent_options, "base_branch": base_branch, diff --git a/src/tembo/resources/users/subscriptions.py b/src/tembo/resources/users/subscriptions.py index b4f29da5..863f027f 100644 --- a/src/tembo/resources/users/subscriptions.py +++ b/src/tembo/resources/users/subscriptions.py @@ -4,10 +4,8 @@ import httpx -from typing_extensions import Literal - from ..._types import Body, Query, Headers, NotGiven, not_given -from ..._utils import path_template, maybe_transform, async_maybe_transform +from ..._utils import path_template from ..._compat import cached_property from ..._resource import SyncAPIResource, AsyncAPIResource from ..._response import ( @@ -18,8 +16,6 @@ ) from ..._base_client import make_request_options from ...types.users.subscription_retrieve_response import SubscriptionRetrieveResponse -from ...types.users.subscription_reset_response import SubscriptionResetResponse -from ...types.users import subscription_reset_params __all__ = ["SubscriptionsResource", "AsyncSubscriptionsResource"] @@ -74,60 +70,6 @@ def retrieve( cast_to=SubscriptionRetrieveResponse, ) - def reset( - self, - user_id: str, - *, - idempotency_key: str, - provider: Literal["chatgpt"], - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResetResponse: - """ - Redeem an earned ChatGPT rate-limit reset. - - Args: - user_id: Path parameter. - idempotency_key: Unique UUID for this reset attempt. Reuse the same UUID when retrying to avoid redeeming another reset credit. - provider: Subscription provider whose rate-limit reset credit to redeem. Currently only chatgpt is supported. - extra_headers: Send extra headers with the request. - extra_query: Send extra query parameters with the request. - extra_body: Send extra JSON properties with the request. - timeout: Override the client-level default timeout for this request, in seconds. - - Returns: - SubscriptionResetResponse: Reset user subscription usage - - Example: - ```python - subscription = client.users.subscriptions.reset( - user_id="userId", - idempotency_key="7c9e6679-7425-40de-944b-e07fc1f90ae7", - provider="chatgpt", - ) - ``` - """ - if user_id is None or (isinstance(user_id, str) and not user_id): - raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") - return self._post( - path_template("/v1/users/{userId}/subscriptions/reset", **{"userId": user_id}), - body=maybe_transform( - { - "idempotency_key": idempotency_key, - "provider": provider, - }, - subscription_reset_params.SubscriptionResetParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=SubscriptionResetResponse, - ) - class AsyncSubscriptionsResource(AsyncAPIResource): @cached_property @@ -179,60 +121,6 @@ async def retrieve( cast_to=SubscriptionRetrieveResponse, ) - async def reset( - self, - user_id: str, - *, - idempotency_key: str, - provider: Literal["chatgpt"], - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResetResponse: - """ - Redeem an earned ChatGPT rate-limit reset. - - Args: - user_id: Path parameter. - idempotency_key: Unique UUID for this reset attempt. Reuse the same UUID when retrying to avoid redeeming another reset credit. - provider: Subscription provider whose rate-limit reset credit to redeem. Currently only chatgpt is supported. - extra_headers: Send extra headers with the request. - extra_query: Send extra query parameters with the request. - extra_body: Send extra JSON properties with the request. - timeout: Override the client-level default timeout for this request, in seconds. - - Returns: - SubscriptionResetResponse: Reset user subscription usage - - Example: - ```python - subscription = await client.users.subscriptions.reset( - user_id="userId", - idempotency_key="7c9e6679-7425-40de-944b-e07fc1f90ae7", - provider="chatgpt", - ) - ``` - """ - if user_id is None or (isinstance(user_id, str) and not user_id): - raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") - return await self._post( - path_template("/v1/users/{userId}/subscriptions/reset", **{"userId": user_id}), - body=await async_maybe_transform( - { - "idempotency_key": idempotency_key, - "provider": provider, - }, - subscription_reset_params.SubscriptionResetParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=SubscriptionResetResponse, - ) - class SubscriptionsResourceWithRawResponse: def __init__(self, subscriptions: SubscriptionsResource) -> None: @@ -241,9 +129,6 @@ def __init__(self, subscriptions: SubscriptionsResource) -> None: self.retrieve = to_raw_response_wrapper( subscriptions.retrieve, ) - self.reset = to_raw_response_wrapper( - subscriptions.reset, - ) class AsyncSubscriptionsResourceWithRawResponse: @@ -253,9 +138,6 @@ def __init__(self, subscriptions: AsyncSubscriptionsResource) -> None: self.retrieve = async_to_raw_response_wrapper( subscriptions.retrieve, ) - self.reset = async_to_raw_response_wrapper( - subscriptions.reset, - ) class SubscriptionsResourceWithStreamingResponse: @@ -265,9 +147,6 @@ def __init__(self, subscriptions: SubscriptionsResource) -> None: self.retrieve = to_streamed_response_wrapper( subscriptions.retrieve, ) - self.reset = to_streamed_response_wrapper( - subscriptions.reset, - ) class AsyncSubscriptionsResourceWithStreamingResponse: @@ -277,6 +156,3 @@ def __init__(self, subscriptions: AsyncSubscriptionsResource) -> None: self.retrieve = async_to_streamed_response_wrapper( subscriptions.retrieve, ) - self.reset = async_to_streamed_response_wrapper( - subscriptions.reset, - ) diff --git a/src/tembo/resources/users/users.py b/src/tembo/resources/users/users.py index 65df56c6..fd1d55d1 100644 --- a/src/tembo/resources/users/users.py +++ b/src/tembo/resources/users/users.py @@ -4,8 +4,8 @@ import httpx -from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -from ..._utils import path_template, maybe_transform, async_maybe_transform +from ..._types import Body, Query, Headers, NotGiven, not_given +from ..._utils import path_template from ..._compat import cached_property from ..._resource import SyncAPIResource, AsyncAPIResource from ..._response import ( @@ -49,8 +49,6 @@ ) from ...types.user_me_response import UserMeResponse from ...types.user_retrieve_response import UserRetrieveResponse -from ...types.user_delete_response import UserDeleteResponse -from ...types import user_delete_params __all__ = ["UsersResource", "AsyncUsersResource"] @@ -156,53 +154,6 @@ def retrieve( cast_to=UserRetrieveResponse, ) - def delete( - self, - user_id: str, - *, - deletion_questionnaire: user_delete_params.DeletionQuestionnaire | Omit = omit, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> UserDeleteResponse: - """ - Queue permanent deletion of your user account. - - Args: - user_id: Path parameter. - deletion_questionnaire: Optional account-deletion feedback. Account deletion is queued regardless of whether feedback is supplied. - extra_headers: Send extra headers with the request. - extra_query: Send extra query parameters with the request. - extra_body: Send extra JSON properties with the request. - timeout: Override the client-level default timeout for this request, in seconds. - - Returns: - UserDeleteResponse: Delete a user - - Example: - ```python - user = client.users.delete( - user_id="userId", - ) - ``` - """ - if user_id is None or (isinstance(user_id, str) and not user_id): - raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") - return self._delete( - path_template("/v1/users/{userId}", **{"userId": user_id}), - body=maybe_transform( - {"deletion_questionnaire": deletion_questionnaire}, - user_delete_params.UserDeleteParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=UserDeleteResponse, - ) - class AsyncUsersResource(AsyncAPIResource): @cached_property @@ -305,53 +256,6 @@ async def retrieve( cast_to=UserRetrieveResponse, ) - async def delete( - self, - user_id: str, - *, - deletion_questionnaire: user_delete_params.DeletionQuestionnaire | Omit = omit, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> UserDeleteResponse: - """ - Queue permanent deletion of your user account. - - Args: - user_id: Path parameter. - deletion_questionnaire: Optional account-deletion feedback. Account deletion is queued regardless of whether feedback is supplied. - extra_headers: Send extra headers with the request. - extra_query: Send extra query parameters with the request. - extra_body: Send extra JSON properties with the request. - timeout: Override the client-level default timeout for this request, in seconds. - - Returns: - UserDeleteResponse: Delete a user - - Example: - ```python - user = await client.users.delete( - user_id="userId", - ) - ``` - """ - if user_id is None or (isinstance(user_id, str) and not user_id): - raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") - return await self._delete( - path_template("/v1/users/{userId}", **{"userId": user_id}), - body=await async_maybe_transform( - {"deletion_questionnaire": deletion_questionnaire}, - user_delete_params.UserDeleteParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=UserDeleteResponse, - ) - class UsersResourceWithRawResponse: def __init__(self, users: UsersResource) -> None: @@ -363,9 +267,6 @@ def __init__(self, users: UsersResource) -> None: self.retrieve = to_raw_response_wrapper( users.retrieve, ) - self.delete = to_raw_response_wrapper( - users.delete, - ) @cached_property def settings(self) -> SettingsResourceWithRawResponse: @@ -394,9 +295,6 @@ def __init__(self, users: AsyncUsersResource) -> None: self.retrieve = async_to_raw_response_wrapper( users.retrieve, ) - self.delete = async_to_raw_response_wrapper( - users.delete, - ) @cached_property def settings(self) -> AsyncSettingsResourceWithRawResponse: @@ -425,9 +323,6 @@ def __init__(self, users: UsersResource) -> None: self.retrieve = to_streamed_response_wrapper( users.retrieve, ) - self.delete = to_streamed_response_wrapper( - users.delete, - ) @cached_property def settings(self) -> SettingsResourceWithStreamingResponse: @@ -456,9 +351,6 @@ def __init__(self, users: AsyncUsersResource) -> None: self.retrieve = async_to_streamed_response_wrapper( users.retrieve, ) - self.delete = async_to_streamed_response_wrapper( - users.delete, - ) @cached_property def settings(self) -> AsyncSettingsResourceWithStreamingResponse: diff --git a/src/tembo/types/__init__.py b/src/tembo/types/__init__.py index b2651846..ecc00790 100644 --- a/src/tembo/types/__init__.py +++ b/src/tembo/types/__init__.py @@ -107,8 +107,6 @@ from .runtime_list_params import RuntimeListParams as RuntimeListParams from .user_me_response import UserMeResponse as UserMeResponse from .user_retrieve_response import UserRetrieveResponse as UserRetrieveResponse -from .user_delete_response import UserDeleteResponse as UserDeleteResponse -from .user_delete_params import UserDeleteParams as UserDeleteParams from .session_list_response import SessionListResponse as SessionListResponse from .session_list_params import SessionListParams as SessionListParams from .session_create_response import SessionCreateResponse as SessionCreateResponse diff --git a/src/tembo/types/artifact_list_response.py b/src/tembo/types/artifact_list_response.py index 355158ae..7f2827e1 100644 --- a/src/tembo/types/artifact_list_response.py +++ b/src/tembo/types/artifact_list_response.py @@ -34,6 +34,8 @@ class Item(BaseModel): asset_id: Optional[str] = FieldInfo(alias="assetId", default=None) + asset_url: Optional[str] = FieldInfo(alias="assetUrl", default=None) + category: Optional[ Literal[ "code_walkthrough", diff --git a/src/tembo/types/billing_list_usage_params.py b/src/tembo/types/billing_list_usage_params.py index 60cf6b3f..a3c9ed80 100644 --- a/src/tembo/types/billing_list_usage_params.py +++ b/src/tembo/types/billing_list_usage_params.py @@ -4,7 +4,7 @@ from typing import Union from datetime import datetime -from typing_extensions import Annotated, TypedDict +from typing_extensions import Annotated, Literal, TypedDict from .._types import SequenceNotStr from .._utils import PropertyInfo @@ -19,14 +19,17 @@ class BillingListUsageParams(TypedDict, total=False): limit: int """Maximum number of items to return in one page. Use nextCursor from the response to fetch more items.""" + type: Literal["all", "sessions", "warm-pool"] + """Usage types to include. Defaults to sessions for backwards compatibility.""" + session_id: Annotated[str, PropertyInfo(alias="sessionId")] """Filter billing usage to this session.""" created_after: Annotated[Union[str, datetime], PropertyInfo(alias="createdAfter", format="iso8601")] - """Only sessions created at or after this ISO 8601 timestamp.""" + """Include sessions created or warm pool runtime at or after this ISO 8601 timestamp.""" created_before: Annotated[Union[str, datetime], PropertyInfo(alias="createdBefore", format="iso8601")] - """Only sessions created before this ISO 8601 timestamp.""" + """Include sessions created or warm pool runtime before this ISO 8601 timestamp.""" created_by: Annotated[SequenceNotStr[str], PropertyInfo(alias="createdBy")] """Filter by creator IDs, supplied as a comma-separated list.""" diff --git a/src/tembo/types/billing_list_usage_response.py b/src/tembo/types/billing_list_usage_response.py index b5530cec..a4c6068c 100644 --- a/src/tembo/types/billing_list_usage_response.py +++ b/src/tembo/types/billing_list_usage_response.py @@ -2,17 +2,38 @@ from __future__ import annotations -from typing import List, Optional +from typing import List, Optional, Union from datetime import datetime +from typing_extensions import Literal, TypeAlias from pydantic import Field as FieldInfo from .._models import BaseModel -__all__ = ["BillingListUsageResponse", "Item"] +__all__ = ["BillingListUsageResponse", "Item", "Item2", "Item3"] -class Item(BaseModel): +class Item3(BaseModel): + id: str + + virtual_machine_id: str = FieldInfo(alias="virtualMachineId") + + started_at: datetime = FieldInfo(alias="startedAt") + + ended_at: Optional[datetime] = FieldInfo(alias="endedAt", default=None) + + runtime_ms: float = FieldInfo(alias="runtimeMs") + + cpu: float + + memory_mb: float = FieldInfo(alias="memoryMb") + + compute_credits: float = FieldInfo(alias="computeCredits") + + type: Literal["warm-pool"] + + +class Item2(BaseModel): agent: Optional[str] = None id: str @@ -29,6 +50,11 @@ class Item(BaseModel): total_credits: float = FieldInfo(alias="totalCredits") + type: Literal["session"] + + +Item: TypeAlias = Union[Item2, Item3] + class BillingListUsageResponse(BaseModel): items: List[Item] diff --git a/src/tembo/types/organizations/__init__.py b/src/tembo/types/organizations/__init__.py index e9b62ce4..54783950 100644 --- a/src/tembo/types/organizations/__init__.py +++ b/src/tembo/types/organizations/__init__.py @@ -26,5 +26,3 @@ ) from .setting_validate_credentials_params import SettingValidateCredentialsParams as SettingValidateCredentialsParams from .subscription_retrieve_response import SubscriptionRetrieveResponse as SubscriptionRetrieveResponse -from .subscription_reset_response import SubscriptionResetResponse as SubscriptionResetResponse -from .subscription_reset_params import SubscriptionResetParams as SubscriptionResetParams diff --git a/src/tembo/types/organizations/subscription_reset_params.py b/src/tembo/types/organizations/subscription_reset_params.py deleted file mode 100644 index 4713c79a..00000000 --- a/src/tembo/types/organizations/subscription_reset_params.py +++ /dev/null @@ -1,17 +0,0 @@ -# File generated from our OpenAPI spec by Scalar. See README.md for details. - -from __future__ import annotations - -from typing_extensions import Annotated, Literal, Required, TypedDict - -from ..._utils import PropertyInfo - -__all__ = ["SubscriptionResetParams"] - - -class SubscriptionResetParams(TypedDict, total=False): - idempotency_key: Required[Annotated[str, PropertyInfo(alias="idempotencyKey")]] - """Unique UUID for this reset attempt. Reuse the same UUID when retrying to avoid redeeming another reset credit.""" - - provider: Required[Literal["chatgpt"]] - """Subscription provider whose rate-limit reset credit to redeem. Currently only chatgpt is supported.""" diff --git a/src/tembo/types/organizations/subscription_reset_response.py b/src/tembo/types/organizations/subscription_reset_response.py deleted file mode 100644 index 89124959..00000000 --- a/src/tembo/types/organizations/subscription_reset_response.py +++ /dev/null @@ -1,11 +0,0 @@ -# File generated from our OpenAPI spec by Scalar. See README.md for details. - -from typing_extensions import Literal - -from ..._models import BaseModel - -__all__ = ["SubscriptionResetResponse"] - - -class SubscriptionResetResponse(BaseModel): - outcome: Literal["reset", "alreadyRedeemed", "nothingToReset", "noCredit"] diff --git a/src/tembo/types/project_create_params.py b/src/tembo/types/project_create_params.py index 1caba7ad..75a5f407 100644 --- a/src/tembo/types/project_create_params.py +++ b/src/tembo/types/project_create_params.py @@ -2,25 +2,27 @@ from __future__ import annotations -from typing import List, Optional -from typing_extensions import Annotated, Literal, Required, TypedDict +from typing import List, Optional, Union +from typing_extensions import Annotated, Literal, Required, TypeAlias, TypedDict from .._types import SequenceNotStr from .._utils import PropertyInfo -__all__ = ["ProjectCreateParams", "Schedule"] +__all__ = [ + "ProjectCreateParams", + "Schedule", + "ResourceSettings", + "ResourceSettings2", + "ResourceSettings2Allocation", + "ResourceSettings3", + "ResourceSettings3Allocation", +] class ProjectCreateParams(TypedDict, total=False): description: Optional[str] """Short project description, or null to clear it.""" - include_deps: Annotated[bool, PropertyInfo(alias="includeDeps")] - """Include project dependencies when building the environment. Defaults to true on creation.""" - - include_skills: Annotated[bool, PropertyInfo(alias="includeSkills")] - """Include skills in the project environment. Defaults to true on creation.""" - name: Required[str] """Project display name.""" @@ -62,6 +64,12 @@ class ProjectCreateParams(TypedDict, total=False): ] """Project display icon.""" + include_deps: Annotated[bool, PropertyInfo(alias="includeDeps")] + """Deprecated and ignored. Project builds always install dependencies.""" + + include_skills: Annotated[bool, PropertyInfo(alias="includeSkills")] + """Deprecated and ignored. Project builds always include skills.""" + onboarding_default: Annotated[bool, PropertyInfo(alias="onboardingDefault")] """Make this project the onboarding default for the organization.""" @@ -71,9 +79,50 @@ class ProjectCreateParams(TypedDict, total=False): schedule: Schedule """Recurring schedule for rebuilding the project environment.""" - sizes: Required[List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]]] + sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] """Workspace VM sizes to build for this project.""" + resource_settings: Annotated[ResourceSettings, PropertyInfo(alias="resourceSettings")] + + +class ResourceSettings3Allocation(TypedDict, total=False): + cpu_min: Annotated[int, PropertyInfo(alias="cpuMin")] + + cpu_max: Annotated[int, PropertyInfo(alias="cpuMax")] + + memory_min_mb: Required[Annotated[int, PropertyInfo(alias="memoryMinMb")]] + + memory_max_mb: Required[Annotated[int, PropertyInfo(alias="memoryMaxMb")]] + + disk_size_gb: Required[Annotated[int, PropertyInfo(alias="diskSizeGb")]] + + +class ResourceSettings3(TypedDict, total=False): + automatic_sizing: Required[Annotated[Literal[False], PropertyInfo(alias="automaticSizing")]] + + allocation: ResourceSettings3Allocation + + +class ResourceSettings2Allocation(TypedDict, total=False): + cpu_min: Annotated[int, PropertyInfo(alias="cpuMin")] + + cpu_max: Annotated[int, PropertyInfo(alias="cpuMax")] + + memory_min_mb: Required[Annotated[int, PropertyInfo(alias="memoryMinMb")]] + + memory_max_mb: Required[Annotated[int, PropertyInfo(alias="memoryMaxMb")]] + + disk_size_gb: Required[Annotated[int, PropertyInfo(alias="diskSizeGb")]] + + +class ResourceSettings2(TypedDict, total=False): + automatic_sizing: Required[Annotated[Literal[True], PropertyInfo(alias="automaticSizing")]] + + allocation: ResourceSettings2Allocation + + +ResourceSettings: TypeAlias = Union[ResourceSettings2, ResourceSettings3] + class Schedule(TypedDict, total=False): cron: Required[str] diff --git a/src/tembo/types/project_create_response.py b/src/tembo/types/project_create_response.py index 6cf695b3..34a67ad2 100644 --- a/src/tembo/types/project_create_response.py +++ b/src/tembo/types/project_create_response.py @@ -2,15 +2,74 @@ from __future__ import annotations -from typing import List, Optional +from typing import List, Optional, Union from datetime import datetime -from typing_extensions import Literal +from typing_extensions import Literal, TypeAlias from pydantic import Field as FieldInfo from .._models import BaseModel -__all__ = ["ProjectCreateResponse", "Project", "ProjectActiveSnapshot"] +__all__ = [ + "ProjectCreateResponse", + "Project", + "ProjectActiveSnapshot", + "ProjectResourceSettings", + "ProjectResourceSettings2", + "ProjectResourceSettings2Allocation", + "ProjectResourceSettings3", + "ProjectResourceSettings3Allocation", + "ProjectWarmPoolSchedule", +] + + +class ProjectWarmPoolSchedule(BaseModel): + timezone: str + + days: List[int] + + start_time: str = FieldInfo(alias="startTime") + + end_time: str = FieldInfo(alias="endTime") + + +class ProjectResourceSettings3Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ProjectResourceSettings3(BaseModel): + automatic_sizing: Literal[False] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ProjectResourceSettings3Allocation] = None + + +class ProjectResourceSettings2Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ProjectResourceSettings2(BaseModel): + automatic_sizing: Literal[True] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ProjectResourceSettings2Allocation] = None + + +ProjectResourceSettings: TypeAlias = Union[ProjectResourceSettings2, ProjectResourceSettings3] class ProjectActiveSnapshot(BaseModel): @@ -28,10 +87,6 @@ class Project(BaseModel): id: str - include_deps: bool = FieldInfo(alias="includeDeps") - - include_skills: bool = FieldInfo(alias="includeSkills") - name: str setup_script: Optional[str] = FieldInfo(alias="setupScript", default=None) @@ -40,6 +95,8 @@ class Project(BaseModel): active_snapshots: List[ProjectActiveSnapshot] = FieldInfo(alias="activeSnapshots") + resource_settings: Optional[ProjectResourceSettings] = FieldInfo(alias="resourceSettings", default=None) + agent_instructions: Optional[str] = FieldInfo(alias="agentInstructions", default=None) code_repository_ids: Optional[List[str]] = FieldInfo(alias="codeRepositoryIds", default=None) @@ -82,6 +139,8 @@ class Project(BaseModel): warm_pool_enabled: bool = FieldInfo(alias="warmPoolEnabled") + warm_pool_schedule: Optional[ProjectWarmPoolSchedule] = FieldInfo(alias="warmPoolSchedule", default=None) + class ProjectCreateResponse(BaseModel): job_ids: List[str] = FieldInfo(alias="jobIds") diff --git a/src/tembo/types/project_duplicate_response.py b/src/tembo/types/project_duplicate_response.py index 84fa7dae..292f3c43 100644 --- a/src/tembo/types/project_duplicate_response.py +++ b/src/tembo/types/project_duplicate_response.py @@ -2,15 +2,74 @@ from __future__ import annotations -from typing import List, Optional +from typing import List, Optional, Union from datetime import datetime -from typing_extensions import Literal +from typing_extensions import Literal, TypeAlias from pydantic import Field as FieldInfo from .._models import BaseModel -__all__ = ["ProjectDuplicateResponse", "Project", "ProjectActiveSnapshot"] +__all__ = [ + "ProjectDuplicateResponse", + "Project", + "ProjectActiveSnapshot", + "ProjectResourceSettings", + "ProjectResourceSettings2", + "ProjectResourceSettings2Allocation", + "ProjectResourceSettings3", + "ProjectResourceSettings3Allocation", + "ProjectWarmPoolSchedule", +] + + +class ProjectWarmPoolSchedule(BaseModel): + timezone: str + + days: List[int] + + start_time: str = FieldInfo(alias="startTime") + + end_time: str = FieldInfo(alias="endTime") + + +class ProjectResourceSettings3Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ProjectResourceSettings3(BaseModel): + automatic_sizing: Literal[False] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ProjectResourceSettings3Allocation] = None + + +class ProjectResourceSettings2Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ProjectResourceSettings2(BaseModel): + automatic_sizing: Literal[True] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ProjectResourceSettings2Allocation] = None + + +ProjectResourceSettings: TypeAlias = Union[ProjectResourceSettings2, ProjectResourceSettings3] class ProjectActiveSnapshot(BaseModel): @@ -28,10 +87,6 @@ class Project(BaseModel): id: str - include_deps: bool = FieldInfo(alias="includeDeps") - - include_skills: bool = FieldInfo(alias="includeSkills") - name: str setup_script: Optional[str] = FieldInfo(alias="setupScript", default=None) @@ -40,6 +95,8 @@ class Project(BaseModel): active_snapshots: List[ProjectActiveSnapshot] = FieldInfo(alias="activeSnapshots") + resource_settings: Optional[ProjectResourceSettings] = FieldInfo(alias="resourceSettings", default=None) + agent_instructions: Optional[str] = FieldInfo(alias="agentInstructions", default=None) code_repository_ids: Optional[List[str]] = FieldInfo(alias="codeRepositoryIds", default=None) @@ -82,6 +139,8 @@ class Project(BaseModel): warm_pool_enabled: bool = FieldInfo(alias="warmPoolEnabled") + warm_pool_schedule: Optional[ProjectWarmPoolSchedule] = FieldInfo(alias="warmPoolSchedule", default=None) + class ProjectDuplicateResponse(BaseModel): job_ids: List[str] = FieldInfo(alias="jobIds") diff --git a/src/tembo/types/project_list_response.py b/src/tembo/types/project_list_response.py index 5767bc12..d4b53b14 100644 --- a/src/tembo/types/project_list_response.py +++ b/src/tembo/types/project_list_response.py @@ -2,15 +2,74 @@ from __future__ import annotations -from typing import List, Optional +from typing import List, Optional, Union from datetime import datetime -from typing_extensions import Literal +from typing_extensions import Literal, TypeAlias from pydantic import Field as FieldInfo from .._models import BaseModel -__all__ = ["ProjectListResponse", "Item", "ItemActiveSnapshot"] +__all__ = [ + "ProjectListResponse", + "Item", + "ItemActiveSnapshot", + "ItemResourceSettings", + "ItemResourceSettings2", + "ItemResourceSettings2Allocation", + "ItemResourceSettings3", + "ItemResourceSettings3Allocation", + "ItemWarmPoolSchedule", +] + + +class ItemWarmPoolSchedule(BaseModel): + timezone: str + + days: List[int] + + start_time: str = FieldInfo(alias="startTime") + + end_time: str = FieldInfo(alias="endTime") + + +class ItemResourceSettings3Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ItemResourceSettings3(BaseModel): + automatic_sizing: Literal[False] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ItemResourceSettings3Allocation] = None + + +class ItemResourceSettings2Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ItemResourceSettings2(BaseModel): + automatic_sizing: Literal[True] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ItemResourceSettings2Allocation] = None + + +ItemResourceSettings: TypeAlias = Union[ItemResourceSettings2, ItemResourceSettings3] class ItemActiveSnapshot(BaseModel): @@ -28,10 +87,6 @@ class Item(BaseModel): id: str - include_deps: bool = FieldInfo(alias="includeDeps") - - include_skills: bool = FieldInfo(alias="includeSkills") - name: str setup_script: Optional[str] = FieldInfo(alias="setupScript", default=None) @@ -40,6 +95,8 @@ class Item(BaseModel): active_snapshots: List[ItemActiveSnapshot] = FieldInfo(alias="activeSnapshots") + resource_settings: Optional[ItemResourceSettings] = FieldInfo(alias="resourceSettings", default=None) + agent_instructions: Optional[str] = FieldInfo(alias="agentInstructions", default=None) code_repository_ids: Optional[List[str]] = FieldInfo(alias="codeRepositoryIds", default=None) @@ -82,6 +139,8 @@ class Item(BaseModel): warm_pool_enabled: bool = FieldInfo(alias="warmPoolEnabled") + warm_pool_schedule: Optional[ItemWarmPoolSchedule] = FieldInfo(alias="warmPoolSchedule", default=None) + class ProjectListResponse(BaseModel): has_built_snapshot: bool = FieldInfo(alias="hasBuiltSnapshot") diff --git a/src/tembo/types/project_retrieve_response.py b/src/tembo/types/project_retrieve_response.py index 25b736da..0f5d8752 100644 --- a/src/tembo/types/project_retrieve_response.py +++ b/src/tembo/types/project_retrieve_response.py @@ -2,15 +2,73 @@ from __future__ import annotations -from typing import List, Optional +from typing import List, Optional, Union from datetime import datetime -from typing_extensions import Literal +from typing_extensions import Literal, TypeAlias from pydantic import Field as FieldInfo from .._models import BaseModel -__all__ = ["ProjectRetrieveResponse", "ActiveSnapshot"] +__all__ = [ + "ProjectRetrieveResponse", + "ActiveSnapshot", + "ResourceSettings", + "ResourceSettings2", + "ResourceSettings2Allocation", + "ResourceSettings3", + "ResourceSettings3Allocation", + "WarmPoolSchedule", +] + + +class WarmPoolSchedule(BaseModel): + timezone: str + + days: List[int] + + start_time: str = FieldInfo(alias="startTime") + + end_time: str = FieldInfo(alias="endTime") + + +class ResourceSettings3Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ResourceSettings3(BaseModel): + automatic_sizing: Literal[False] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ResourceSettings3Allocation] = None + + +class ResourceSettings2Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ResourceSettings2(BaseModel): + automatic_sizing: Literal[True] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ResourceSettings2Allocation] = None + + +ResourceSettings: TypeAlias = Union[ResourceSettings2, ResourceSettings3] class ActiveSnapshot(BaseModel): @@ -28,10 +86,6 @@ class ProjectRetrieveResponse(BaseModel): id: str - include_deps: bool = FieldInfo(alias="includeDeps") - - include_skills: bool = FieldInfo(alias="includeSkills") - name: str setup_script: Optional[str] = FieldInfo(alias="setupScript", default=None) @@ -40,6 +94,8 @@ class ProjectRetrieveResponse(BaseModel): active_snapshots: List[ActiveSnapshot] = FieldInfo(alias="activeSnapshots") + resource_settings: Optional[ResourceSettings] = FieldInfo(alias="resourceSettings", default=None) + agent_instructions: Optional[str] = FieldInfo(alias="agentInstructions", default=None) code_repository_ids: Optional[List[str]] = FieldInfo(alias="codeRepositoryIds", default=None) @@ -81,3 +137,5 @@ class ProjectRetrieveResponse(BaseModel): sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] warm_pool_enabled: bool = FieldInfo(alias="warmPoolEnabled") + + warm_pool_schedule: Optional[WarmPoolSchedule] = FieldInfo(alias="warmPoolSchedule", default=None) diff --git a/src/tembo/types/project_update_params.py b/src/tembo/types/project_update_params.py index e887ccaf..89325c70 100644 --- a/src/tembo/types/project_update_params.py +++ b/src/tembo/types/project_update_params.py @@ -2,25 +2,28 @@ from __future__ import annotations -from typing import Dict, List, Optional -from typing_extensions import Annotated, Literal, TypedDict +from typing import Dict, Iterable, List, Optional, Union +from typing_extensions import Annotated, Literal, Required, TypeAlias, TypedDict from .._types import SequenceNotStr from .._utils import PropertyInfo -__all__ = ["ProjectUpdateParams", "Schedule"] +__all__ = [ + "ProjectUpdateParams", + "ResourceSettings", + "ResourceSettings2", + "ResourceSettings2Allocation", + "ResourceSettings3", + "ResourceSettings3Allocation", + "Schedule", + "WarmPoolSchedule", +] class ProjectUpdateParams(TypedDict, total=False): description: Optional[str] """Short project description, or null to clear it.""" - include_deps: Annotated[bool, PropertyInfo(alias="includeDeps")] - """Include project dependencies when building the environment. Defaults to true on creation.""" - - include_skills: Annotated[bool, PropertyInfo(alias="includeSkills")] - """Include skills in the project environment. Defaults to true on creation.""" - name: str """Project display name.""" @@ -62,6 +65,14 @@ class ProjectUpdateParams(TypedDict, total=False): ] """Project display icon.""" + include_deps: Annotated[bool, PropertyInfo(alias="includeDeps")] + """Deprecated and ignored. Project builds always install dependencies.""" + + include_skills: Annotated[bool, PropertyInfo(alias="includeSkills")] + """Deprecated and ignored. Project builds always include skills.""" + + resource_settings: Annotated[ResourceSettings, PropertyInfo(alias="resourceSettings")] + default_for_sizes: Annotated[ List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]], PropertyInfo(alias="defaultForSizes") ] @@ -76,10 +87,23 @@ class ProjectUpdateParams(TypedDict, total=False): sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] """Replace the workspace VM sizes built for this project.""" + warm_pool_schedule: Annotated[Optional[WarmPoolSchedule], PropertyInfo(alias="warmPoolSchedule")] + """Weekly availability for prewarmed VMs. Null means always on; days use 0=Sunday. Overnight windows end the following day.""" + warm_pool_enabled: Annotated[bool, PropertyInfo(alias="warmPoolEnabled")] """Enable or disable prewarmed VMs for this project.""" +class WarmPoolSchedule(TypedDict, total=False): + timezone: Required[str] + + days: Required[Iterable[int]] + + start_time: Required[Annotated[str, PropertyInfo(alias="startTime")]] + + end_time: Required[Annotated[str, PropertyInfo(alias="endTime")]] + + class Schedule(TypedDict, total=False): cron: str """Replace the recurring project build cron expression.""" @@ -89,3 +113,42 @@ class Schedule(TypedDict, total=False): timezone: Optional[str] """Timezone for the cron schedule, or null to clear it.""" + + +class ResourceSettings3Allocation(TypedDict, total=False): + cpu_min: Annotated[int, PropertyInfo(alias="cpuMin")] + + cpu_max: Annotated[int, PropertyInfo(alias="cpuMax")] + + memory_min_mb: Required[Annotated[int, PropertyInfo(alias="memoryMinMb")]] + + memory_max_mb: Required[Annotated[int, PropertyInfo(alias="memoryMaxMb")]] + + disk_size_gb: Required[Annotated[int, PropertyInfo(alias="diskSizeGb")]] + + +class ResourceSettings3(TypedDict, total=False): + automatic_sizing: Required[Annotated[Literal[False], PropertyInfo(alias="automaticSizing")]] + + allocation: ResourceSettings3Allocation + + +class ResourceSettings2Allocation(TypedDict, total=False): + cpu_min: Annotated[int, PropertyInfo(alias="cpuMin")] + + cpu_max: Annotated[int, PropertyInfo(alias="cpuMax")] + + memory_min_mb: Required[Annotated[int, PropertyInfo(alias="memoryMinMb")]] + + memory_max_mb: Required[Annotated[int, PropertyInfo(alias="memoryMaxMb")]] + + disk_size_gb: Required[Annotated[int, PropertyInfo(alias="diskSizeGb")]] + + +class ResourceSettings2(TypedDict, total=False): + automatic_sizing: Required[Annotated[Literal[True], PropertyInfo(alias="automaticSizing")]] + + allocation: ResourceSettings2Allocation + + +ResourceSettings: TypeAlias = Union[ResourceSettings2, ResourceSettings3] diff --git a/src/tembo/types/project_update_response.py b/src/tembo/types/project_update_response.py index 54af18af..d58ae8a4 100644 --- a/src/tembo/types/project_update_response.py +++ b/src/tembo/types/project_update_response.py @@ -2,15 +2,73 @@ from __future__ import annotations -from typing import List, Optional +from typing import List, Optional, Union from datetime import datetime -from typing_extensions import Literal +from typing_extensions import Literal, TypeAlias from pydantic import Field as FieldInfo from .._models import BaseModel -__all__ = ["ProjectUpdateResponse", "ActiveSnapshot"] +__all__ = [ + "ProjectUpdateResponse", + "ActiveSnapshot", + "ResourceSettings", + "ResourceSettings2", + "ResourceSettings2Allocation", + "ResourceSettings3", + "ResourceSettings3Allocation", + "WarmPoolSchedule", +] + + +class WarmPoolSchedule(BaseModel): + timezone: str + + days: List[int] + + start_time: str = FieldInfo(alias="startTime") + + end_time: str = FieldInfo(alias="endTime") + + +class ResourceSettings3Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ResourceSettings3(BaseModel): + automatic_sizing: Literal[False] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ResourceSettings3Allocation] = None + + +class ResourceSettings2Allocation(BaseModel): + cpu_min: Optional[int] = FieldInfo(alias="cpuMin", default=None) + + cpu_max: Optional[int] = FieldInfo(alias="cpuMax", default=None) + + memory_min_mb: int = FieldInfo(alias="memoryMinMb") + + memory_max_mb: int = FieldInfo(alias="memoryMaxMb") + + disk_size_gb: int = FieldInfo(alias="diskSizeGb") + + +class ResourceSettings2(BaseModel): + automatic_sizing: Literal[True] = FieldInfo(alias="automaticSizing") + + allocation: Optional[ResourceSettings2Allocation] = None + + +ResourceSettings: TypeAlias = Union[ResourceSettings2, ResourceSettings3] class ActiveSnapshot(BaseModel): @@ -28,10 +86,6 @@ class ProjectUpdateResponse(BaseModel): id: str - include_deps: bool = FieldInfo(alias="includeDeps") - - include_skills: bool = FieldInfo(alias="includeSkills") - name: str setup_script: Optional[str] = FieldInfo(alias="setupScript", default=None) @@ -40,6 +94,8 @@ class ProjectUpdateResponse(BaseModel): active_snapshots: List[ActiveSnapshot] = FieldInfo(alias="activeSnapshots") + resource_settings: Optional[ResourceSettings] = FieldInfo(alias="resourceSettings", default=None) + agent_instructions: Optional[str] = FieldInfo(alias="agentInstructions", default=None) code_repository_ids: Optional[List[str]] = FieldInfo(alias="codeRepositoryIds", default=None) @@ -81,3 +137,5 @@ class ProjectUpdateResponse(BaseModel): sizes: List[Literal["nano", "micro", "medium", "large", "xl", "xxl", "ultra"]] warm_pool_enabled: bool = FieldInfo(alias="warmPoolEnabled") + + warm_pool_schedule: Optional[WarmPoolSchedule] = FieldInfo(alias="warmPoolSchedule", default=None) diff --git a/src/tembo/types/projects/build_list_response.py b/src/tembo/types/projects/build_list_response.py index 1714071f..2a74dfc6 100644 --- a/src/tembo/types/projects/build_list_response.py +++ b/src/tembo/types/projects/build_list_response.py @@ -28,16 +28,14 @@ class Item(BaseModel): id: str + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + completed_at: Optional[datetime] = FieldInfo(alias="completedAt", default=None) duration_ms: Optional[int] = FieldInfo(alias="durationMs", default=None) failure: Optional[str] = None - include_deps: bool = FieldInfo(alias="includeDeps") - - include_skills: bool = FieldInfo(alias="includeSkills") - name: Optional[str] = None progress: Optional[ItemProgress] = None diff --git a/src/tembo/types/projects/build_retrieve_response.py b/src/tembo/types/projects/build_retrieve_response.py index b042b1f3..0977ed5a 100644 --- a/src/tembo/types/projects/build_retrieve_response.py +++ b/src/tembo/types/projects/build_retrieve_response.py @@ -28,16 +28,14 @@ class BuildRetrieveResponse(BaseModel): id: str + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + completed_at: Optional[datetime] = FieldInfo(alias="completedAt", default=None) duration_ms: Optional[int] = FieldInfo(alias="durationMs", default=None) failure: Optional[str] = None - include_deps: bool = FieldInfo(alias="includeDeps") - - include_skills: bool = FieldInfo(alias="includeSkills") - name: Optional[str] = None progress: Optional[Progress] = None diff --git a/src/tembo/types/projects/snapshot_list_response.py b/src/tembo/types/projects/snapshot_list_response.py index 4ae23444..c0ea7272 100644 --- a/src/tembo/types/projects/snapshot_list_response.py +++ b/src/tembo/types/projects/snapshot_list_response.py @@ -26,20 +26,20 @@ class Item(BaseModel): updated_at: datetime = FieldInfo(alias="updatedAt") + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + build_duration_ms: Optional[float] = FieldInfo(alias="buildDurationMs", default=None) built_at: Optional[datetime] = FieldInfo(alias="builtAt", default=None) cpu: Optional[int] = None - has_setup_script: Optional[bool] = FieldInfo(alias="hasSetupScript", default=None) + disk_size_gb: Optional[float] = FieldInfo(alias="diskSizeGb", default=None) - includes_deps: Optional[bool] = FieldInfo(alias="includesDeps", default=None) + has_setup_script: Optional[bool] = FieldInfo(alias="hasSetupScript", default=None) includes_repos: Optional[bool] = FieldInfo(alias="includesRepos", default=None) - includes_skills: Optional[bool] = FieldInfo(alias="includesSkills", default=None) - is_kvm: Optional[bool] = FieldInfo(alias="isKvm", default=None) memory_mb: Optional[int] = FieldInfo(alias="memoryMb", default=None) diff --git a/src/tembo/types/projects/snapshot_retrieve_response.py b/src/tembo/types/projects/snapshot_retrieve_response.py index 7c5005cb..89991d85 100644 --- a/src/tembo/types/projects/snapshot_retrieve_response.py +++ b/src/tembo/types/projects/snapshot_retrieve_response.py @@ -24,20 +24,20 @@ class SnapshotRetrieveResponse(BaseModel): updated_at: datetime = FieldInfo(alias="updatedAt") + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + build_duration_ms: Optional[float] = FieldInfo(alias="buildDurationMs", default=None) built_at: Optional[datetime] = FieldInfo(alias="builtAt", default=None) cpu: Optional[int] = None - has_setup_script: Optional[bool] = FieldInfo(alias="hasSetupScript", default=None) + disk_size_gb: Optional[float] = FieldInfo(alias="diskSizeGb", default=None) - includes_deps: Optional[bool] = FieldInfo(alias="includesDeps", default=None) + has_setup_script: Optional[bool] = FieldInfo(alias="hasSetupScript", default=None) includes_repos: Optional[bool] = FieldInfo(alias="includesRepos", default=None) - includes_skills: Optional[bool] = FieldInfo(alias="includesSkills", default=None) - is_kvm: Optional[bool] = FieldInfo(alias="isKvm", default=None) memory_mb: Optional[int] = FieldInfo(alias="memoryMb", default=None) diff --git a/src/tembo/types/projects/snapshot_update_response.py b/src/tembo/types/projects/snapshot_update_response.py index d7d960fc..7e907c64 100644 --- a/src/tembo/types/projects/snapshot_update_response.py +++ b/src/tembo/types/projects/snapshot_update_response.py @@ -24,20 +24,20 @@ class SnapshotUpdateResponse(BaseModel): updated_at: datetime = FieldInfo(alias="updatedAt") + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + build_duration_ms: Optional[float] = FieldInfo(alias="buildDurationMs", default=None) built_at: Optional[datetime] = FieldInfo(alias="builtAt", default=None) cpu: Optional[int] = None - has_setup_script: Optional[bool] = FieldInfo(alias="hasSetupScript", default=None) + disk_size_gb: Optional[float] = FieldInfo(alias="diskSizeGb", default=None) - includes_deps: Optional[bool] = FieldInfo(alias="includesDeps", default=None) + has_setup_script: Optional[bool] = FieldInfo(alias="hasSetupScript", default=None) includes_repos: Optional[bool] = FieldInfo(alias="includesRepos", default=None) - includes_skills: Optional[bool] = FieldInfo(alias="includesSkills", default=None) - is_kvm: Optional[bool] = FieldInfo(alias="isKvm", default=None) memory_mb: Optional[int] = FieldInfo(alias="memoryMb", default=None) diff --git a/src/tembo/types/session_create_params.py b/src/tembo/types/session_create_params.py index 705d3f48..efad61d4 100644 --- a/src/tembo/types/session_create_params.py +++ b/src/tembo/types/session_create_params.py @@ -59,6 +59,9 @@ class SessionCreateParams(TypedDict, total=False): queue_right_away: Annotated[bool, PropertyInfo(alias="queueRightAway")] """Whether to queue the initial task immediately instead of only creating the session.""" + automatic_sizing: Annotated[bool, PropertyInfo(alias="automaticSizing")] + """Size the VM automatically. Only for sessions created without a project (projectId "tembo").""" + session_mode: Annotated[Literal["chat", "terminal"], PropertyInfo(alias="sessionMode")] """Whether to create a chat session or a terminal session.""" diff --git a/src/tembo/types/session_create_response.py b/src/tembo/types/session_create_response.py index 01c66a3e..d5ec4524 100644 --- a/src/tembo/types/session_create_response.py +++ b/src/tembo/types/session_create_response.py @@ -226,6 +226,9 @@ class SessionCreateResponse(BaseModel): artifacts: List[Artifact] + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + """Whether the session VM is sized automatically.""" + description: Optional[str] = None diff_summary: Optional[DiffSummary] = FieldInfo(alias="diffSummary", default=None) diff --git a/src/tembo/types/session_fork_response.py b/src/tembo/types/session_fork_response.py index b4a28274..3c7b3c85 100644 --- a/src/tembo/types/session_fork_response.py +++ b/src/tembo/types/session_fork_response.py @@ -226,6 +226,9 @@ class SessionForkResponse(BaseModel): artifacts: List[Artifact] + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + """Whether the session VM is sized automatically.""" + description: Optional[str] = None diff_summary: Optional[DiffSummary] = FieldInfo(alias="diffSummary", default=None) diff --git a/src/tembo/types/session_retrieve_response.py b/src/tembo/types/session_retrieve_response.py index 48899c6e..62729708 100644 --- a/src/tembo/types/session_retrieve_response.py +++ b/src/tembo/types/session_retrieve_response.py @@ -226,6 +226,9 @@ class SessionRetrieveResponse(BaseModel): artifacts: List[Artifact] + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + """Whether the session VM is sized automatically.""" + description: Optional[str] = None diff_summary: Optional[DiffSummary] = FieldInfo(alias="diffSummary", default=None) diff --git a/src/tembo/types/session_update_params.py b/src/tembo/types/session_update_params.py index a1c7a02c..2cf322fa 100644 --- a/src/tembo/types/session_update_params.py +++ b/src/tembo/types/session_update_params.py @@ -12,6 +12,9 @@ class SessionUpdateParams(TypedDict, total=False): + memory_mb: Annotated[int, PropertyInfo(alias="memoryMb")] + """Request in-place memory growth for a running adaptive sandbox, within project limits. Submit separately from other session changes. Returns the session while the resize runs asynchronously; sandbox metrics report its progress.""" + agent: Optional[str] """Change the agent and model key. Null clears the session override.""" diff --git a/src/tembo/types/session_update_response.py b/src/tembo/types/session_update_response.py index 17ab8135..49dcbd5c 100644 --- a/src/tembo/types/session_update_response.py +++ b/src/tembo/types/session_update_response.py @@ -226,6 +226,9 @@ class SessionUpdateResponse(BaseModel): artifacts: List[Artifact] + automatic_sizing: bool = FieldInfo(alias="automaticSizing") + """Whether the session VM is sized automatically.""" + description: Optional[str] = None diff_summary: Optional[DiffSummary] = FieldInfo(alias="diffSummary", default=None) diff --git a/src/tembo/types/user_delete_params.py b/src/tembo/types/user_delete_params.py deleted file mode 100644 index 5dd24c44..00000000 --- a/src/tembo/types/user_delete_params.py +++ /dev/null @@ -1,25 +0,0 @@ -# File generated from our OpenAPI spec by Scalar. See README.md for details. - -from __future__ import annotations - -from typing import Union -from datetime import datetime -from typing_extensions import Annotated, Required, TypedDict -from .._types import SequenceNotStr - -from .._utils import PropertyInfo - -__all__ = ["UserDeleteParams", "DeletionQuestionnaire"] - - -class UserDeleteParams(TypedDict, total=False): - deletion_questionnaire: Annotated[DeletionQuestionnaire, PropertyInfo(alias="deletionQuestionnaire")] - """Optional account-deletion feedback. Account deletion is queued regardless of whether feedback is supplied.""" - - -class DeletionQuestionnaire(TypedDict, total=False): - reasons: Required[SequenceNotStr[str]] - - other_reason: Annotated[str, PropertyInfo(alias="otherReason")] - - submitted_at: Required[Annotated[Union[str, datetime], PropertyInfo(alias="submittedAt", format="iso8601")]] diff --git a/src/tembo/types/user_delete_response.py b/src/tembo/types/user_delete_response.py deleted file mode 100644 index 4e1cf6da..00000000 --- a/src/tembo/types/user_delete_response.py +++ /dev/null @@ -1,17 +0,0 @@ -# File generated from our OpenAPI spec by Scalar. See README.md for details. - -from typing_extensions import Literal - -from pydantic import Field as FieldInfo - -from .._models import BaseModel - -__all__ = ["UserDeleteResponse"] - - -class UserDeleteResponse(BaseModel): - deletion_job_id: str = FieldInfo(alias="deletionJobId") - - deletion_queued: Literal[True] = FieldInfo(alias="deletionQueued") - - id: str diff --git a/src/tembo/types/users/__init__.py b/src/tembo/types/users/__init__.py index 9133077e..917641b1 100644 --- a/src/tembo/types/users/__init__.py +++ b/src/tembo/types/users/__init__.py @@ -9,8 +9,6 @@ from .connected_account_list_params import ConnectedAccountListParams as ConnectedAccountListParams from .connected_account_retrieve_response import ConnectedAccountRetrieveResponse as ConnectedAccountRetrieveResponse from .subscription_retrieve_response import SubscriptionRetrieveResponse as SubscriptionRetrieveResponse -from .subscription_reset_response import SubscriptionResetResponse as SubscriptionResetResponse -from .subscription_reset_params import SubscriptionResetParams as SubscriptionResetParams from .profile_picture_update_response import ProfilePictureUpdateResponse as ProfilePictureUpdateResponse from .profile_picture_update_params import ProfilePictureUpdateParams as ProfilePictureUpdateParams from .profile_picture_delete_response import ProfilePictureDeleteResponse as ProfilePictureDeleteResponse diff --git a/src/tembo/types/users/subscription_reset_params.py b/src/tembo/types/users/subscription_reset_params.py deleted file mode 100644 index 4713c79a..00000000 --- a/src/tembo/types/users/subscription_reset_params.py +++ /dev/null @@ -1,17 +0,0 @@ -# File generated from our OpenAPI spec by Scalar. See README.md for details. - -from __future__ import annotations - -from typing_extensions import Annotated, Literal, Required, TypedDict - -from ..._utils import PropertyInfo - -__all__ = ["SubscriptionResetParams"] - - -class SubscriptionResetParams(TypedDict, total=False): - idempotency_key: Required[Annotated[str, PropertyInfo(alias="idempotencyKey")]] - """Unique UUID for this reset attempt. Reuse the same UUID when retrying to avoid redeeming another reset credit.""" - - provider: Required[Literal["chatgpt"]] - """Subscription provider whose rate-limit reset credit to redeem. Currently only chatgpt is supported.""" diff --git a/src/tembo/types/users/subscription_reset_response.py b/src/tembo/types/users/subscription_reset_response.py deleted file mode 100644 index 89124959..00000000 --- a/src/tembo/types/users/subscription_reset_response.py +++ /dev/null @@ -1,11 +0,0 @@ -# File generated from our OpenAPI spec by Scalar. See README.md for details. - -from typing_extensions import Literal - -from ..._models import BaseModel - -__all__ = ["SubscriptionResetResponse"] - - -class SubscriptionResetResponse(BaseModel): - outcome: Literal["reset", "alreadyRedeemed", "nothingToReset", "noCredit"] diff --git a/tests/smoke-test.py b/tests/smoke-test.py index df794265..5c195e16 100644 --- a/tests/smoke-test.py +++ b/tests/smoke-test.py @@ -421,20 +421,12 @@ def _smoke_case_46() -> None: def _smoke_case_47() -> None: - subscription = client.organizations.subscriptions.reset( - organization_id="organizationId", - idempotency_key="7c9e6679-7425-40de-944b-e07fc1f90ae7", - provider="chatgpt", - ) - - -def _smoke_case_48() -> None: mcp_connection = client.mcp_connections.list( limit=50, ) -def _smoke_case_49() -> None: +def _smoke_case_48() -> None: mcp_connection = client.mcp_connections.list( connected=True, cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -443,7 +435,7 @@ def _smoke_case_49() -> None: ) -def _smoke_case_50() -> None: +def _smoke_case_49() -> None: mcp_connection = client.mcp_connections.create( name="x", args=[], @@ -453,7 +445,7 @@ def _smoke_case_50() -> None: ) -def _smoke_case_51() -> None: +def _smoke_case_50() -> None: mcp_connection = client.mcp_connections.create( name="x", args=[], @@ -464,20 +456,20 @@ def _smoke_case_51() -> None: ) -def _smoke_case_52() -> None: +def _smoke_case_51() -> None: mcp_connection = client.mcp_connections.retrieve( mcp_connection_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_53() -> None: +def _smoke_case_52() -> None: mcp_connection = client.mcp_connections.update( mcp_connection_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", type="remote", ) -def _smoke_case_54() -> None: +def _smoke_case_53() -> None: mcp_connection = client.mcp_connections.update( mcp_connection_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", name="x", @@ -492,31 +484,31 @@ def _smoke_case_54() -> None: ) -def _smoke_case_55() -> None: +def _smoke_case_54() -> None: mcp_connection = client.mcp_connections.delete( mcp_connection_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_56() -> None: +def _smoke_case_55() -> None: mcp_connection = client.mcp_connections.authorize( mcp_connection_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_57() -> None: +def _smoke_case_56() -> None: mcp_connection = client.mcp_connections.test( mcp_connection_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_58() -> None: +def _smoke_case_57() -> None: artifact = client.artifacts.list( limit=50, ) -def _smoke_case_59() -> None: +def _smoke_case_58() -> None: artifact = client.artifacts.list( cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, @@ -526,7 +518,7 @@ def _smoke_case_59() -> None: ) -def _smoke_case_60() -> None: +def _smoke_case_59() -> None: artifact = client.artifacts.create( title="x", output={"type": "html", "content": "x"}, @@ -534,7 +526,7 @@ def _smoke_case_60() -> None: ) -def _smoke_case_61() -> None: +def _smoke_case_60() -> None: artifact = client.artifacts.create( title="x", description="x", @@ -545,25 +537,25 @@ def _smoke_case_61() -> None: ) -def _smoke_case_62() -> None: +def _smoke_case_61() -> None: artifact = client.artifacts.retrieve( artifact_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_63() -> None: +def _smoke_case_62() -> None: artifact = client.artifacts.delete( artifact_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_64() -> None: +def _smoke_case_63() -> None: message = client.messages.list( limit=50, ) -def _smoke_case_65() -> None: +def _smoke_case_64() -> None: message = client.messages.list( cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, @@ -572,14 +564,14 @@ def _smoke_case_65() -> None: ) -def _smoke_case_66() -> None: +def _smoke_case_65() -> None: message = client.messages.create( content="x", session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_67() -> None: +def _smoke_case_66() -> None: message = client.messages.create( artifact_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", content="x", @@ -596,19 +588,19 @@ def _smoke_case_67() -> None: ) -def _smoke_case_68() -> None: +def _smoke_case_67() -> None: message = client.messages.retrieve( message_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_69() -> None: +def _smoke_case_68() -> None: message = client.messages.update( message_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_70() -> None: +def _smoke_case_69() -> None: message = client.messages.update( message_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", content="x", @@ -619,32 +611,32 @@ def _smoke_case_70() -> None: ) -def _smoke_case_71() -> None: +def _smoke_case_70() -> None: message = client.messages.delete( message_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_72() -> None: +def _smoke_case_71() -> None: model = client.models.list( limit=50, ) -def _smoke_case_73() -> None: +def _smoke_case_72() -> None: model = client.models.list( cursor="claude-opus-5-5", limit=50, ) -def _smoke_case_74() -> None: +def _smoke_case_73() -> None: model = client.models.update( model_name="claude-opus-5-5", ) -def _smoke_case_75() -> None: +def _smoke_case_74() -> None: model = client.models.update( model_name="claude-opus-5-5", enabled=False, @@ -652,55 +644,42 @@ def _smoke_case_75() -> None: ) -def _smoke_case_76() -> None: +def _smoke_case_75() -> None: runtime = client.runtimes.list( limit=50, ) -def _smoke_case_77() -> None: +def _smoke_case_76() -> None: runtime = client.runtimes.list( cursor="claudeCode", limit=50, ) -def _smoke_case_78() -> None: +def _smoke_case_77() -> None: user = client.users.me() -def _smoke_case_79() -> None: +def _smoke_case_78() -> None: user = client.users.retrieve( user_id="userId", ) -def _smoke_case_80() -> None: - user = client.users.delete( - user_id="userId", - ) - - -def _smoke_case_81() -> None: - user = client.users.delete( - user_id="userId", - deletion_questionnaire={"reasons": ["x"], "other_reason": "x", "submitted_at": "2024-01-01T00:00:00.000Z"}, - ) - - -def _smoke_case_82() -> None: +def _smoke_case_79() -> None: setting = client.users.settings.retrieve( user_id="userId", ) -def _smoke_case_83() -> None: +def _smoke_case_80() -> None: setting = client.users.settings.update( user_id="userId", ) -def _smoke_case_84() -> None: +def _smoke_case_81() -> None: setting = client.users.settings.update( user_id="userId", auto_restart_vm=False, @@ -754,14 +733,14 @@ def _smoke_case_84() -> None: ) -def _smoke_case_85() -> None: +def _smoke_case_82() -> None: connected_account = client.users.connected_accounts.list( user_id="userId", limit=50, ) -def _smoke_case_86() -> None: +def _smoke_case_83() -> None: connected_account = client.users.connected_accounts.list( user_id="userId", cursor="cursor", @@ -769,47 +748,39 @@ def _smoke_case_86() -> None: ) -def _smoke_case_87() -> None: +def _smoke_case_84() -> None: connected_account = client.users.connected_accounts.retrieve( user_id="userId", connected_account_id="connectedAccountId", ) -def _smoke_case_88() -> None: +def _smoke_case_85() -> None: subscription = client.users.subscriptions.retrieve( user_id="userId", ) -def _smoke_case_89() -> None: - subscription = client.users.subscriptions.reset( - user_id="userId", - idempotency_key="7c9e6679-7425-40de-944b-e07fc1f90ae7", - provider="chatgpt", - ) - - -def _smoke_case_90() -> None: +def _smoke_case_86() -> None: client.users.profile_picture.retrieve( user_id="userId", ) -def _smoke_case_91() -> None: +def _smoke_case_87() -> None: profile_picture = client.users.profile_picture.update( user_id="userId", file=b"file", ) -def _smoke_case_92() -> None: +def _smoke_case_88() -> None: profile_picture = client.users.profile_picture.delete( user_id="userId", ) -def _smoke_case_93() -> None: +def _smoke_case_89() -> None: session = client.sessions.list( limit=50, include_archived=True, @@ -819,7 +790,7 @@ def _smoke_case_93() -> None: ) -def _smoke_case_94() -> None: +def _smoke_case_90() -> None: session = client.sessions.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", created_by=["created_by"], @@ -844,7 +815,7 @@ def _smoke_case_94() -> None: ) -def _smoke_case_95() -> None: +def _smoke_case_91() -> None: session = client.sessions.create( agent="claudeCode:claude-fable-5-1", base_branch="main", @@ -857,7 +828,7 @@ def _smoke_case_95() -> None: ) -def _smoke_case_96() -> None: +def _smoke_case_92() -> None: session = client.sessions.create( agent="claudeCode:claude-fable-5-1", base_branch="main", @@ -874,26 +845,28 @@ def _smoke_case_96() -> None: rich_content={"type": "x", "text": "", "attrs": {}, "marks": [{"type": "x"}], "content": []}, pull_request_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", queue_right_away=False, + automatic_sizing=False, session_mode="chat", startup_agent="claudeCode", ) -def _smoke_case_97() -> None: +def _smoke_case_93() -> None: session = client.sessions.retrieve( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_98() -> None: +def _smoke_case_94() -> None: session = client.sessions.update( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_99() -> None: +def _smoke_case_95() -> None: session = client.sessions.update( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", + memory_mb=1024, agent="x", agent_options={"reasoning_level": "x", "mode": "normal", "speed": "normal", "goal": {}, "ultracode": False}, base_branch="x", @@ -911,20 +884,20 @@ def _smoke_case_99() -> None: ) -def _smoke_case_100() -> None: +def _smoke_case_96() -> None: session = client.sessions.delete( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_101() -> None: +def _smoke_case_97() -> None: session = client.sessions.fork( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", queue_right_away=True, ) -def _smoke_case_102() -> None: +def _smoke_case_98() -> None: session = client.sessions.fork( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", prompt="x", @@ -933,27 +906,27 @@ def _smoke_case_102() -> None: ) -def _smoke_case_103() -> None: +def _smoke_case_99() -> None: session = client.sessions.stop( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_104() -> None: +def _smoke_case_100() -> None: session = client.sessions.stop( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cancel_queued=True, ) -def _smoke_case_105() -> None: +def _smoke_case_101() -> None: session = client.sessions.list_events( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_106() -> None: +def _smoke_case_102() -> None: session = client.sessions.list_events( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="cursor", @@ -963,14 +936,14 @@ def _smoke_case_106() -> None: ) -def _smoke_case_107() -> None: +def _smoke_case_103() -> None: source = client.sessions.sources.list( limit=50, include_total=False, ) -def _smoke_case_108() -> None: +def _smoke_case_104() -> None: source = client.sessions.sources.list( cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, @@ -983,20 +956,20 @@ def _smoke_case_108() -> None: ) -def _smoke_case_109() -> None: +def _smoke_case_105() -> None: source = client.sessions.sources.retrieve( source_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_110() -> None: +def _smoke_case_106() -> None: diff = client.sessions.diffs.list( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_111() -> None: +def _smoke_case_107() -> None: diff = client.sessions.diffs.list( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1005,20 +978,20 @@ def _smoke_case_111() -> None: ) -def _smoke_case_112() -> None: +def _smoke_case_108() -> None: diff = client.sessions.diffs.retrieve( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", diff_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_113() -> None: +def _smoke_case_109() -> None: input = client.sessions.inputs.list( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_114() -> None: +def _smoke_case_110() -> None: input = client.sessions.inputs.update( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", input_id="inputId", @@ -1026,33 +999,33 @@ def _smoke_case_114() -> None: ) -def _smoke_case_115() -> None: +def _smoke_case_111() -> None: queue = client.sessions.queue.update( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", message_ids=["7c9e6679-7425-40de-944b-e07fc1f90ae7"], ) -def _smoke_case_116() -> None: +def _smoke_case_112() -> None: command = client.sessions.commands.list( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_117() -> None: +def _smoke_case_113() -> None: project = client.projects.update_defaults( project_id="x", sandbox_size="nano", ) -def _smoke_case_118() -> None: +def _smoke_case_114() -> None: project = client.projects.list( limit=50, ) -def _smoke_case_119() -> None: +def _smoke_case_115() -> None: project = client.projects.list( cursor="cursor", limit=50, @@ -1061,103 +1034,108 @@ def _smoke_case_119() -> None: ) -def _smoke_case_120() -> None: +def _smoke_case_116() -> None: project = client.projects.create( name="x", - sizes=["nano"], + sizes=["medium"], + resource_settings={"automaticSizing": False}, ) -def _smoke_case_121() -> None: +def _smoke_case_117() -> None: project = client.projects.create( description="", - include_deps=False, - include_skills=False, name="x", setup_script="", code_repository_ids=["x"], agent_instructions="", color="neutral", icon="folder", + include_deps=False, + include_skills=False, onboarding_default=False, run_now=False, schedule={"cron": "x", "timezone": "x"}, - sizes=["nano"], + sizes=["medium"], + resource_settings={"automaticSizing": False}, ) -def _smoke_case_122() -> None: +def _smoke_case_118() -> None: project = client.projects.retrieve( project_id="projectId", ) -def _smoke_case_123() -> None: +def _smoke_case_119() -> None: project = client.projects.update( project_id="projectId", + resource_settings={"automaticSizing": False}, ) -def _smoke_case_124() -> None: +def _smoke_case_120() -> None: project = client.projects.update( project_id="projectId", description="", - include_deps=False, - include_skills=False, name="x", setup_script="", code_repository_ids=["x"], agent_instructions="", color="neutral", icon="folder", + include_deps=False, + include_skills=False, + resource_settings={"automaticSizing": False}, default_for_sizes=["nano"], environment_variables={}, schedule={"cron": "x", "enabled": False, "timezone": "x"}, sizes=["nano"], + warm_pool_schedule={"timezone": "x", "days": [0], "start_time": "", "end_time": ""}, warm_pool_enabled=False, ) -def _smoke_case_125() -> None: +def _smoke_case_121() -> None: project = client.projects.delete( project_id="projectId", ) -def _smoke_case_126() -> None: +def _smoke_case_122() -> None: project = client.projects.duplicate( project_id="projectId", ) -def _smoke_case_127() -> None: +def _smoke_case_123() -> None: environment_variable = client.projects.environment_variables.list( project_id="projectId", ) -def _smoke_case_128() -> None: +def _smoke_case_124() -> None: environment_variable = client.projects.environment_variables.create( project_id="projectId", secrets=[{"key": "", "value": "x"}], ) -def _smoke_case_129() -> None: +def _smoke_case_125() -> None: environment_variable = client.projects.environment_variables.delete( project_id="projectId", key="key", ) -def _smoke_case_130() -> None: +def _smoke_case_126() -> None: snapshot = client.projects.snapshots.list( project_id="projectId", limit=50, ) -def _smoke_case_131() -> None: +def _smoke_case_127() -> None: snapshot = client.projects.snapshots.list( project_id="projectId", cursor="cursor", @@ -1165,21 +1143,21 @@ def _smoke_case_131() -> None: ) -def _smoke_case_132() -> None: +def _smoke_case_128() -> None: snapshot = client.projects.snapshots.retrieve( project_id="projectId", snapshot_id="snapshotId", ) -def _smoke_case_133() -> None: +def _smoke_case_129() -> None: snapshot = client.projects.snapshots.update( project_id="projectId", snapshot_id="snapshotId", ) -def _smoke_case_134() -> None: +def _smoke_case_130() -> None: snapshot = client.projects.snapshots.update( project_id="projectId", snapshot_id="snapshotId", @@ -1188,21 +1166,21 @@ def _smoke_case_134() -> None: ) -def _smoke_case_135() -> None: +def _smoke_case_131() -> None: snapshot = client.projects.snapshots.delete( project_id="projectId", snapshot_id="snapshotId", ) -def _smoke_case_136() -> None: +def _smoke_case_132() -> None: build = client.projects.builds.list( project_id="projectId", limit=50, ) -def _smoke_case_137() -> None: +def _smoke_case_133() -> None: build = client.projects.builds.list( project_id="projectId", cursor="cursor", @@ -1210,13 +1188,13 @@ def _smoke_case_137() -> None: ) -def _smoke_case_138() -> None: +def _smoke_case_134() -> None: build = client.projects.builds.create( project_id="projectId", ) -def _smoke_case_139() -> None: +def _smoke_case_135() -> None: build = client.projects.builds.create( project_id="projectId", sizes=["nano"], @@ -1224,28 +1202,28 @@ def _smoke_case_139() -> None: ) -def _smoke_case_140() -> None: +def _smoke_case_136() -> None: build = client.projects.builds.retrieve( project_id="projectId", build_id="buildId", ) -def _smoke_case_141() -> None: +def _smoke_case_137() -> None: build = client.projects.builds.cancel( project_id="projectId", build_id="buildId", ) -def _smoke_case_142() -> None: +def _smoke_case_138() -> None: schedule = client.projects.schedules.list( project_id="projectId", limit=50, ) -def _smoke_case_143() -> None: +def _smoke_case_139() -> None: schedule = client.projects.schedules.list( project_id="projectId", cursor="cursor", @@ -1253,14 +1231,14 @@ def _smoke_case_143() -> None: ) -def _smoke_case_144() -> None: +def _smoke_case_140() -> None: schedule = client.projects.schedules.create( project_id="projectId", cron="x", ) -def _smoke_case_145() -> None: +def _smoke_case_141() -> None: schedule = client.projects.schedules.create( project_id="projectId", cron="x", @@ -1268,21 +1246,21 @@ def _smoke_case_145() -> None: ) -def _smoke_case_146() -> None: +def _smoke_case_142() -> None: schedule = client.projects.schedules.retrieve( project_id="projectId", schedule_id="scheduleId", ) -def _smoke_case_147() -> None: +def _smoke_case_143() -> None: schedule = client.projects.schedules.update( project_id="projectId", schedule_id="scheduleId", ) -def _smoke_case_148() -> None: +def _smoke_case_144() -> None: schedule = client.projects.schedules.update( project_id="projectId", schedule_id="scheduleId", @@ -1292,34 +1270,34 @@ def _smoke_case_148() -> None: ) -def _smoke_case_149() -> None: +def _smoke_case_145() -> None: schedule = client.projects.schedules.delete( project_id="projectId", schedule_id="scheduleId", ) -def _smoke_case_150() -> None: +def _smoke_case_146() -> None: pin = client.pins.list( limit=50, ) -def _smoke_case_151() -> None: +def _smoke_case_147() -> None: pin = client.pins.list( cursor="cursor", limit=50, ) -def _smoke_case_152() -> None: +def _smoke_case_148() -> None: pin = client.pins.create( type="session", id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_153() -> None: +def _smoke_case_149() -> None: pin = client.pins.create( type="session", id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1327,7 +1305,7 @@ def _smoke_case_153() -> None: ) -def _smoke_case_154() -> None: +def _smoke_case_150() -> None: pin = client.pins.update( resource_type="session", resource_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1335,20 +1313,20 @@ def _smoke_case_154() -> None: ) -def _smoke_case_155() -> None: +def _smoke_case_151() -> None: pin = client.pins.delete( resource_type="session", resource_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_156() -> None: +def _smoke_case_152() -> None: pull_request = client.pull_requests.list( limit=50, ) -def _smoke_case_157() -> None: +def _smoke_case_153() -> None: pull_request = client.pull_requests.list( author_ids=["author_id"], created_after="2024-01-01T00:00:00.000Z", @@ -1372,19 +1350,19 @@ def _smoke_case_157() -> None: ) -def _smoke_case_158() -> None: +def _smoke_case_154() -> None: pull_request = client.pull_requests.retrieve( pull_request_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_159() -> None: +def _smoke_case_155() -> None: agent = client.agents.list( limit=50, ) -def _smoke_case_160() -> None: +def _smoke_case_156() -> None: agent = client.agents.list( cursor="cursor", limit=50, @@ -1398,11 +1376,11 @@ def _smoke_case_160() -> None: ) -def _smoke_case_161() -> None: +def _smoke_case_157() -> None: agent = client.agents.create() -def _smoke_case_162() -> None: +def _smoke_case_158() -> None: agent = client.agents.create( name="x", instructions={ @@ -1423,19 +1401,19 @@ def _smoke_case_162() -> None: ) -def _smoke_case_163() -> None: +def _smoke_case_159() -> None: agent = client.agents.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_164() -> None: +def _smoke_case_160() -> None: agent = client.agents.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_165() -> None: +def _smoke_case_161() -> None: agent = client.agents.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", expected_updated_at="2024-01-01T00:00:00.000Z", @@ -1460,39 +1438,39 @@ def _smoke_case_165() -> None: ) -def _smoke_case_166() -> None: +def _smoke_case_162() -> None: agent = client.agents.delete( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_167() -> None: +def _smoke_case_163() -> None: template = client.agents.templates.list( limit=50, ) -def _smoke_case_168() -> None: +def _smoke_case_164() -> None: template = client.agents.templates.list( cursor="addTestCoverage", limit=50, ) -def _smoke_case_169() -> None: +def _smoke_case_165() -> None: template = client.agents.templates.retrieve( template_name="templateName", ) -def _smoke_case_170() -> None: +def _smoke_case_166() -> None: schedule = client.agents.schedules.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_171() -> None: +def _smoke_case_167() -> None: schedule = client.agents.schedules.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1500,21 +1478,21 @@ def _smoke_case_171() -> None: ) -def _smoke_case_172() -> None: +def _smoke_case_168() -> None: schedule = client.agents.schedules.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cron="x", ) -def _smoke_case_173() -> None: +def _smoke_case_169() -> None: schedule = client.agents.schedules.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", schedule_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_174() -> None: +def _smoke_case_170() -> None: schedule = client.agents.schedules.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", schedule_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1522,21 +1500,21 @@ def _smoke_case_174() -> None: ) -def _smoke_case_175() -> None: +def _smoke_case_171() -> None: schedule = client.agents.schedules.delete( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", schedule_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_176() -> None: +def _smoke_case_172() -> None: trigger = client.agents.triggers.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_177() -> None: +def _smoke_case_173() -> None: trigger = client.agents.triggers.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1544,14 +1522,14 @@ def _smoke_case_177() -> None: ) -def _smoke_case_178() -> None: +def _smoke_case_174() -> None: trigger = client.agents.triggers.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", name="x", ) -def _smoke_case_179() -> None: +def _smoke_case_175() -> None: trigger = client.agents.triggers.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", name="x", @@ -1568,14 +1546,14 @@ def _smoke_case_179() -> None: ) -def _smoke_case_180() -> None: +def _smoke_case_176() -> None: trigger = client.agents.triggers.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_181() -> None: +def _smoke_case_177() -> None: trigger = client.agents.triggers.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1583,7 +1561,7 @@ def _smoke_case_181() -> None: ) -def _smoke_case_182() -> None: +def _smoke_case_178() -> None: trigger = client.agents.triggers.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1600,21 +1578,21 @@ def _smoke_case_182() -> None: ) -def _smoke_case_183() -> None: +def _smoke_case_179() -> None: trigger = client.agents.triggers.delete( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_184() -> None: +def _smoke_case_180() -> None: run = client.agents.runs.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_185() -> None: +def _smoke_case_181() -> None: run = client.agents.runs.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1622,34 +1600,34 @@ def _smoke_case_185() -> None: ) -def _smoke_case_186() -> None: +def _smoke_case_182() -> None: run = client.agents.runs.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_187() -> None: +def _smoke_case_183() -> None: run = client.agents.runs.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", body={}, ) -def _smoke_case_188() -> None: +def _smoke_case_184() -> None: run = client.agents.runs.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", run_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_189() -> None: +def _smoke_case_185() -> None: content_revision = client.agents.content_revisions.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_190() -> None: +def _smoke_case_186() -> None: content_revision = client.agents.content_revisions.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="cursor", @@ -1657,14 +1635,14 @@ def _smoke_case_190() -> None: ) -def _smoke_case_191() -> None: +def _smoke_case_187() -> None: content_revision = client.agents.content_revisions.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", version=1, ) -def _smoke_case_192() -> None: +def _smoke_case_188() -> None: content_revision = client.agents.content_revisions.restore( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", version=1, @@ -1672,7 +1650,7 @@ def _smoke_case_192() -> None: ) -def _smoke_case_193() -> None: +def _smoke_case_189() -> None: repository = client.repositories.list( limit=50, enabled="all", @@ -1681,7 +1659,7 @@ def _smoke_case_193() -> None: ) -def _smoke_case_194() -> None: +def _smoke_case_190() -> None: repository = client.repositories.list( cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, @@ -1694,20 +1672,20 @@ def _smoke_case_194() -> None: ) -def _smoke_case_195() -> None: +def _smoke_case_191() -> None: repository = client.repositories.retrieve( repository_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_196() -> None: +def _smoke_case_192() -> None: repository = client.repositories.update( repository_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", enabled=False, ) -def _smoke_case_197() -> None: +def _smoke_case_193() -> None: repository = client.repositories.update( repository_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", enabled=False, @@ -1716,14 +1694,14 @@ def _smoke_case_197() -> None: ) -def _smoke_case_198() -> None: +def _smoke_case_194() -> None: integration = client.integrations.list( limit=50, include_total=False, ) -def _smoke_case_199() -> None: +def _smoke_case_195() -> None: integration = client.integrations.list( cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, @@ -1738,7 +1716,7 @@ def _smoke_case_199() -> None: ) -def _smoke_case_200() -> None: +def _smoke_case_196() -> None: integration = client.integrations.create( environment="x", role_arn="x", @@ -1746,20 +1724,20 @@ def _smoke_case_200() -> None: ) -def _smoke_case_201() -> None: +def _smoke_case_197() -> None: integration = client.integrations.retrieve( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_202() -> None: +def _smoke_case_198() -> None: integration = client.integrations.update( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", settings={}, ) -def _smoke_case_203() -> None: +def _smoke_case_199() -> None: integration = client.integrations.update( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", settings={ @@ -1771,19 +1749,19 @@ def _smoke_case_203() -> None: ) -def _smoke_case_204() -> None: +def _smoke_case_200() -> None: integration = client.integrations.delete( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_205() -> None: +def _smoke_case_201() -> None: integration = client.integrations.authorize( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_206() -> None: +def _smoke_case_202() -> None: integration = client.integrations.authorize( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", return_url="https://example.com", @@ -1791,47 +1769,47 @@ def _smoke_case_206() -> None: ) -def _smoke_case_207() -> None: +def _smoke_case_203() -> None: integration = client.integrations.test( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_208() -> None: +def _smoke_case_204() -> None: integration = client.integrations.sync( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", mode="queued", ) -def _smoke_case_209() -> None: +def _smoke_case_205() -> None: integration = client.integrations.sync_all() -def _smoke_case_210() -> None: +def _smoke_case_206() -> None: integration = client.integrations.retrieve_sync_status() -def _smoke_case_211() -> None: +def _smoke_case_207() -> None: integration = client.integrations.retrieve_sync_status( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_212() -> None: +def _smoke_case_208() -> None: integration = client.integrations.retrieve_rate_limit( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_213() -> None: +def _smoke_case_209() -> None: integration = client.integrations.list_sentry_environments( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_214() -> None: +def _smoke_case_210() -> None: integration = client.integrations.list_sentry_environments( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="cursor", @@ -1839,14 +1817,14 @@ def _smoke_case_214() -> None: ) -def _smoke_case_215() -> None: +def _smoke_case_211() -> None: integration = client.integrations.list_slack_channels( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_216() -> None: +def _smoke_case_212() -> None: integration = client.integrations.list_slack_channels( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="cursor", @@ -1855,13 +1833,13 @@ def _smoke_case_216() -> None: ) -def _smoke_case_217() -> None: +def _smoke_case_213() -> None: provider = client.integrations.providers.list( limit=50, ) -def _smoke_case_218() -> None: +def _smoke_case_214() -> None: provider = client.integrations.providers.list( cursor="cursor", limit=50, @@ -1869,7 +1847,7 @@ def _smoke_case_218() -> None: ) -def _smoke_case_219() -> None: +def _smoke_case_215() -> None: provider = client.integrations.providers.discover_snyk_organizations( client_id="x", client_secret="x", @@ -1877,7 +1855,7 @@ def _smoke_case_219() -> None: ) -def _smoke_case_220() -> None: +def _smoke_case_216() -> None: provider = client.integrations.providers.discover_snyk_organizations( client_id="x", client_secret="x", @@ -1886,27 +1864,27 @@ def _smoke_case_220() -> None: ) -def _smoke_case_221() -> None: +def _smoke_case_217() -> None: trigger = client.integrations.triggers.list( limit=50, ) -def _smoke_case_222() -> None: +def _smoke_case_218() -> None: trigger = client.integrations.triggers.list( cursor="cursor", limit=50, ) -def _smoke_case_223() -> None: +def _smoke_case_219() -> None: trigger = client.integrations.triggers.retrieve( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_name="triggerName", ) -def _smoke_case_224() -> None: +def _smoke_case_220() -> None: trigger = client.integrations.triggers.list_filter_options( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_name="triggerName", @@ -1915,7 +1893,7 @@ def _smoke_case_224() -> None: ) -def _smoke_case_225() -> None: +def _smoke_case_221() -> None: trigger = client.integrations.triggers.list_filter_options( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_name="triggerName", @@ -1926,20 +1904,21 @@ def _smoke_case_225() -> None: ) -def _smoke_case_226() -> None: +def _smoke_case_222() -> None: billing = client.billing.retrieve() -def _smoke_case_227() -> None: +def _smoke_case_223() -> None: billing = client.billing.list_usage( limit=50, ) -def _smoke_case_228() -> None: +def _smoke_case_224() -> None: billing = client.billing.list_usage( cursor="cursor", limit=50, + type="all", session_id="session_id", created_after="2024-01-01T00:00:00.000Z", created_before="2024-01-01T00:00:00.000Z", @@ -1948,11 +1927,11 @@ def _smoke_case_228() -> None: ) -def _smoke_case_229() -> None: +def _smoke_case_225() -> None: live = client.live.authorize() -def _smoke_case_230() -> None: +def _smoke_case_226() -> None: def _probe() -> None: with client.live.connect() as socket: try: @@ -2272,1227 +2251,1201 @@ def _probe() -> None: "path": "/v1/organizations/{organizationId}/subscriptions", "run": _smoke_case_46, }, - { - "operation": "reset", - "method": "POST", - "path": "/v1/organizations/{organizationId}/subscriptions/reset", - "run": _smoke_case_47, - }, { "operation": "list", "method": "GET", "path": "/v1/mcp-connections", "label": "required params", - "run": _smoke_case_48, + "run": _smoke_case_47, }, { "operation": "list", "method": "GET", "path": "/v1/mcp-connections", "label": "all params", - "run": _smoke_case_49, + "run": _smoke_case_48, }, { "operation": "create", "method": "POST", "path": "/v1/mcp-connections", "label": "required params", - "run": _smoke_case_50, + "run": _smoke_case_49, }, { "operation": "create", "method": "POST", "path": "/v1/mcp-connections", "label": "all params", - "run": _smoke_case_51, + "run": _smoke_case_50, }, { "operation": "retrieve", "method": "GET", "path": "/v1/mcp-connections/{mcpConnectionId}", - "run": _smoke_case_52, + "run": _smoke_case_51, }, { "operation": "update", "method": "PATCH", "path": "/v1/mcp-connections/{mcpConnectionId}", "label": "required params", - "run": _smoke_case_53, + "run": _smoke_case_52, }, { "operation": "update", "method": "PATCH", "path": "/v1/mcp-connections/{mcpConnectionId}", "label": "all params", - "run": _smoke_case_54, + "run": _smoke_case_53, }, { "operation": "delete", "method": "DELETE", "path": "/v1/mcp-connections/{mcpConnectionId}", - "run": _smoke_case_55, + "run": _smoke_case_54, }, { "operation": "authorize", "method": "POST", "path": "/v1/mcp-connections/{mcpConnectionId}/authorize", - "run": _smoke_case_56, + "run": _smoke_case_55, }, { "operation": "test", "method": "POST", "path": "/v1/mcp-connections/{mcpConnectionId}/test", - "run": _smoke_case_57, + "run": _smoke_case_56, }, { "operation": "list", "method": "GET", "path": "/v1/artifacts", "label": "required params", - "run": _smoke_case_58, + "run": _smoke_case_57, }, { "operation": "list", "method": "GET", "path": "/v1/artifacts", "label": "all params", - "run": _smoke_case_59, + "run": _smoke_case_58, }, { "operation": "create", "method": "POST", "path": "/v1/artifacts", "label": "required params", - "run": _smoke_case_60, + "run": _smoke_case_59, }, { "operation": "create", "method": "POST", "path": "/v1/artifacts", "label": "all params", - "run": _smoke_case_61, + "run": _smoke_case_60, }, { "operation": "retrieve", "method": "GET", "path": "/v1/artifacts/{artifactId}", - "run": _smoke_case_62, + "run": _smoke_case_61, }, { "operation": "delete", "method": "DELETE", "path": "/v1/artifacts/{artifactId}", - "run": _smoke_case_63, + "run": _smoke_case_62, }, { "operation": "list", "method": "GET", "path": "/v1/messages", "label": "required params", - "run": _smoke_case_64, + "run": _smoke_case_63, }, { "operation": "list", "method": "GET", "path": "/v1/messages", "label": "all params", - "run": _smoke_case_65, + "run": _smoke_case_64, }, { "operation": "create", "method": "POST", "path": "/v1/messages", "label": "required params", - "run": _smoke_case_66, + "run": _smoke_case_65, }, { "operation": "create", "method": "POST", "path": "/v1/messages", "label": "all params", - "run": _smoke_case_67, + "run": _smoke_case_66, }, { "operation": "retrieve", "method": "GET", "path": "/v1/messages/{messageId}", - "run": _smoke_case_68, + "run": _smoke_case_67, }, { "operation": "update", "method": "PATCH", "path": "/v1/messages/{messageId}", "label": "required params", - "run": _smoke_case_69, + "run": _smoke_case_68, }, { "operation": "update", "method": "PATCH", "path": "/v1/messages/{messageId}", "label": "all params", - "run": _smoke_case_70, + "run": _smoke_case_69, }, { "operation": "delete", "method": "DELETE", "path": "/v1/messages/{messageId}", - "run": _smoke_case_71, + "run": _smoke_case_70, }, { "operation": "list", "method": "GET", "path": "/v1/models", "label": "required params", - "run": _smoke_case_72, + "run": _smoke_case_71, }, { "operation": "list", "method": "GET", "path": "/v1/models", "label": "all params", - "run": _smoke_case_73, + "run": _smoke_case_72, }, { "operation": "update", "method": "PATCH", "path": "/v1/models/{modelName}", "label": "required params", - "run": _smoke_case_74, + "run": _smoke_case_73, }, { "operation": "update", "method": "PATCH", "path": "/v1/models/{modelName}", "label": "all params", - "run": _smoke_case_75, + "run": _smoke_case_74, }, { "operation": "list", "method": "GET", "path": "/v1/runtimes", "label": "required params", - "run": _smoke_case_76, + "run": _smoke_case_75, }, { "operation": "list", "method": "GET", "path": "/v1/runtimes", "label": "all params", - "run": _smoke_case_77, + "run": _smoke_case_76, }, { "operation": "me", "method": "GET", "path": "/v1/users/me", - "run": _smoke_case_78, + "run": _smoke_case_77, }, { "operation": "retrieve", "method": "GET", "path": "/v1/users/{userId}", - "run": _smoke_case_79, - }, - { - "operation": "delete", - "method": "DELETE", - "path": "/v1/users/{userId}", - "label": "required params", - "run": _smoke_case_80, - }, - { - "operation": "delete", - "method": "DELETE", - "path": "/v1/users/{userId}", - "label": "all params", - "run": _smoke_case_81, + "run": _smoke_case_78, }, { "operation": "retrieve", "method": "GET", "path": "/v1/users/{userId}/settings", - "run": _smoke_case_82, + "run": _smoke_case_79, }, { "operation": "update", "method": "PATCH", "path": "/v1/users/{userId}/settings", "label": "required params", - "run": _smoke_case_83, + "run": _smoke_case_80, }, { "operation": "update", "method": "PATCH", "path": "/v1/users/{userId}/settings", "label": "all params", - "run": _smoke_case_84, + "run": _smoke_case_81, }, { "operation": "list", "method": "GET", "path": "/v1/users/{userId}/connected-accounts", "label": "required params", - "run": _smoke_case_85, + "run": _smoke_case_82, }, { "operation": "list", "method": "GET", "path": "/v1/users/{userId}/connected-accounts", "label": "all params", - "run": _smoke_case_86, + "run": _smoke_case_83, }, { "operation": "retrieve", "method": "GET", "path": "/v1/users/{userId}/connected-accounts/{connectedAccountId}", - "run": _smoke_case_87, + "run": _smoke_case_84, }, { "operation": "retrieve", "method": "GET", "path": "/v1/users/{userId}/subscriptions", - "run": _smoke_case_88, - }, - { - "operation": "reset", - "method": "POST", - "path": "/v1/users/{userId}/subscriptions/reset", - "run": _smoke_case_89, + "run": _smoke_case_85, }, { "operation": "retrieve", "method": "GET", "path": "/v1/users/{userId}/profile-picture", - "run": _smoke_case_90, + "run": _smoke_case_86, }, { "operation": "update", "method": "PUT", "path": "/v1/users/{userId}/profile-picture", - "run": _smoke_case_91, + "run": _smoke_case_87, }, { "operation": "delete", "method": "DELETE", "path": "/v1/users/{userId}/profile-picture", - "run": _smoke_case_92, + "run": _smoke_case_88, }, { "operation": "list", "method": "GET", "path": "/v1/sessions", "label": "required params", - "run": _smoke_case_93, + "run": _smoke_case_89, }, { "operation": "list", "method": "GET", "path": "/v1/sessions", "label": "all params", - "run": _smoke_case_94, + "run": _smoke_case_90, }, { "operation": "create", "method": "POST", "path": "/v1/sessions", "label": "required params", - "run": _smoke_case_95, + "run": _smoke_case_91, }, { "operation": "create", "method": "POST", "path": "/v1/sessions", "label": "all params", - "run": _smoke_case_96, + "run": _smoke_case_92, }, { "operation": "retrieve", "method": "GET", "path": "/v1/sessions/{sessionId}", - "run": _smoke_case_97, + "run": _smoke_case_93, }, { "operation": "update", "method": "PATCH", "path": "/v1/sessions/{sessionId}", "label": "required params", - "run": _smoke_case_98, + "run": _smoke_case_94, }, { "operation": "update", "method": "PATCH", "path": "/v1/sessions/{sessionId}", "label": "all params", - "run": _smoke_case_99, + "run": _smoke_case_95, }, { "operation": "delete", "method": "DELETE", "path": "/v1/sessions/{sessionId}", - "run": _smoke_case_100, + "run": _smoke_case_96, }, { "operation": "fork", "method": "POST", "path": "/v1/sessions/{sessionId}/fork", "label": "required params", - "run": _smoke_case_101, + "run": _smoke_case_97, }, { "operation": "fork", "method": "POST", "path": "/v1/sessions/{sessionId}/fork", "label": "all params", - "run": _smoke_case_102, + "run": _smoke_case_98, }, { "operation": "stop", "method": "POST", "path": "/v1/sessions/{sessionId}/stop", "label": "required params", - "run": _smoke_case_103, + "run": _smoke_case_99, }, { "operation": "stop", "method": "POST", "path": "/v1/sessions/{sessionId}/stop", "label": "all params", - "run": _smoke_case_104, + "run": _smoke_case_100, }, { "operation": "listEvents", "method": "GET", "path": "/v1/sessions/{sessionId}/events", "label": "required params", - "run": _smoke_case_105, + "run": _smoke_case_101, }, { "operation": "listEvents", "method": "GET", "path": "/v1/sessions/{sessionId}/events", "label": "all params", - "run": _smoke_case_106, + "run": _smoke_case_102, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/sources", "label": "required params", - "run": _smoke_case_107, + "run": _smoke_case_103, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/sources", "label": "all params", - "run": _smoke_case_108, + "run": _smoke_case_104, }, { "operation": "retrieve", "method": "GET", "path": "/v1/sessions/sources/{sourceId}", - "run": _smoke_case_109, + "run": _smoke_case_105, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/{sessionId}/diffs", "label": "required params", - "run": _smoke_case_110, + "run": _smoke_case_106, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/{sessionId}/diffs", "label": "all params", - "run": _smoke_case_111, + "run": _smoke_case_107, }, { "operation": "retrieve", "method": "GET", "path": "/v1/sessions/{sessionId}/diffs/{diffId}", - "run": _smoke_case_112, + "run": _smoke_case_108, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/{sessionId}/inputs", - "run": _smoke_case_113, + "run": _smoke_case_109, }, { "operation": "update", "method": "PATCH", "path": "/v1/sessions/{sessionId}/inputs/{inputId}", - "run": _smoke_case_114, + "run": _smoke_case_110, }, { "operation": "update", "method": "PUT", "path": "/v1/sessions/{sessionId}/queue", - "run": _smoke_case_115, + "run": _smoke_case_111, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/{sessionId}/commands", - "run": _smoke_case_116, + "run": _smoke_case_112, }, { "operation": "updateDefaults", "method": "PUT", "path": "/v1/projects/defaults", - "run": _smoke_case_117, + "run": _smoke_case_113, }, { "operation": "list", "method": "GET", "path": "/v1/projects", "label": "required params", - "run": _smoke_case_118, + "run": _smoke_case_114, }, { "operation": "list", "method": "GET", "path": "/v1/projects", "label": "all params", - "run": _smoke_case_119, + "run": _smoke_case_115, }, { "operation": "create", "method": "POST", "path": "/v1/projects", "label": "required params", - "run": _smoke_case_120, + "run": _smoke_case_116, }, { "operation": "create", "method": "POST", "path": "/v1/projects", "label": "all params", - "run": _smoke_case_121, + "run": _smoke_case_117, }, { "operation": "retrieve", "method": "GET", "path": "/v1/projects/{projectId}", - "run": _smoke_case_122, + "run": _smoke_case_118, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}", "label": "required params", - "run": _smoke_case_123, + "run": _smoke_case_119, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}", "label": "all params", - "run": _smoke_case_124, + "run": _smoke_case_120, }, { "operation": "delete", "method": "DELETE", "path": "/v1/projects/{projectId}", - "run": _smoke_case_125, + "run": _smoke_case_121, }, { "operation": "duplicate", "method": "POST", "path": "/v1/projects/{projectId}/duplicate", - "run": _smoke_case_126, + "run": _smoke_case_122, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/environment-variables", - "run": _smoke_case_127, + "run": _smoke_case_123, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/environment-variables", - "run": _smoke_case_128, + "run": _smoke_case_124, }, { "operation": "delete", "method": "DELETE", "path": "/v1/projects/{projectId}/environment-variables/{key}", - "run": _smoke_case_129, + "run": _smoke_case_125, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/snapshots", "label": "required params", - "run": _smoke_case_130, + "run": _smoke_case_126, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/snapshots", "label": "all params", - "run": _smoke_case_131, + "run": _smoke_case_127, }, { "operation": "retrieve", "method": "GET", "path": "/v1/projects/{projectId}/snapshots/{snapshotId}", - "run": _smoke_case_132, + "run": _smoke_case_128, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}/snapshots/{snapshotId}", "label": "required params", - "run": _smoke_case_133, + "run": _smoke_case_129, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}/snapshots/{snapshotId}", "label": "all params", - "run": _smoke_case_134, + "run": _smoke_case_130, }, { "operation": "delete", "method": "DELETE", "path": "/v1/projects/{projectId}/snapshots/{snapshotId}", - "run": _smoke_case_135, + "run": _smoke_case_131, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/builds", "label": "required params", - "run": _smoke_case_136, + "run": _smoke_case_132, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/builds", "label": "all params", - "run": _smoke_case_137, + "run": _smoke_case_133, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/builds", "label": "required params", - "run": _smoke_case_138, + "run": _smoke_case_134, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/builds", "label": "all params", - "run": _smoke_case_139, + "run": _smoke_case_135, }, { "operation": "retrieve", "method": "GET", "path": "/v1/projects/{projectId}/builds/{buildId}", - "run": _smoke_case_140, + "run": _smoke_case_136, }, { "operation": "cancel", "method": "POST", "path": "/v1/projects/{projectId}/builds/{buildId}/cancel", - "run": _smoke_case_141, + "run": _smoke_case_137, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/schedules", "label": "required params", - "run": _smoke_case_142, + "run": _smoke_case_138, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/schedules", "label": "all params", - "run": _smoke_case_143, + "run": _smoke_case_139, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/schedules", "label": "required params", - "run": _smoke_case_144, + "run": _smoke_case_140, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/schedules", "label": "all params", - "run": _smoke_case_145, + "run": _smoke_case_141, }, { "operation": "retrieve", "method": "GET", "path": "/v1/projects/{projectId}/schedules/{scheduleId}", - "run": _smoke_case_146, + "run": _smoke_case_142, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}/schedules/{scheduleId}", "label": "required params", - "run": _smoke_case_147, + "run": _smoke_case_143, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}/schedules/{scheduleId}", "label": "all params", - "run": _smoke_case_148, + "run": _smoke_case_144, }, { "operation": "delete", "method": "DELETE", "path": "/v1/projects/{projectId}/schedules/{scheduleId}", - "run": _smoke_case_149, + "run": _smoke_case_145, }, { "operation": "list", "method": "GET", "path": "/v1/pins", "label": "required params", - "run": _smoke_case_150, + "run": _smoke_case_146, }, { "operation": "list", "method": "GET", "path": "/v1/pins", "label": "all params", - "run": _smoke_case_151, + "run": _smoke_case_147, }, { "operation": "create", "method": "POST", "path": "/v1/pins", "label": "required params", - "run": _smoke_case_152, + "run": _smoke_case_148, }, { "operation": "create", "method": "POST", "path": "/v1/pins", "label": "all params", - "run": _smoke_case_153, + "run": _smoke_case_149, }, { "operation": "update", "method": "PATCH", "path": "/v1/pins/{resourceType}/{resourceId}", - "run": _smoke_case_154, + "run": _smoke_case_150, }, { "operation": "delete", "method": "DELETE", "path": "/v1/pins/{resourceType}/{resourceId}", - "run": _smoke_case_155, + "run": _smoke_case_151, }, { "operation": "list", "method": "GET", "path": "/v1/pull-requests", "label": "required params", - "run": _smoke_case_156, + "run": _smoke_case_152, }, { "operation": "list", "method": "GET", "path": "/v1/pull-requests", "label": "all params", - "run": _smoke_case_157, + "run": _smoke_case_153, }, { "operation": "retrieve", "method": "GET", "path": "/v1/pull-requests/{pullRequestId}", - "run": _smoke_case_158, + "run": _smoke_case_154, }, { "operation": "list", "method": "GET", "path": "/v1/agents", "label": "required params", - "run": _smoke_case_159, + "run": _smoke_case_155, }, { "operation": "list", "method": "GET", "path": "/v1/agents", "label": "all params", - "run": _smoke_case_160, + "run": _smoke_case_156, }, { "operation": "create", "method": "POST", "path": "/v1/agents", "label": "required params", - "run": _smoke_case_161, + "run": _smoke_case_157, }, { "operation": "create", "method": "POST", "path": "/v1/agents", "label": "all params", - "run": _smoke_case_162, + "run": _smoke_case_158, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}", - "run": _smoke_case_163, + "run": _smoke_case_159, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}", "label": "required params", - "run": _smoke_case_164, + "run": _smoke_case_160, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}", "label": "all params", - "run": _smoke_case_165, + "run": _smoke_case_161, }, { "operation": "delete", "method": "DELETE", "path": "/v1/agents/{agentId}", - "run": _smoke_case_166, + "run": _smoke_case_162, }, { "operation": "list", "method": "GET", "path": "/v1/agents/templates", "label": "required params", - "run": _smoke_case_167, + "run": _smoke_case_163, }, { "operation": "list", "method": "GET", "path": "/v1/agents/templates", "label": "all params", - "run": _smoke_case_168, + "run": _smoke_case_164, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/templates/{templateName}", - "run": _smoke_case_169, + "run": _smoke_case_165, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/schedules", "label": "required params", - "run": _smoke_case_170, + "run": _smoke_case_166, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/schedules", "label": "all params", - "run": _smoke_case_171, + "run": _smoke_case_167, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/schedules", - "run": _smoke_case_172, + "run": _smoke_case_168, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}/schedules/{scheduleId}", - "run": _smoke_case_173, + "run": _smoke_case_169, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}/schedules/{scheduleId}", - "run": _smoke_case_174, + "run": _smoke_case_170, }, { "operation": "delete", "method": "DELETE", "path": "/v1/agents/{agentId}/schedules/{scheduleId}", - "run": _smoke_case_175, + "run": _smoke_case_171, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/triggers", "label": "required params", - "run": _smoke_case_176, + "run": _smoke_case_172, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/triggers", "label": "all params", - "run": _smoke_case_177, + "run": _smoke_case_173, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/triggers", "label": "required params", - "run": _smoke_case_178, + "run": _smoke_case_174, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/triggers", "label": "all params", - "run": _smoke_case_179, + "run": _smoke_case_175, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}/triggers/{triggerId}", - "run": _smoke_case_180, + "run": _smoke_case_176, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}/triggers/{triggerId}", "label": "required params", - "run": _smoke_case_181, + "run": _smoke_case_177, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}/triggers/{triggerId}", "label": "all params", - "run": _smoke_case_182, + "run": _smoke_case_178, }, { "operation": "delete", "method": "DELETE", "path": "/v1/agents/{agentId}/triggers/{triggerId}", - "run": _smoke_case_183, + "run": _smoke_case_179, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/runs", "label": "required params", - "run": _smoke_case_184, + "run": _smoke_case_180, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/runs", "label": "all params", - "run": _smoke_case_185, + "run": _smoke_case_181, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/runs", "label": "required params", - "run": _smoke_case_186, + "run": _smoke_case_182, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/runs", "label": "all params", - "run": _smoke_case_187, + "run": _smoke_case_183, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}/runs/{runId}", - "run": _smoke_case_188, + "run": _smoke_case_184, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/content-revisions", "label": "required params", - "run": _smoke_case_189, + "run": _smoke_case_185, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/content-revisions", "label": "all params", - "run": _smoke_case_190, + "run": _smoke_case_186, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}/content-revisions/{version}", - "run": _smoke_case_191, + "run": _smoke_case_187, }, { "operation": "restore", "method": "POST", "path": "/v1/agents/{agentId}/content-revisions/{version}/restore", - "run": _smoke_case_192, + "run": _smoke_case_188, }, { "operation": "list", "method": "GET", "path": "/v1/repositories", "label": "required params", - "run": _smoke_case_193, + "run": _smoke_case_189, }, { "operation": "list", "method": "GET", "path": "/v1/repositories", "label": "all params", - "run": _smoke_case_194, + "run": _smoke_case_190, }, { "operation": "retrieve", "method": "GET", "path": "/v1/repositories/{repositoryId}", - "run": _smoke_case_195, + "run": _smoke_case_191, }, { "operation": "update", "method": "PATCH", "path": "/v1/repositories/{repositoryId}", "label": "required params", - "run": _smoke_case_196, + "run": _smoke_case_192, }, { "operation": "update", "method": "PATCH", "path": "/v1/repositories/{repositoryId}", "label": "all params", - "run": _smoke_case_197, + "run": _smoke_case_193, }, { "operation": "list", "method": "GET", "path": "/v1/integrations", "label": "required params", - "run": _smoke_case_198, + "run": _smoke_case_194, }, { "operation": "list", "method": "GET", "path": "/v1/integrations", "label": "all params", - "run": _smoke_case_199, + "run": _smoke_case_195, }, { "operation": "create", "method": "POST", "path": "/v1/integrations", - "run": _smoke_case_200, + "run": _smoke_case_196, }, { "operation": "retrieve", "method": "GET", "path": "/v1/integrations/{integrationId}", - "run": _smoke_case_201, + "run": _smoke_case_197, }, { "operation": "update", "method": "PATCH", "path": "/v1/integrations/{integrationId}", "label": "required params", - "run": _smoke_case_202, + "run": _smoke_case_198, }, { "operation": "update", "method": "PATCH", "path": "/v1/integrations/{integrationId}", "label": "all params", - "run": _smoke_case_203, + "run": _smoke_case_199, }, { "operation": "delete", "method": "DELETE", "path": "/v1/integrations/{integrationId}", - "run": _smoke_case_204, + "run": _smoke_case_200, }, { "operation": "authorize", "method": "POST", "path": "/v1/integrations/{integrationId}/authorize", "label": "required params", - "run": _smoke_case_205, + "run": _smoke_case_201, }, { "operation": "authorize", "method": "POST", "path": "/v1/integrations/{integrationId}/authorize", "label": "all params", - "run": _smoke_case_206, + "run": _smoke_case_202, }, { "operation": "test", "method": "POST", "path": "/v1/integrations/{integrationId}/test", - "run": _smoke_case_207, + "run": _smoke_case_203, }, { "operation": "sync", "method": "POST", "path": "/v1/integrations/{integrationId}/sync", - "run": _smoke_case_208, + "run": _smoke_case_204, }, { "operation": "syncAll", "method": "POST", "path": "/v1/integrations/sync", - "run": _smoke_case_209, + "run": _smoke_case_205, }, { "operation": "retrieveSyncStatus", "method": "GET", "path": "/v1/integrations/sync/status", "label": "required params", - "run": _smoke_case_210, + "run": _smoke_case_206, }, { "operation": "retrieveSyncStatus", "method": "GET", "path": "/v1/integrations/sync/status", "label": "all params", - "run": _smoke_case_211, + "run": _smoke_case_207, }, { "operation": "retrieveRateLimit", "method": "GET", "path": "/v1/integrations/{integrationId}/rate-limit", - "run": _smoke_case_212, + "run": _smoke_case_208, }, { "operation": "listSentryEnvironments", "method": "GET", "path": "/v1/integrations/{integrationId}/sentry-environments", "label": "required params", - "run": _smoke_case_213, + "run": _smoke_case_209, }, { "operation": "listSentryEnvironments", "method": "GET", "path": "/v1/integrations/{integrationId}/sentry-environments", "label": "all params", - "run": _smoke_case_214, + "run": _smoke_case_210, }, { "operation": "listSlackChannels", "method": "GET", "path": "/v1/integrations/{integrationId}/slack-channels", "label": "required params", - "run": _smoke_case_215, + "run": _smoke_case_211, }, { "operation": "listSlackChannels", "method": "GET", "path": "/v1/integrations/{integrationId}/slack-channels", "label": "all params", - "run": _smoke_case_216, + "run": _smoke_case_212, }, { "operation": "list", "method": "GET", "path": "/v1/integrations/providers", "label": "required params", - "run": _smoke_case_217, + "run": _smoke_case_213, }, { "operation": "list", "method": "GET", "path": "/v1/integrations/providers", "label": "all params", - "run": _smoke_case_218, + "run": _smoke_case_214, }, { "operation": "discoverSnykOrganizations", "method": "POST", "path": "/v1/integrations/providers/snyk/organizations", "label": "required params", - "run": _smoke_case_219, + "run": _smoke_case_215, }, { "operation": "discoverSnykOrganizations", "method": "POST", "path": "/v1/integrations/providers/snyk/organizations", "label": "all params", - "run": _smoke_case_220, + "run": _smoke_case_216, }, { "operation": "list", "method": "GET", "path": "/v1/integrations/triggers", "label": "required params", - "run": _smoke_case_221, + "run": _smoke_case_217, }, { "operation": "list", "method": "GET", "path": "/v1/integrations/triggers", "label": "all params", - "run": _smoke_case_222, + "run": _smoke_case_218, }, { "operation": "retrieve", "method": "GET", "path": "/v1/integrations/{integrationId}/triggers/{triggerName}", - "run": _smoke_case_223, + "run": _smoke_case_219, }, { "operation": "listFilterOptions", "method": "GET", "path": "/v1/integrations/{integrationId}/triggers/{triggerName}/filter-options/{field}", "label": "required params", - "run": _smoke_case_224, + "run": _smoke_case_220, }, { "operation": "listFilterOptions", "method": "GET", "path": "/v1/integrations/{integrationId}/triggers/{triggerName}/filter-options/{field}", "label": "all params", - "run": _smoke_case_225, + "run": _smoke_case_221, }, { "operation": "retrieve", "method": "GET", "path": "/v1/billing", - "run": _smoke_case_226, + "run": _smoke_case_222, }, { "operation": "listUsage", "method": "GET", "path": "/v1/billing/usage", "label": "required params", - "run": _smoke_case_227, + "run": _smoke_case_223, }, { "operation": "listUsage", "method": "GET", "path": "/v1/billing/usage", "label": "all params", - "run": _smoke_case_228, + "run": _smoke_case_224, }, { "operation": "authorize", "method": "POST", "path": "/v1/live", - "run": _smoke_case_229, + "run": _smoke_case_225, }, { "operation": "connect", "method": "GET", "path": "/v1/live", - "run": _smoke_case_230, + "run": _smoke_case_226, }, ] From aecec170fe9b4bc13722dadbdbc08e9b662b2f90 Mon Sep 17 00:00:00 2001 From: scalarbot Date: Wed, 28 Oct 2026 13:07:10 +0000 Subject: [PATCH 2/3] feat(api): update SDK surface (3 changes) - Added operation `users.environmentVariables.list` (`GET /v1/users/{userId}/environment-variables`). - Added operation `users.environmentVariables.create` (`POST /v1/users/{userId}/environment-variables`). - Added operation `users.environmentVariables.delete` (`DELETE /v1/users/{userId}/environment-variables/{environmentVariableId}`). Build: bhJ3d7hxEAbmoY8QsmiqX --- api.md | 52 ++ scalar-sdk.manifest.json | 368 +++++++++++ src/tembo/resources/users/__init__.py | 14 + .../resources/users/environment_variables.py | 399 ++++++++++++ src/tembo/resources/users/users.py | 32 + src/tembo/types/users/__init__.py | 4 + .../environment_variable_create_params.py | 15 + .../environment_variable_create_response.py | 19 + .../environment_variable_delete_response.py | 13 + .../environment_variable_list_response.py | 26 + tests/smoke-test.py | 601 ++++++++++-------- 11 files changed, 1262 insertions(+), 281 deletions(-) create mode 100644 src/tembo/resources/users/environment_variables.py create mode 100644 src/tembo/types/users/environment_variable_create_params.py create mode 100644 src/tembo/types/users/environment_variable_create_response.py create mode 100644 src/tembo/types/users/environment_variable_delete_response.py create mode 100644 src/tembo/types/users/environment_variable_list_response.py diff --git a/api.md b/api.md index 787f3663..26cd37b7 100644 --- a/api.md +++ b/api.md @@ -82,6 +82,10 @@ Complete reference of every operation, grouped by resource. See [the README](./R - [Retrieve a user connected account](#retrieve-a-user-connected-account) - [`Users Subscriptions`](#users-subscriptions) - [Retrieve user subscriptions](#retrieve-user-subscriptions) + - [`Users EnvironmentVariables`](#users-environmentvariables) + - [List personal environment variables](#list-personal-environment-variables) + - [Create a personal environment variable](#create-a-personal-environment-variable) + - [Delete a personal environment variable](#delete-a-personal-environment-variable) - [`Users ProfilePicture`](#users-profilepicture) - [Retrieve a user profile picture](#retrieve-a-user-profile-picture) - [Update your profile picture](#update-your-profile-picture) @@ -1157,6 +1161,54 @@ subscription = client.users.subscriptions.retrieve( ) ``` +### `Users EnvironmentVariables` + +#### List personal environment variables + +List your personal environment variables in the current organization. Values are never returned. + +| Direction | Type | +| --- | --- | +| Response | [`EnvironmentVariableListResponse`](./src/tembo/types/users/environment_variable_list_response.py) | + +```python +environment_variable = client.users.environment_variables.list( + user_id="userId", +) +``` + +#### Create a personal environment variable + +Store an encrypted environment variable that is injected into every session you start in the current organization. + +| Direction | Type | +| --- | --- | +| Request | [`EnvironmentVariableCreateParams`](./src/tembo/types/users/environment_variable_create_params.py) | +| Response | [`EnvironmentVariableCreateResponse`](./src/tembo/types/users/environment_variable_create_response.py) | + +```python +environment_variable = client.users.environment_variables.create( + user_id="userId", + key="x", + value="x", +) +``` + +#### Delete a personal environment variable + +Permanently delete a personal environment variable. Sessions started afterwards no longer receive it. + +| Direction | Type | +| --- | --- | +| Response | [`EnvironmentVariableDeleteResponse`](./src/tembo/types/users/environment_variable_delete_response.py) | + +```python +environment_variable = client.users.environment_variables.delete( + user_id="userId", + environment_variable_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", +) +``` + ### `Users ProfilePicture` #### Retrieve a user profile picture diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json index c61f8138..d915f393 100644 --- a/scalar-sdk.manifest.json +++ b/scalar-sdk.manifest.json @@ -6715,6 +6715,7 @@ "users.settings", "users.connectedAccounts", "users.subscriptions", + "users.environmentVariables", "users.profilePicture", "sessions", "sessions.sources", @@ -6761,6 +6762,7 @@ "users.settings", "users.connectedAccounts", "users.subscriptions", + "users.environmentVariables", "users.profilePicture", "sessions", "sessions.sources", @@ -14754,6 +14756,372 @@ "responseLinks": [], "transport": "http" }, + { + "resource": "users.environmentVariables", + "publicResource": "users.environmentVariables", + "operation": "list", + "publicOperation": "list", + "deprecated": false, + "method": "GET", + "path": "/v1/users/{userId}/environment-variables", + "pathParams": [ + "userId" + ], + "publicPathParams": [ + "userId" + ], + "queryParams": [], + "publicQueryParams": [], + "headerParams": [], + "publicHeaderParams": [], + "bodyParams": [], + "publicBodyParams": [], + "bodyParamDetails": [], + "pathParamDetails": [ + { + "name": "userId", + "required": true, + "style": "simple", + "explode": false + } + ], + "queryParamDetails": [], + "headerParamDetails": [], + "cookieParams": [], + "publicCookieParams": [], + "cookieParamDetails": [], + "paramsModel": { + "publicName": "EnvironmentVariableListParams" + }, + "response": { + "status": "200", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + "result": { + "successStatus": "200", + "errorStatuses": [ + "400", + "403", + "404", + "500" + ] + }, + "errorResponses": [ + { + "status": "400", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "403", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "404", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "500", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + } + ], + "responseLinks": [], + "transport": "http" + }, + { + "resource": "users.environmentVariables", + "publicResource": "users.environmentVariables", + "operation": "create", + "publicOperation": "create", + "deprecated": false, + "method": "POST", + "path": "/v1/users/{userId}/environment-variables", + "pathParams": [ + "userId" + ], + "publicPathParams": [ + "userId" + ], + "queryParams": [], + "publicQueryParams": [], + "headerParams": [], + "publicHeaderParams": [], + "bodyParams": [ + "key", + "value" + ], + "publicBodyParams": [ + "key", + "value" + ], + "bodyParamDetails": [ + { + "name": "key", + "required": true + }, + { + "name": "value", + "required": true + } + ], + "pathParamDetails": [ + { + "name": "userId", + "required": true, + "style": "simple", + "explode": false + } + ], + "queryParamDetails": [], + "headerParamDetails": [], + "cookieParams": [], + "publicCookieParams": [], + "cookieParamDetails": [], + "paramsModel": { + "publicName": "EnvironmentVariableCreateParams" + }, + "requestBody": { + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ], + "required": true, + "publicName": "body", + "publicIdentifier": "body" + }, + "response": { + "status": "201", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + "result": { + "successStatus": "201", + "errorStatuses": [ + "400", + "403", + "404", + "409", + "500" + ] + }, + "errorResponses": [ + { + "status": "400", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "403", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "404", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "409", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "500", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + } + ], + "responseLinks": [], + "transport": "http" + }, + { + "resource": "users.environmentVariables", + "publicResource": "users.environmentVariables", + "operation": "delete", + "publicOperation": "delete", + "deprecated": false, + "method": "DELETE", + "path": "/v1/users/{userId}/environment-variables/{environmentVariableId}", + "pathParams": [ + "userId", + "environmentVariableId" + ], + "publicPathParams": [ + "userId", + "environmentVariableId" + ], + "queryParams": [], + "publicQueryParams": [], + "headerParams": [], + "publicHeaderParams": [], + "bodyParams": [], + "publicBodyParams": [], + "bodyParamDetails": [], + "pathParamDetails": [ + { + "name": "userId", + "required": true, + "style": "simple", + "explode": false + }, + { + "name": "environmentVariableId", + "required": true, + "style": "simple", + "explode": false + } + ], + "queryParamDetails": [], + "headerParamDetails": [], + "cookieParams": [], + "publicCookieParams": [], + "cookieParamDetails": [], + "paramsModel": { + "publicName": "EnvironmentVariableDeleteParams" + }, + "response": { + "status": "200", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + "result": { + "successStatus": "200", + "errorStatuses": [ + "400", + "403", + "404", + "500" + ] + }, + "errorResponses": [ + { + "status": "400", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "403", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "404", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + }, + { + "status": "500", + "contentType": "application/json", + "encoding": "json", + "contents": [ + { + "contentType": "application/json", + "encoding": "json" + } + ] + } + ], + "responseLinks": [], + "transport": "http" + }, { "resource": "users.profilePicture", "publicResource": "users.profilePicture", diff --git a/src/tembo/resources/users/__init__.py b/src/tembo/resources/users/__init__.py index 3c1e1c87..ac076a2b 100644 --- a/src/tembo/resources/users/__init__.py +++ b/src/tembo/resources/users/__init__.py @@ -32,6 +32,14 @@ SubscriptionsResourceWithStreamingResponse, AsyncSubscriptionsResourceWithStreamingResponse, ) +from .environment_variables import ( + EnvironmentVariablesResource, + AsyncEnvironmentVariablesResource, + EnvironmentVariablesResourceWithRawResponse, + AsyncEnvironmentVariablesResourceWithRawResponse, + EnvironmentVariablesResourceWithStreamingResponse, + AsyncEnvironmentVariablesResourceWithStreamingResponse, +) from .profile_picture import ( ProfilePictureResource, AsyncProfilePictureResource, @@ -66,6 +74,12 @@ "AsyncSubscriptionsResourceWithRawResponse", "SubscriptionsResourceWithStreamingResponse", "AsyncSubscriptionsResourceWithStreamingResponse", + "EnvironmentVariablesResource", + "AsyncEnvironmentVariablesResource", + "EnvironmentVariablesResourceWithRawResponse", + "AsyncEnvironmentVariablesResourceWithRawResponse", + "EnvironmentVariablesResourceWithStreamingResponse", + "AsyncEnvironmentVariablesResourceWithStreamingResponse", "ProfilePictureResource", "AsyncProfilePictureResource", "ProfilePictureResourceWithRawResponse", diff --git a/src/tembo/resources/users/environment_variables.py b/src/tembo/resources/users/environment_variables.py new file mode 100644 index 00000000..6f99c12e --- /dev/null +++ b/src/tembo/resources/users/environment_variables.py @@ -0,0 +1,399 @@ +# File generated from our OpenAPI spec by Scalar. See README.md for details. + +from __future__ import annotations + +import httpx + +from ..._types import Body, Query, Headers, NotGiven, not_given +from ..._utils import path_template, maybe_transform, async_maybe_transform +from ..._compat import cached_property +from ..._resource import SyncAPIResource, AsyncAPIResource +from ..._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ..._base_client import make_request_options +from ...types.users.environment_variable_list_response import EnvironmentVariableListResponse +from ...types.users.environment_variable_create_response import EnvironmentVariableCreateResponse +from ...types.users import environment_variable_create_params +from ...types.users.environment_variable_delete_response import EnvironmentVariableDeleteResponse + +__all__ = ["EnvironmentVariablesResource", "AsyncEnvironmentVariablesResource"] + + +class EnvironmentVariablesResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> EnvironmentVariablesResourceWithRawResponse: + return EnvironmentVariablesResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> EnvironmentVariablesResourceWithStreamingResponse: + return EnvironmentVariablesResourceWithStreamingResponse(self) + + def list( + self, + user_id: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> EnvironmentVariableListResponse: + """ + List your personal environment variables in the current organization. Values are never returned. + + Args: + user_id: Path parameter. + extra_headers: Send extra headers with the request. + extra_query: Send extra query parameters with the request. + extra_body: Send extra JSON properties with the request. + timeout: Override the client-level default timeout for this request, in seconds. + + Returns: + EnvironmentVariableListResponse: List personal environment variables + + Example: + ```python + environment_variable = client.users.environment_variables.list( + user_id="userId", + ) + ``` + """ + if user_id is None or (isinstance(user_id, str) and not user_id): + raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") + return self._get( + path_template("/v1/users/{userId}/environment-variables", **{"userId": user_id}), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=EnvironmentVariableListResponse, + ) + + def create( + self, + user_id: str, + *, + key: str, + value: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> EnvironmentVariableCreateResponse: + """ + Store an encrypted environment variable that is injected into every session you start in the current organization. + + Args: + user_id: Path parameter. + key: Environment variable name, e.g. GITHUB_TOKEN. + value: Plaintext value to encrypt and store. List operations never return it. + extra_headers: Send extra headers with the request. + extra_query: Send extra query parameters with the request. + extra_body: Send extra JSON properties with the request. + timeout: Override the client-level default timeout for this request, in seconds. + + Returns: + EnvironmentVariableCreateResponse: Create a personal environment variable + + Example: + ```python + environment_variable = client.users.environment_variables.create( + user_id="userId", + key="x", + value="x", + ) + ``` + """ + if user_id is None or (isinstance(user_id, str) and not user_id): + raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") + return self._post( + path_template("/v1/users/{userId}/environment-variables", **{"userId": user_id}), + body=maybe_transform( + { + "key": key, + "value": value, + }, + environment_variable_create_params.EnvironmentVariableCreateParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=EnvironmentVariableCreateResponse, + ) + + def delete( + self, + environment_variable_id: str, + *, + user_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> EnvironmentVariableDeleteResponse: + """ + Permanently delete a personal environment variable. Sessions started afterwards no longer receive it. + + Args: + environment_variable_id: Path parameter. + user_id: Path parameter. + extra_headers: Send extra headers with the request. + extra_query: Send extra query parameters with the request. + extra_body: Send extra JSON properties with the request. + timeout: Override the client-level default timeout for this request, in seconds. + + Returns: + EnvironmentVariableDeleteResponse: Delete a personal environment variable + + Example: + ```python + environment_variable = client.users.environment_variables.delete( + user_id="userId", + environment_variable_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", + ) + ``` + """ + if user_id is None or (isinstance(user_id, str) and not user_id): + raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") + if environment_variable_id is None or ( + isinstance(environment_variable_id, str) and not environment_variable_id + ): + raise ValueError( + f"Expected a non-empty value for `environment_variable_id` but received {environment_variable_id!r}" + ) + return self._delete( + path_template( + "/v1/users/{userId}/environment-variables/{environmentVariableId}", + **{"userId": user_id, "environmentVariableId": environment_variable_id}, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=EnvironmentVariableDeleteResponse, + ) + + +class AsyncEnvironmentVariablesResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncEnvironmentVariablesResourceWithRawResponse: + return AsyncEnvironmentVariablesResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncEnvironmentVariablesResourceWithStreamingResponse: + return AsyncEnvironmentVariablesResourceWithStreamingResponse(self) + + async def list( + self, + user_id: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> EnvironmentVariableListResponse: + """ + List your personal environment variables in the current organization. Values are never returned. + + Args: + user_id: Path parameter. + extra_headers: Send extra headers with the request. + extra_query: Send extra query parameters with the request. + extra_body: Send extra JSON properties with the request. + timeout: Override the client-level default timeout for this request, in seconds. + + Returns: + EnvironmentVariableListResponse: List personal environment variables + + Example: + ```python + environment_variable = await client.users.environment_variables.list( + user_id="userId", + ) + ``` + """ + if user_id is None or (isinstance(user_id, str) and not user_id): + raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") + return await self._get( + path_template("/v1/users/{userId}/environment-variables", **{"userId": user_id}), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=EnvironmentVariableListResponse, + ) + + async def create( + self, + user_id: str, + *, + key: str, + value: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> EnvironmentVariableCreateResponse: + """ + Store an encrypted environment variable that is injected into every session you start in the current organization. + + Args: + user_id: Path parameter. + key: Environment variable name, e.g. GITHUB_TOKEN. + value: Plaintext value to encrypt and store. List operations never return it. + extra_headers: Send extra headers with the request. + extra_query: Send extra query parameters with the request. + extra_body: Send extra JSON properties with the request. + timeout: Override the client-level default timeout for this request, in seconds. + + Returns: + EnvironmentVariableCreateResponse: Create a personal environment variable + + Example: + ```python + environment_variable = await client.users.environment_variables.create( + user_id="userId", + key="x", + value="x", + ) + ``` + """ + if user_id is None or (isinstance(user_id, str) and not user_id): + raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") + return await self._post( + path_template("/v1/users/{userId}/environment-variables", **{"userId": user_id}), + body=await async_maybe_transform( + { + "key": key, + "value": value, + }, + environment_variable_create_params.EnvironmentVariableCreateParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=EnvironmentVariableCreateResponse, + ) + + async def delete( + self, + environment_variable_id: str, + *, + user_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> EnvironmentVariableDeleteResponse: + """ + Permanently delete a personal environment variable. Sessions started afterwards no longer receive it. + + Args: + environment_variable_id: Path parameter. + user_id: Path parameter. + extra_headers: Send extra headers with the request. + extra_query: Send extra query parameters with the request. + extra_body: Send extra JSON properties with the request. + timeout: Override the client-level default timeout for this request, in seconds. + + Returns: + EnvironmentVariableDeleteResponse: Delete a personal environment variable + + Example: + ```python + environment_variable = await client.users.environment_variables.delete( + user_id="userId", + environment_variable_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", + ) + ``` + """ + if user_id is None or (isinstance(user_id, str) and not user_id): + raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}") + if environment_variable_id is None or ( + isinstance(environment_variable_id, str) and not environment_variable_id + ): + raise ValueError( + f"Expected a non-empty value for `environment_variable_id` but received {environment_variable_id!r}" + ) + return await self._delete( + path_template( + "/v1/users/{userId}/environment-variables/{environmentVariableId}", + **{"userId": user_id, "environmentVariableId": environment_variable_id}, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=EnvironmentVariableDeleteResponse, + ) + + +class EnvironmentVariablesResourceWithRawResponse: + def __init__(self, environment_variables: EnvironmentVariablesResource) -> None: + self._environment_variables = environment_variables + + self.list = to_raw_response_wrapper( + environment_variables.list, + ) + self.create = to_raw_response_wrapper( + environment_variables.create, + ) + self.delete = to_raw_response_wrapper( + environment_variables.delete, + ) + + +class AsyncEnvironmentVariablesResourceWithRawResponse: + def __init__(self, environment_variables: AsyncEnvironmentVariablesResource) -> None: + self._environment_variables = environment_variables + + self.list = async_to_raw_response_wrapper( + environment_variables.list, + ) + self.create = async_to_raw_response_wrapper( + environment_variables.create, + ) + self.delete = async_to_raw_response_wrapper( + environment_variables.delete, + ) + + +class EnvironmentVariablesResourceWithStreamingResponse: + def __init__(self, environment_variables: EnvironmentVariablesResource) -> None: + self._environment_variables = environment_variables + + self.list = to_streamed_response_wrapper( + environment_variables.list, + ) + self.create = to_streamed_response_wrapper( + environment_variables.create, + ) + self.delete = to_streamed_response_wrapper( + environment_variables.delete, + ) + + +class AsyncEnvironmentVariablesResourceWithStreamingResponse: + def __init__(self, environment_variables: AsyncEnvironmentVariablesResource) -> None: + self._environment_variables = environment_variables + + self.list = async_to_streamed_response_wrapper( + environment_variables.list, + ) + self.create = async_to_streamed_response_wrapper( + environment_variables.create, + ) + self.delete = async_to_streamed_response_wrapper( + environment_variables.delete, + ) diff --git a/src/tembo/resources/users/users.py b/src/tembo/resources/users/users.py index fd1d55d1..28ff79a8 100644 --- a/src/tembo/resources/users/users.py +++ b/src/tembo/resources/users/users.py @@ -39,6 +39,14 @@ SubscriptionsResourceWithStreamingResponse, AsyncSubscriptionsResourceWithStreamingResponse, ) +from .environment_variables import ( + EnvironmentVariablesResource, + AsyncEnvironmentVariablesResource, + EnvironmentVariablesResourceWithRawResponse, + AsyncEnvironmentVariablesResourceWithRawResponse, + EnvironmentVariablesResourceWithStreamingResponse, + AsyncEnvironmentVariablesResourceWithStreamingResponse, +) from .profile_picture import ( ProfilePictureResource, AsyncProfilePictureResource, @@ -66,6 +74,10 @@ def connected_accounts(self) -> ConnectedAccountsResource: def subscriptions(self) -> SubscriptionsResource: return SubscriptionsResource(self._client) + @cached_property + def environment_variables(self) -> EnvironmentVariablesResource: + return EnvironmentVariablesResource(self._client) + @cached_property def profile_picture(self) -> ProfilePictureResource: return ProfilePictureResource(self._client) @@ -168,6 +180,10 @@ def connected_accounts(self) -> AsyncConnectedAccountsResource: def subscriptions(self) -> AsyncSubscriptionsResource: return AsyncSubscriptionsResource(self._client) + @cached_property + def environment_variables(self) -> AsyncEnvironmentVariablesResource: + return AsyncEnvironmentVariablesResource(self._client) + @cached_property def profile_picture(self) -> AsyncProfilePictureResource: return AsyncProfilePictureResource(self._client) @@ -280,6 +296,10 @@ def connected_accounts(self) -> ConnectedAccountsResourceWithRawResponse: def subscriptions(self) -> SubscriptionsResourceWithRawResponse: return SubscriptionsResourceWithRawResponse(self._users.subscriptions) + @cached_property + def environment_variables(self) -> EnvironmentVariablesResourceWithRawResponse: + return EnvironmentVariablesResourceWithRawResponse(self._users.environment_variables) + @cached_property def profile_picture(self) -> ProfilePictureResourceWithRawResponse: return ProfilePictureResourceWithRawResponse(self._users.profile_picture) @@ -308,6 +328,10 @@ def connected_accounts(self) -> AsyncConnectedAccountsResourceWithRawResponse: def subscriptions(self) -> AsyncSubscriptionsResourceWithRawResponse: return AsyncSubscriptionsResourceWithRawResponse(self._users.subscriptions) + @cached_property + def environment_variables(self) -> AsyncEnvironmentVariablesResourceWithRawResponse: + return AsyncEnvironmentVariablesResourceWithRawResponse(self._users.environment_variables) + @cached_property def profile_picture(self) -> AsyncProfilePictureResourceWithRawResponse: return AsyncProfilePictureResourceWithRawResponse(self._users.profile_picture) @@ -336,6 +360,10 @@ def connected_accounts(self) -> ConnectedAccountsResourceWithStreamingResponse: def subscriptions(self) -> SubscriptionsResourceWithStreamingResponse: return SubscriptionsResourceWithStreamingResponse(self._users.subscriptions) + @cached_property + def environment_variables(self) -> EnvironmentVariablesResourceWithStreamingResponse: + return EnvironmentVariablesResourceWithStreamingResponse(self._users.environment_variables) + @cached_property def profile_picture(self) -> ProfilePictureResourceWithStreamingResponse: return ProfilePictureResourceWithStreamingResponse(self._users.profile_picture) @@ -364,6 +392,10 @@ def connected_accounts(self) -> AsyncConnectedAccountsResourceWithStreamingRespo def subscriptions(self) -> AsyncSubscriptionsResourceWithStreamingResponse: return AsyncSubscriptionsResourceWithStreamingResponse(self._users.subscriptions) + @cached_property + def environment_variables(self) -> AsyncEnvironmentVariablesResourceWithStreamingResponse: + return AsyncEnvironmentVariablesResourceWithStreamingResponse(self._users.environment_variables) + @cached_property def profile_picture(self) -> AsyncProfilePictureResourceWithStreamingResponse: return AsyncProfilePictureResourceWithStreamingResponse(self._users.profile_picture) diff --git a/src/tembo/types/users/__init__.py b/src/tembo/types/users/__init__.py index 917641b1..ff2484ee 100644 --- a/src/tembo/types/users/__init__.py +++ b/src/tembo/types/users/__init__.py @@ -9,6 +9,10 @@ from .connected_account_list_params import ConnectedAccountListParams as ConnectedAccountListParams from .connected_account_retrieve_response import ConnectedAccountRetrieveResponse as ConnectedAccountRetrieveResponse from .subscription_retrieve_response import SubscriptionRetrieveResponse as SubscriptionRetrieveResponse +from .environment_variable_list_response import EnvironmentVariableListResponse as EnvironmentVariableListResponse +from .environment_variable_create_response import EnvironmentVariableCreateResponse as EnvironmentVariableCreateResponse +from .environment_variable_create_params import EnvironmentVariableCreateParams as EnvironmentVariableCreateParams +from .environment_variable_delete_response import EnvironmentVariableDeleteResponse as EnvironmentVariableDeleteResponse from .profile_picture_update_response import ProfilePictureUpdateResponse as ProfilePictureUpdateResponse from .profile_picture_update_params import ProfilePictureUpdateParams as ProfilePictureUpdateParams from .profile_picture_delete_response import ProfilePictureDeleteResponse as ProfilePictureDeleteResponse diff --git a/src/tembo/types/users/environment_variable_create_params.py b/src/tembo/types/users/environment_variable_create_params.py new file mode 100644 index 00000000..a73a638d --- /dev/null +++ b/src/tembo/types/users/environment_variable_create_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Scalar. See README.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["EnvironmentVariableCreateParams"] + + +class EnvironmentVariableCreateParams(TypedDict, total=False): + key: Required[str] + """Environment variable name, e.g. GITHUB_TOKEN.""" + + value: Required[str] + """Plaintext value to encrypt and store. List operations never return it.""" diff --git a/src/tembo/types/users/environment_variable_create_response.py b/src/tembo/types/users/environment_variable_create_response.py new file mode 100644 index 00000000..3479bf13 --- /dev/null +++ b/src/tembo/types/users/environment_variable_create_response.py @@ -0,0 +1,19 @@ +# File generated from our OpenAPI spec by Scalar. See README.md for details. + +from datetime import datetime + +from pydantic import Field as FieldInfo + +from ..._models import BaseModel + +__all__ = ["EnvironmentVariableCreateResponse"] + + +class EnvironmentVariableCreateResponse(BaseModel): + created_at: datetime = FieldInfo(alias="createdAt") + + id: str + + key: str + + updated_at: datetime = FieldInfo(alias="updatedAt") diff --git a/src/tembo/types/users/environment_variable_delete_response.py b/src/tembo/types/users/environment_variable_delete_response.py new file mode 100644 index 00000000..918b401e --- /dev/null +++ b/src/tembo/types/users/environment_variable_delete_response.py @@ -0,0 +1,13 @@ +# File generated from our OpenAPI spec by Scalar. See README.md for details. + +from typing_extensions import Literal + +from ..._models import BaseModel + +__all__ = ["EnvironmentVariableDeleteResponse"] + + +class EnvironmentVariableDeleteResponse(BaseModel): + deleted: Literal[True] + + id: str diff --git a/src/tembo/types/users/environment_variable_list_response.py b/src/tembo/types/users/environment_variable_list_response.py new file mode 100644 index 00000000..b1603e9e --- /dev/null +++ b/src/tembo/types/users/environment_variable_list_response.py @@ -0,0 +1,26 @@ +# File generated from our OpenAPI spec by Scalar. See README.md for details. + +from __future__ import annotations + +from typing import List +from datetime import datetime + +from pydantic import Field as FieldInfo + +from ..._models import BaseModel + +__all__ = ["EnvironmentVariableListResponse", "Item"] + + +class Item(BaseModel): + created_at: datetime = FieldInfo(alias="createdAt") + + id: str + + key: str + + updated_at: datetime = FieldInfo(alias="updatedAt") + + +class EnvironmentVariableListResponse(BaseModel): + items: List[Item] diff --git a/tests/smoke-test.py b/tests/smoke-test.py index 5c195e16..6fa5aef5 100644 --- a/tests/smoke-test.py +++ b/tests/smoke-test.py @@ -762,25 +762,46 @@ def _smoke_case_85() -> None: def _smoke_case_86() -> None: - client.users.profile_picture.retrieve( + environment_variable = client.users.environment_variables.list( user_id="userId", ) def _smoke_case_87() -> None: + environment_variable = client.users.environment_variables.create( + user_id="userId", + key="x", + value="x", + ) + + +def _smoke_case_88() -> None: + environment_variable = client.users.environment_variables.delete( + user_id="userId", + environment_variable_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", + ) + + +def _smoke_case_89() -> None: + client.users.profile_picture.retrieve( + user_id="userId", + ) + + +def _smoke_case_90() -> None: profile_picture = client.users.profile_picture.update( user_id="userId", file=b"file", ) -def _smoke_case_88() -> None: +def _smoke_case_91() -> None: profile_picture = client.users.profile_picture.delete( user_id="userId", ) -def _smoke_case_89() -> None: +def _smoke_case_92() -> None: session = client.sessions.list( limit=50, include_archived=True, @@ -790,7 +811,7 @@ def _smoke_case_89() -> None: ) -def _smoke_case_90() -> None: +def _smoke_case_93() -> None: session = client.sessions.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", created_by=["created_by"], @@ -815,7 +836,7 @@ def _smoke_case_90() -> None: ) -def _smoke_case_91() -> None: +def _smoke_case_94() -> None: session = client.sessions.create( agent="claudeCode:claude-fable-5-1", base_branch="main", @@ -828,7 +849,7 @@ def _smoke_case_91() -> None: ) -def _smoke_case_92() -> None: +def _smoke_case_95() -> None: session = client.sessions.create( agent="claudeCode:claude-fable-5-1", base_branch="main", @@ -851,19 +872,19 @@ def _smoke_case_92() -> None: ) -def _smoke_case_93() -> None: +def _smoke_case_96() -> None: session = client.sessions.retrieve( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_94() -> None: +def _smoke_case_97() -> None: session = client.sessions.update( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_95() -> None: +def _smoke_case_98() -> None: session = client.sessions.update( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", memory_mb=1024, @@ -884,20 +905,20 @@ def _smoke_case_95() -> None: ) -def _smoke_case_96() -> None: +def _smoke_case_99() -> None: session = client.sessions.delete( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_97() -> None: +def _smoke_case_100() -> None: session = client.sessions.fork( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", queue_right_away=True, ) -def _smoke_case_98() -> None: +def _smoke_case_101() -> None: session = client.sessions.fork( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", prompt="x", @@ -906,27 +927,27 @@ def _smoke_case_98() -> None: ) -def _smoke_case_99() -> None: +def _smoke_case_102() -> None: session = client.sessions.stop( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_100() -> None: +def _smoke_case_103() -> None: session = client.sessions.stop( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cancel_queued=True, ) -def _smoke_case_101() -> None: +def _smoke_case_104() -> None: session = client.sessions.list_events( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_102() -> None: +def _smoke_case_105() -> None: session = client.sessions.list_events( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="cursor", @@ -936,14 +957,14 @@ def _smoke_case_102() -> None: ) -def _smoke_case_103() -> None: +def _smoke_case_106() -> None: source = client.sessions.sources.list( limit=50, include_total=False, ) -def _smoke_case_104() -> None: +def _smoke_case_107() -> None: source = client.sessions.sources.list( cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, @@ -956,20 +977,20 @@ def _smoke_case_104() -> None: ) -def _smoke_case_105() -> None: +def _smoke_case_108() -> None: source = client.sessions.sources.retrieve( source_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_106() -> None: +def _smoke_case_109() -> None: diff = client.sessions.diffs.list( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_107() -> None: +def _smoke_case_110() -> None: diff = client.sessions.diffs.list( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -978,20 +999,20 @@ def _smoke_case_107() -> None: ) -def _smoke_case_108() -> None: +def _smoke_case_111() -> None: diff = client.sessions.diffs.retrieve( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", diff_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_109() -> None: +def _smoke_case_112() -> None: input = client.sessions.inputs.list( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_110() -> None: +def _smoke_case_113() -> None: input = client.sessions.inputs.update( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", input_id="inputId", @@ -999,33 +1020,33 @@ def _smoke_case_110() -> None: ) -def _smoke_case_111() -> None: +def _smoke_case_114() -> None: queue = client.sessions.queue.update( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", message_ids=["7c9e6679-7425-40de-944b-e07fc1f90ae7"], ) -def _smoke_case_112() -> None: +def _smoke_case_115() -> None: command = client.sessions.commands.list( session_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_113() -> None: +def _smoke_case_116() -> None: project = client.projects.update_defaults( project_id="x", sandbox_size="nano", ) -def _smoke_case_114() -> None: +def _smoke_case_117() -> None: project = client.projects.list( limit=50, ) -def _smoke_case_115() -> None: +def _smoke_case_118() -> None: project = client.projects.list( cursor="cursor", limit=50, @@ -1034,7 +1055,7 @@ def _smoke_case_115() -> None: ) -def _smoke_case_116() -> None: +def _smoke_case_119() -> None: project = client.projects.create( name="x", sizes=["medium"], @@ -1042,7 +1063,7 @@ def _smoke_case_116() -> None: ) -def _smoke_case_117() -> None: +def _smoke_case_120() -> None: project = client.projects.create( description="", name="x", @@ -1061,20 +1082,20 @@ def _smoke_case_117() -> None: ) -def _smoke_case_118() -> None: +def _smoke_case_121() -> None: project = client.projects.retrieve( project_id="projectId", ) -def _smoke_case_119() -> None: +def _smoke_case_122() -> None: project = client.projects.update( project_id="projectId", resource_settings={"automaticSizing": False}, ) -def _smoke_case_120() -> None: +def _smoke_case_123() -> None: project = client.projects.update( project_id="projectId", description="", @@ -1096,46 +1117,46 @@ def _smoke_case_120() -> None: ) -def _smoke_case_121() -> None: +def _smoke_case_124() -> None: project = client.projects.delete( project_id="projectId", ) -def _smoke_case_122() -> None: +def _smoke_case_125() -> None: project = client.projects.duplicate( project_id="projectId", ) -def _smoke_case_123() -> None: +def _smoke_case_126() -> None: environment_variable = client.projects.environment_variables.list( project_id="projectId", ) -def _smoke_case_124() -> None: +def _smoke_case_127() -> None: environment_variable = client.projects.environment_variables.create( project_id="projectId", secrets=[{"key": "", "value": "x"}], ) -def _smoke_case_125() -> None: +def _smoke_case_128() -> None: environment_variable = client.projects.environment_variables.delete( project_id="projectId", key="key", ) -def _smoke_case_126() -> None: +def _smoke_case_129() -> None: snapshot = client.projects.snapshots.list( project_id="projectId", limit=50, ) -def _smoke_case_127() -> None: +def _smoke_case_130() -> None: snapshot = client.projects.snapshots.list( project_id="projectId", cursor="cursor", @@ -1143,21 +1164,21 @@ def _smoke_case_127() -> None: ) -def _smoke_case_128() -> None: +def _smoke_case_131() -> None: snapshot = client.projects.snapshots.retrieve( project_id="projectId", snapshot_id="snapshotId", ) -def _smoke_case_129() -> None: +def _smoke_case_132() -> None: snapshot = client.projects.snapshots.update( project_id="projectId", snapshot_id="snapshotId", ) -def _smoke_case_130() -> None: +def _smoke_case_133() -> None: snapshot = client.projects.snapshots.update( project_id="projectId", snapshot_id="snapshotId", @@ -1166,21 +1187,21 @@ def _smoke_case_130() -> None: ) -def _smoke_case_131() -> None: +def _smoke_case_134() -> None: snapshot = client.projects.snapshots.delete( project_id="projectId", snapshot_id="snapshotId", ) -def _smoke_case_132() -> None: +def _smoke_case_135() -> None: build = client.projects.builds.list( project_id="projectId", limit=50, ) -def _smoke_case_133() -> None: +def _smoke_case_136() -> None: build = client.projects.builds.list( project_id="projectId", cursor="cursor", @@ -1188,13 +1209,13 @@ def _smoke_case_133() -> None: ) -def _smoke_case_134() -> None: +def _smoke_case_137() -> None: build = client.projects.builds.create( project_id="projectId", ) -def _smoke_case_135() -> None: +def _smoke_case_138() -> None: build = client.projects.builds.create( project_id="projectId", sizes=["nano"], @@ -1202,28 +1223,28 @@ def _smoke_case_135() -> None: ) -def _smoke_case_136() -> None: +def _smoke_case_139() -> None: build = client.projects.builds.retrieve( project_id="projectId", build_id="buildId", ) -def _smoke_case_137() -> None: +def _smoke_case_140() -> None: build = client.projects.builds.cancel( project_id="projectId", build_id="buildId", ) -def _smoke_case_138() -> None: +def _smoke_case_141() -> None: schedule = client.projects.schedules.list( project_id="projectId", limit=50, ) -def _smoke_case_139() -> None: +def _smoke_case_142() -> None: schedule = client.projects.schedules.list( project_id="projectId", cursor="cursor", @@ -1231,14 +1252,14 @@ def _smoke_case_139() -> None: ) -def _smoke_case_140() -> None: +def _smoke_case_143() -> None: schedule = client.projects.schedules.create( project_id="projectId", cron="x", ) -def _smoke_case_141() -> None: +def _smoke_case_144() -> None: schedule = client.projects.schedules.create( project_id="projectId", cron="x", @@ -1246,21 +1267,21 @@ def _smoke_case_141() -> None: ) -def _smoke_case_142() -> None: +def _smoke_case_145() -> None: schedule = client.projects.schedules.retrieve( project_id="projectId", schedule_id="scheduleId", ) -def _smoke_case_143() -> None: +def _smoke_case_146() -> None: schedule = client.projects.schedules.update( project_id="projectId", schedule_id="scheduleId", ) -def _smoke_case_144() -> None: +def _smoke_case_147() -> None: schedule = client.projects.schedules.update( project_id="projectId", schedule_id="scheduleId", @@ -1270,34 +1291,34 @@ def _smoke_case_144() -> None: ) -def _smoke_case_145() -> None: +def _smoke_case_148() -> None: schedule = client.projects.schedules.delete( project_id="projectId", schedule_id="scheduleId", ) -def _smoke_case_146() -> None: +def _smoke_case_149() -> None: pin = client.pins.list( limit=50, ) -def _smoke_case_147() -> None: +def _smoke_case_150() -> None: pin = client.pins.list( cursor="cursor", limit=50, ) -def _smoke_case_148() -> None: +def _smoke_case_151() -> None: pin = client.pins.create( type="session", id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_149() -> None: +def _smoke_case_152() -> None: pin = client.pins.create( type="session", id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1305,7 +1326,7 @@ def _smoke_case_149() -> None: ) -def _smoke_case_150() -> None: +def _smoke_case_153() -> None: pin = client.pins.update( resource_type="session", resource_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1313,20 +1334,20 @@ def _smoke_case_150() -> None: ) -def _smoke_case_151() -> None: +def _smoke_case_154() -> None: pin = client.pins.delete( resource_type="session", resource_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_152() -> None: +def _smoke_case_155() -> None: pull_request = client.pull_requests.list( limit=50, ) -def _smoke_case_153() -> None: +def _smoke_case_156() -> None: pull_request = client.pull_requests.list( author_ids=["author_id"], created_after="2024-01-01T00:00:00.000Z", @@ -1350,19 +1371,19 @@ def _smoke_case_153() -> None: ) -def _smoke_case_154() -> None: +def _smoke_case_157() -> None: pull_request = client.pull_requests.retrieve( pull_request_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_155() -> None: +def _smoke_case_158() -> None: agent = client.agents.list( limit=50, ) -def _smoke_case_156() -> None: +def _smoke_case_159() -> None: agent = client.agents.list( cursor="cursor", limit=50, @@ -1376,11 +1397,11 @@ def _smoke_case_156() -> None: ) -def _smoke_case_157() -> None: +def _smoke_case_160() -> None: agent = client.agents.create() -def _smoke_case_158() -> None: +def _smoke_case_161() -> None: agent = client.agents.create( name="x", instructions={ @@ -1401,19 +1422,19 @@ def _smoke_case_158() -> None: ) -def _smoke_case_159() -> None: +def _smoke_case_162() -> None: agent = client.agents.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_160() -> None: +def _smoke_case_163() -> None: agent = client.agents.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_161() -> None: +def _smoke_case_164() -> None: agent = client.agents.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", expected_updated_at="2024-01-01T00:00:00.000Z", @@ -1438,39 +1459,39 @@ def _smoke_case_161() -> None: ) -def _smoke_case_162() -> None: +def _smoke_case_165() -> None: agent = client.agents.delete( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_163() -> None: +def _smoke_case_166() -> None: template = client.agents.templates.list( limit=50, ) -def _smoke_case_164() -> None: +def _smoke_case_167() -> None: template = client.agents.templates.list( cursor="addTestCoverage", limit=50, ) -def _smoke_case_165() -> None: +def _smoke_case_168() -> None: template = client.agents.templates.retrieve( template_name="templateName", ) -def _smoke_case_166() -> None: +def _smoke_case_169() -> None: schedule = client.agents.schedules.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_167() -> None: +def _smoke_case_170() -> None: schedule = client.agents.schedules.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1478,21 +1499,21 @@ def _smoke_case_167() -> None: ) -def _smoke_case_168() -> None: +def _smoke_case_171() -> None: schedule = client.agents.schedules.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cron="x", ) -def _smoke_case_169() -> None: +def _smoke_case_172() -> None: schedule = client.agents.schedules.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", schedule_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_170() -> None: +def _smoke_case_173() -> None: schedule = client.agents.schedules.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", schedule_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1500,21 +1521,21 @@ def _smoke_case_170() -> None: ) -def _smoke_case_171() -> None: +def _smoke_case_174() -> None: schedule = client.agents.schedules.delete( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", schedule_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_172() -> None: +def _smoke_case_175() -> None: trigger = client.agents.triggers.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_173() -> None: +def _smoke_case_176() -> None: trigger = client.agents.triggers.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1522,14 +1543,14 @@ def _smoke_case_173() -> None: ) -def _smoke_case_174() -> None: +def _smoke_case_177() -> None: trigger = client.agents.triggers.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", name="x", ) -def _smoke_case_175() -> None: +def _smoke_case_178() -> None: trigger = client.agents.triggers.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", name="x", @@ -1546,14 +1567,14 @@ def _smoke_case_175() -> None: ) -def _smoke_case_176() -> None: +def _smoke_case_179() -> None: trigger = client.agents.triggers.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_177() -> None: +def _smoke_case_180() -> None: trigger = client.agents.triggers.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1561,7 +1582,7 @@ def _smoke_case_177() -> None: ) -def _smoke_case_178() -> None: +def _smoke_case_181() -> None: trigger = client.agents.triggers.update( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1578,21 +1599,21 @@ def _smoke_case_178() -> None: ) -def _smoke_case_179() -> None: +def _smoke_case_182() -> None: trigger = client.agents.triggers.delete( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_180() -> None: +def _smoke_case_183() -> None: run = client.agents.runs.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_181() -> None: +def _smoke_case_184() -> None: run = client.agents.runs.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", @@ -1600,34 +1621,34 @@ def _smoke_case_181() -> None: ) -def _smoke_case_182() -> None: +def _smoke_case_185() -> None: run = client.agents.runs.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_183() -> None: +def _smoke_case_186() -> None: run = client.agents.runs.create( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", body={}, ) -def _smoke_case_184() -> None: +def _smoke_case_187() -> None: run = client.agents.runs.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", run_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_185() -> None: +def _smoke_case_188() -> None: content_revision = client.agents.content_revisions.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_186() -> None: +def _smoke_case_189() -> None: content_revision = client.agents.content_revisions.list( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="cursor", @@ -1635,14 +1656,14 @@ def _smoke_case_186() -> None: ) -def _smoke_case_187() -> None: +def _smoke_case_190() -> None: content_revision = client.agents.content_revisions.retrieve( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", version=1, ) -def _smoke_case_188() -> None: +def _smoke_case_191() -> None: content_revision = client.agents.content_revisions.restore( agent_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", version=1, @@ -1650,7 +1671,7 @@ def _smoke_case_188() -> None: ) -def _smoke_case_189() -> None: +def _smoke_case_192() -> None: repository = client.repositories.list( limit=50, enabled="all", @@ -1659,7 +1680,7 @@ def _smoke_case_189() -> None: ) -def _smoke_case_190() -> None: +def _smoke_case_193() -> None: repository = client.repositories.list( cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, @@ -1672,20 +1693,20 @@ def _smoke_case_190() -> None: ) -def _smoke_case_191() -> None: +def _smoke_case_194() -> None: repository = client.repositories.retrieve( repository_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_192() -> None: +def _smoke_case_195() -> None: repository = client.repositories.update( repository_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", enabled=False, ) -def _smoke_case_193() -> None: +def _smoke_case_196() -> None: repository = client.repositories.update( repository_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", enabled=False, @@ -1694,14 +1715,14 @@ def _smoke_case_193() -> None: ) -def _smoke_case_194() -> None: +def _smoke_case_197() -> None: integration = client.integrations.list( limit=50, include_total=False, ) -def _smoke_case_195() -> None: +def _smoke_case_198() -> None: integration = client.integrations.list( cursor="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, @@ -1716,7 +1737,7 @@ def _smoke_case_195() -> None: ) -def _smoke_case_196() -> None: +def _smoke_case_199() -> None: integration = client.integrations.create( environment="x", role_arn="x", @@ -1724,20 +1745,20 @@ def _smoke_case_196() -> None: ) -def _smoke_case_197() -> None: +def _smoke_case_200() -> None: integration = client.integrations.retrieve( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_198() -> None: +def _smoke_case_201() -> None: integration = client.integrations.update( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", settings={}, ) -def _smoke_case_199() -> None: +def _smoke_case_202() -> None: integration = client.integrations.update( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", settings={ @@ -1749,19 +1770,19 @@ def _smoke_case_199() -> None: ) -def _smoke_case_200() -> None: +def _smoke_case_203() -> None: integration = client.integrations.delete( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_201() -> None: +def _smoke_case_204() -> None: integration = client.integrations.authorize( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_202() -> None: +def _smoke_case_205() -> None: integration = client.integrations.authorize( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", return_url="https://example.com", @@ -1769,47 +1790,47 @@ def _smoke_case_202() -> None: ) -def _smoke_case_203() -> None: +def _smoke_case_206() -> None: integration = client.integrations.test( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_204() -> None: +def _smoke_case_207() -> None: integration = client.integrations.sync( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", mode="queued", ) -def _smoke_case_205() -> None: +def _smoke_case_208() -> None: integration = client.integrations.sync_all() -def _smoke_case_206() -> None: +def _smoke_case_209() -> None: integration = client.integrations.retrieve_sync_status() -def _smoke_case_207() -> None: +def _smoke_case_210() -> None: integration = client.integrations.retrieve_sync_status( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_208() -> None: +def _smoke_case_211() -> None: integration = client.integrations.retrieve_rate_limit( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", ) -def _smoke_case_209() -> None: +def _smoke_case_212() -> None: integration = client.integrations.list_sentry_environments( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_210() -> None: +def _smoke_case_213() -> None: integration = client.integrations.list_sentry_environments( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="cursor", @@ -1817,14 +1838,14 @@ def _smoke_case_210() -> None: ) -def _smoke_case_211() -> None: +def _smoke_case_214() -> None: integration = client.integrations.list_slack_channels( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", limit=50, ) -def _smoke_case_212() -> None: +def _smoke_case_215() -> None: integration = client.integrations.list_slack_channels( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", cursor="cursor", @@ -1833,13 +1854,13 @@ def _smoke_case_212() -> None: ) -def _smoke_case_213() -> None: +def _smoke_case_216() -> None: provider = client.integrations.providers.list( limit=50, ) -def _smoke_case_214() -> None: +def _smoke_case_217() -> None: provider = client.integrations.providers.list( cursor="cursor", limit=50, @@ -1847,7 +1868,7 @@ def _smoke_case_214() -> None: ) -def _smoke_case_215() -> None: +def _smoke_case_218() -> None: provider = client.integrations.providers.discover_snyk_organizations( client_id="x", client_secret="x", @@ -1855,7 +1876,7 @@ def _smoke_case_215() -> None: ) -def _smoke_case_216() -> None: +def _smoke_case_219() -> None: provider = client.integrations.providers.discover_snyk_organizations( client_id="x", client_secret="x", @@ -1864,27 +1885,27 @@ def _smoke_case_216() -> None: ) -def _smoke_case_217() -> None: +def _smoke_case_220() -> None: trigger = client.integrations.triggers.list( limit=50, ) -def _smoke_case_218() -> None: +def _smoke_case_221() -> None: trigger = client.integrations.triggers.list( cursor="cursor", limit=50, ) -def _smoke_case_219() -> None: +def _smoke_case_222() -> None: trigger = client.integrations.triggers.retrieve( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_name="triggerName", ) -def _smoke_case_220() -> None: +def _smoke_case_223() -> None: trigger = client.integrations.triggers.list_filter_options( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_name="triggerName", @@ -1893,7 +1914,7 @@ def _smoke_case_220() -> None: ) -def _smoke_case_221() -> None: +def _smoke_case_224() -> None: trigger = client.integrations.triggers.list_filter_options( integration_id="7c9e6679-7425-40de-944b-e07fc1f90ae7", trigger_name="triggerName", @@ -1904,17 +1925,17 @@ def _smoke_case_221() -> None: ) -def _smoke_case_222() -> None: +def _smoke_case_225() -> None: billing = client.billing.retrieve() -def _smoke_case_223() -> None: +def _smoke_case_226() -> None: billing = client.billing.list_usage( limit=50, ) -def _smoke_case_224() -> None: +def _smoke_case_227() -> None: billing = client.billing.list_usage( cursor="cursor", limit=50, @@ -1927,11 +1948,11 @@ def _smoke_case_224() -> None: ) -def _smoke_case_225() -> None: +def _smoke_case_228() -> None: live = client.live.authorize() -def _smoke_case_226() -> None: +def _smoke_case_229() -> None: def _probe() -> None: with client.live.connect() as socket: try: @@ -2511,941 +2532,959 @@ def _probe() -> None: "path": "/v1/users/{userId}/subscriptions", "run": _smoke_case_85, }, + { + "operation": "list", + "method": "GET", + "path": "/v1/users/{userId}/environment-variables", + "run": _smoke_case_86, + }, + { + "operation": "create", + "method": "POST", + "path": "/v1/users/{userId}/environment-variables", + "run": _smoke_case_87, + }, + { + "operation": "delete", + "method": "DELETE", + "path": "/v1/users/{userId}/environment-variables/{environmentVariableId}", + "run": _smoke_case_88, + }, { "operation": "retrieve", "method": "GET", "path": "/v1/users/{userId}/profile-picture", - "run": _smoke_case_86, + "run": _smoke_case_89, }, { "operation": "update", "method": "PUT", "path": "/v1/users/{userId}/profile-picture", - "run": _smoke_case_87, + "run": _smoke_case_90, }, { "operation": "delete", "method": "DELETE", "path": "/v1/users/{userId}/profile-picture", - "run": _smoke_case_88, + "run": _smoke_case_91, }, { "operation": "list", "method": "GET", "path": "/v1/sessions", "label": "required params", - "run": _smoke_case_89, + "run": _smoke_case_92, }, { "operation": "list", "method": "GET", "path": "/v1/sessions", "label": "all params", - "run": _smoke_case_90, + "run": _smoke_case_93, }, { "operation": "create", "method": "POST", "path": "/v1/sessions", "label": "required params", - "run": _smoke_case_91, + "run": _smoke_case_94, }, { "operation": "create", "method": "POST", "path": "/v1/sessions", "label": "all params", - "run": _smoke_case_92, + "run": _smoke_case_95, }, { "operation": "retrieve", "method": "GET", "path": "/v1/sessions/{sessionId}", - "run": _smoke_case_93, + "run": _smoke_case_96, }, { "operation": "update", "method": "PATCH", "path": "/v1/sessions/{sessionId}", "label": "required params", - "run": _smoke_case_94, + "run": _smoke_case_97, }, { "operation": "update", "method": "PATCH", "path": "/v1/sessions/{sessionId}", "label": "all params", - "run": _smoke_case_95, + "run": _smoke_case_98, }, { "operation": "delete", "method": "DELETE", "path": "/v1/sessions/{sessionId}", - "run": _smoke_case_96, + "run": _smoke_case_99, }, { "operation": "fork", "method": "POST", "path": "/v1/sessions/{sessionId}/fork", "label": "required params", - "run": _smoke_case_97, + "run": _smoke_case_100, }, { "operation": "fork", "method": "POST", "path": "/v1/sessions/{sessionId}/fork", "label": "all params", - "run": _smoke_case_98, + "run": _smoke_case_101, }, { "operation": "stop", "method": "POST", "path": "/v1/sessions/{sessionId}/stop", "label": "required params", - "run": _smoke_case_99, + "run": _smoke_case_102, }, { "operation": "stop", "method": "POST", "path": "/v1/sessions/{sessionId}/stop", "label": "all params", - "run": _smoke_case_100, + "run": _smoke_case_103, }, { "operation": "listEvents", "method": "GET", "path": "/v1/sessions/{sessionId}/events", "label": "required params", - "run": _smoke_case_101, + "run": _smoke_case_104, }, { "operation": "listEvents", "method": "GET", "path": "/v1/sessions/{sessionId}/events", "label": "all params", - "run": _smoke_case_102, + "run": _smoke_case_105, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/sources", "label": "required params", - "run": _smoke_case_103, + "run": _smoke_case_106, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/sources", "label": "all params", - "run": _smoke_case_104, + "run": _smoke_case_107, }, { "operation": "retrieve", "method": "GET", "path": "/v1/sessions/sources/{sourceId}", - "run": _smoke_case_105, + "run": _smoke_case_108, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/{sessionId}/diffs", "label": "required params", - "run": _smoke_case_106, + "run": _smoke_case_109, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/{sessionId}/diffs", "label": "all params", - "run": _smoke_case_107, + "run": _smoke_case_110, }, { "operation": "retrieve", "method": "GET", "path": "/v1/sessions/{sessionId}/diffs/{diffId}", - "run": _smoke_case_108, + "run": _smoke_case_111, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/{sessionId}/inputs", - "run": _smoke_case_109, + "run": _smoke_case_112, }, { "operation": "update", "method": "PATCH", "path": "/v1/sessions/{sessionId}/inputs/{inputId}", - "run": _smoke_case_110, + "run": _smoke_case_113, }, { "operation": "update", "method": "PUT", "path": "/v1/sessions/{sessionId}/queue", - "run": _smoke_case_111, + "run": _smoke_case_114, }, { "operation": "list", "method": "GET", "path": "/v1/sessions/{sessionId}/commands", - "run": _smoke_case_112, + "run": _smoke_case_115, }, { "operation": "updateDefaults", "method": "PUT", "path": "/v1/projects/defaults", - "run": _smoke_case_113, + "run": _smoke_case_116, }, { "operation": "list", "method": "GET", "path": "/v1/projects", "label": "required params", - "run": _smoke_case_114, + "run": _smoke_case_117, }, { "operation": "list", "method": "GET", "path": "/v1/projects", "label": "all params", - "run": _smoke_case_115, + "run": _smoke_case_118, }, { "operation": "create", "method": "POST", "path": "/v1/projects", "label": "required params", - "run": _smoke_case_116, + "run": _smoke_case_119, }, { "operation": "create", "method": "POST", "path": "/v1/projects", "label": "all params", - "run": _smoke_case_117, + "run": _smoke_case_120, }, { "operation": "retrieve", "method": "GET", "path": "/v1/projects/{projectId}", - "run": _smoke_case_118, + "run": _smoke_case_121, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}", "label": "required params", - "run": _smoke_case_119, + "run": _smoke_case_122, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}", "label": "all params", - "run": _smoke_case_120, + "run": _smoke_case_123, }, { "operation": "delete", "method": "DELETE", "path": "/v1/projects/{projectId}", - "run": _smoke_case_121, + "run": _smoke_case_124, }, { "operation": "duplicate", "method": "POST", "path": "/v1/projects/{projectId}/duplicate", - "run": _smoke_case_122, + "run": _smoke_case_125, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/environment-variables", - "run": _smoke_case_123, + "run": _smoke_case_126, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/environment-variables", - "run": _smoke_case_124, + "run": _smoke_case_127, }, { "operation": "delete", "method": "DELETE", "path": "/v1/projects/{projectId}/environment-variables/{key}", - "run": _smoke_case_125, + "run": _smoke_case_128, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/snapshots", "label": "required params", - "run": _smoke_case_126, + "run": _smoke_case_129, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/snapshots", "label": "all params", - "run": _smoke_case_127, + "run": _smoke_case_130, }, { "operation": "retrieve", "method": "GET", "path": "/v1/projects/{projectId}/snapshots/{snapshotId}", - "run": _smoke_case_128, + "run": _smoke_case_131, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}/snapshots/{snapshotId}", "label": "required params", - "run": _smoke_case_129, + "run": _smoke_case_132, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}/snapshots/{snapshotId}", "label": "all params", - "run": _smoke_case_130, + "run": _smoke_case_133, }, { "operation": "delete", "method": "DELETE", "path": "/v1/projects/{projectId}/snapshots/{snapshotId}", - "run": _smoke_case_131, + "run": _smoke_case_134, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/builds", "label": "required params", - "run": _smoke_case_132, + "run": _smoke_case_135, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/builds", "label": "all params", - "run": _smoke_case_133, + "run": _smoke_case_136, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/builds", "label": "required params", - "run": _smoke_case_134, + "run": _smoke_case_137, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/builds", "label": "all params", - "run": _smoke_case_135, + "run": _smoke_case_138, }, { "operation": "retrieve", "method": "GET", "path": "/v1/projects/{projectId}/builds/{buildId}", - "run": _smoke_case_136, + "run": _smoke_case_139, }, { "operation": "cancel", "method": "POST", "path": "/v1/projects/{projectId}/builds/{buildId}/cancel", - "run": _smoke_case_137, + "run": _smoke_case_140, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/schedules", "label": "required params", - "run": _smoke_case_138, + "run": _smoke_case_141, }, { "operation": "list", "method": "GET", "path": "/v1/projects/{projectId}/schedules", "label": "all params", - "run": _smoke_case_139, + "run": _smoke_case_142, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/schedules", "label": "required params", - "run": _smoke_case_140, + "run": _smoke_case_143, }, { "operation": "create", "method": "POST", "path": "/v1/projects/{projectId}/schedules", "label": "all params", - "run": _smoke_case_141, + "run": _smoke_case_144, }, { "operation": "retrieve", "method": "GET", "path": "/v1/projects/{projectId}/schedules/{scheduleId}", - "run": _smoke_case_142, + "run": _smoke_case_145, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}/schedules/{scheduleId}", "label": "required params", - "run": _smoke_case_143, + "run": _smoke_case_146, }, { "operation": "update", "method": "PATCH", "path": "/v1/projects/{projectId}/schedules/{scheduleId}", "label": "all params", - "run": _smoke_case_144, + "run": _smoke_case_147, }, { "operation": "delete", "method": "DELETE", "path": "/v1/projects/{projectId}/schedules/{scheduleId}", - "run": _smoke_case_145, + "run": _smoke_case_148, }, { "operation": "list", "method": "GET", "path": "/v1/pins", "label": "required params", - "run": _smoke_case_146, + "run": _smoke_case_149, }, { "operation": "list", "method": "GET", "path": "/v1/pins", "label": "all params", - "run": _smoke_case_147, + "run": _smoke_case_150, }, { "operation": "create", "method": "POST", "path": "/v1/pins", "label": "required params", - "run": _smoke_case_148, + "run": _smoke_case_151, }, { "operation": "create", "method": "POST", "path": "/v1/pins", "label": "all params", - "run": _smoke_case_149, + "run": _smoke_case_152, }, { "operation": "update", "method": "PATCH", "path": "/v1/pins/{resourceType}/{resourceId}", - "run": _smoke_case_150, + "run": _smoke_case_153, }, { "operation": "delete", "method": "DELETE", "path": "/v1/pins/{resourceType}/{resourceId}", - "run": _smoke_case_151, + "run": _smoke_case_154, }, { "operation": "list", "method": "GET", "path": "/v1/pull-requests", "label": "required params", - "run": _smoke_case_152, + "run": _smoke_case_155, }, { "operation": "list", "method": "GET", "path": "/v1/pull-requests", "label": "all params", - "run": _smoke_case_153, + "run": _smoke_case_156, }, { "operation": "retrieve", "method": "GET", "path": "/v1/pull-requests/{pullRequestId}", - "run": _smoke_case_154, + "run": _smoke_case_157, }, { "operation": "list", "method": "GET", "path": "/v1/agents", "label": "required params", - "run": _smoke_case_155, + "run": _smoke_case_158, }, { "operation": "list", "method": "GET", "path": "/v1/agents", "label": "all params", - "run": _smoke_case_156, + "run": _smoke_case_159, }, { "operation": "create", "method": "POST", "path": "/v1/agents", "label": "required params", - "run": _smoke_case_157, + "run": _smoke_case_160, }, { "operation": "create", "method": "POST", "path": "/v1/agents", "label": "all params", - "run": _smoke_case_158, + "run": _smoke_case_161, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}", - "run": _smoke_case_159, + "run": _smoke_case_162, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}", "label": "required params", - "run": _smoke_case_160, + "run": _smoke_case_163, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}", "label": "all params", - "run": _smoke_case_161, + "run": _smoke_case_164, }, { "operation": "delete", "method": "DELETE", "path": "/v1/agents/{agentId}", - "run": _smoke_case_162, + "run": _smoke_case_165, }, { "operation": "list", "method": "GET", "path": "/v1/agents/templates", "label": "required params", - "run": _smoke_case_163, + "run": _smoke_case_166, }, { "operation": "list", "method": "GET", "path": "/v1/agents/templates", "label": "all params", - "run": _smoke_case_164, + "run": _smoke_case_167, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/templates/{templateName}", - "run": _smoke_case_165, + "run": _smoke_case_168, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/schedules", "label": "required params", - "run": _smoke_case_166, + "run": _smoke_case_169, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/schedules", "label": "all params", - "run": _smoke_case_167, + "run": _smoke_case_170, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/schedules", - "run": _smoke_case_168, + "run": _smoke_case_171, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}/schedules/{scheduleId}", - "run": _smoke_case_169, + "run": _smoke_case_172, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}/schedules/{scheduleId}", - "run": _smoke_case_170, + "run": _smoke_case_173, }, { "operation": "delete", "method": "DELETE", "path": "/v1/agents/{agentId}/schedules/{scheduleId}", - "run": _smoke_case_171, + "run": _smoke_case_174, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/triggers", "label": "required params", - "run": _smoke_case_172, + "run": _smoke_case_175, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/triggers", "label": "all params", - "run": _smoke_case_173, + "run": _smoke_case_176, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/triggers", "label": "required params", - "run": _smoke_case_174, + "run": _smoke_case_177, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/triggers", "label": "all params", - "run": _smoke_case_175, + "run": _smoke_case_178, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}/triggers/{triggerId}", - "run": _smoke_case_176, + "run": _smoke_case_179, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}/triggers/{triggerId}", "label": "required params", - "run": _smoke_case_177, + "run": _smoke_case_180, }, { "operation": "update", "method": "PATCH", "path": "/v1/agents/{agentId}/triggers/{triggerId}", "label": "all params", - "run": _smoke_case_178, + "run": _smoke_case_181, }, { "operation": "delete", "method": "DELETE", "path": "/v1/agents/{agentId}/triggers/{triggerId}", - "run": _smoke_case_179, + "run": _smoke_case_182, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/runs", "label": "required params", - "run": _smoke_case_180, + "run": _smoke_case_183, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/runs", "label": "all params", - "run": _smoke_case_181, + "run": _smoke_case_184, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/runs", "label": "required params", - "run": _smoke_case_182, + "run": _smoke_case_185, }, { "operation": "create", "method": "POST", "path": "/v1/agents/{agentId}/runs", "label": "all params", - "run": _smoke_case_183, + "run": _smoke_case_186, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}/runs/{runId}", - "run": _smoke_case_184, + "run": _smoke_case_187, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/content-revisions", "label": "required params", - "run": _smoke_case_185, + "run": _smoke_case_188, }, { "operation": "list", "method": "GET", "path": "/v1/agents/{agentId}/content-revisions", "label": "all params", - "run": _smoke_case_186, + "run": _smoke_case_189, }, { "operation": "retrieve", "method": "GET", "path": "/v1/agents/{agentId}/content-revisions/{version}", - "run": _smoke_case_187, + "run": _smoke_case_190, }, { "operation": "restore", "method": "POST", "path": "/v1/agents/{agentId}/content-revisions/{version}/restore", - "run": _smoke_case_188, + "run": _smoke_case_191, }, { "operation": "list", "method": "GET", "path": "/v1/repositories", "label": "required params", - "run": _smoke_case_189, + "run": _smoke_case_192, }, { "operation": "list", "method": "GET", "path": "/v1/repositories", "label": "all params", - "run": _smoke_case_190, + "run": _smoke_case_193, }, { "operation": "retrieve", "method": "GET", "path": "/v1/repositories/{repositoryId}", - "run": _smoke_case_191, + "run": _smoke_case_194, }, { "operation": "update", "method": "PATCH", "path": "/v1/repositories/{repositoryId}", "label": "required params", - "run": _smoke_case_192, + "run": _smoke_case_195, }, { "operation": "update", "method": "PATCH", "path": "/v1/repositories/{repositoryId}", "label": "all params", - "run": _smoke_case_193, + "run": _smoke_case_196, }, { "operation": "list", "method": "GET", "path": "/v1/integrations", "label": "required params", - "run": _smoke_case_194, + "run": _smoke_case_197, }, { "operation": "list", "method": "GET", "path": "/v1/integrations", "label": "all params", - "run": _smoke_case_195, + "run": _smoke_case_198, }, { "operation": "create", "method": "POST", "path": "/v1/integrations", - "run": _smoke_case_196, + "run": _smoke_case_199, }, { "operation": "retrieve", "method": "GET", "path": "/v1/integrations/{integrationId}", - "run": _smoke_case_197, + "run": _smoke_case_200, }, { "operation": "update", "method": "PATCH", "path": "/v1/integrations/{integrationId}", "label": "required params", - "run": _smoke_case_198, + "run": _smoke_case_201, }, { "operation": "update", "method": "PATCH", "path": "/v1/integrations/{integrationId}", "label": "all params", - "run": _smoke_case_199, + "run": _smoke_case_202, }, { "operation": "delete", "method": "DELETE", "path": "/v1/integrations/{integrationId}", - "run": _smoke_case_200, + "run": _smoke_case_203, }, { "operation": "authorize", "method": "POST", "path": "/v1/integrations/{integrationId}/authorize", "label": "required params", - "run": _smoke_case_201, + "run": _smoke_case_204, }, { "operation": "authorize", "method": "POST", "path": "/v1/integrations/{integrationId}/authorize", "label": "all params", - "run": _smoke_case_202, + "run": _smoke_case_205, }, { "operation": "test", "method": "POST", "path": "/v1/integrations/{integrationId}/test", - "run": _smoke_case_203, + "run": _smoke_case_206, }, { "operation": "sync", "method": "POST", "path": "/v1/integrations/{integrationId}/sync", - "run": _smoke_case_204, + "run": _smoke_case_207, }, { "operation": "syncAll", "method": "POST", "path": "/v1/integrations/sync", - "run": _smoke_case_205, + "run": _smoke_case_208, }, { "operation": "retrieveSyncStatus", "method": "GET", "path": "/v1/integrations/sync/status", "label": "required params", - "run": _smoke_case_206, + "run": _smoke_case_209, }, { "operation": "retrieveSyncStatus", "method": "GET", "path": "/v1/integrations/sync/status", "label": "all params", - "run": _smoke_case_207, + "run": _smoke_case_210, }, { "operation": "retrieveRateLimit", "method": "GET", "path": "/v1/integrations/{integrationId}/rate-limit", - "run": _smoke_case_208, + "run": _smoke_case_211, }, { "operation": "listSentryEnvironments", "method": "GET", "path": "/v1/integrations/{integrationId}/sentry-environments", "label": "required params", - "run": _smoke_case_209, + "run": _smoke_case_212, }, { "operation": "listSentryEnvironments", "method": "GET", "path": "/v1/integrations/{integrationId}/sentry-environments", "label": "all params", - "run": _smoke_case_210, + "run": _smoke_case_213, }, { "operation": "listSlackChannels", "method": "GET", "path": "/v1/integrations/{integrationId}/slack-channels", "label": "required params", - "run": _smoke_case_211, + "run": _smoke_case_214, }, { "operation": "listSlackChannels", "method": "GET", "path": "/v1/integrations/{integrationId}/slack-channels", "label": "all params", - "run": _smoke_case_212, + "run": _smoke_case_215, }, { "operation": "list", "method": "GET", "path": "/v1/integrations/providers", "label": "required params", - "run": _smoke_case_213, + "run": _smoke_case_216, }, { "operation": "list", "method": "GET", "path": "/v1/integrations/providers", "label": "all params", - "run": _smoke_case_214, + "run": _smoke_case_217, }, { "operation": "discoverSnykOrganizations", "method": "POST", "path": "/v1/integrations/providers/snyk/organizations", "label": "required params", - "run": _smoke_case_215, + "run": _smoke_case_218, }, { "operation": "discoverSnykOrganizations", "method": "POST", "path": "/v1/integrations/providers/snyk/organizations", "label": "all params", - "run": _smoke_case_216, + "run": _smoke_case_219, }, { "operation": "list", "method": "GET", "path": "/v1/integrations/triggers", "label": "required params", - "run": _smoke_case_217, + "run": _smoke_case_220, }, { "operation": "list", "method": "GET", "path": "/v1/integrations/triggers", "label": "all params", - "run": _smoke_case_218, + "run": _smoke_case_221, }, { "operation": "retrieve", "method": "GET", "path": "/v1/integrations/{integrationId}/triggers/{triggerName}", - "run": _smoke_case_219, + "run": _smoke_case_222, }, { "operation": "listFilterOptions", "method": "GET", "path": "/v1/integrations/{integrationId}/triggers/{triggerName}/filter-options/{field}", "label": "required params", - "run": _smoke_case_220, + "run": _smoke_case_223, }, { "operation": "listFilterOptions", "method": "GET", "path": "/v1/integrations/{integrationId}/triggers/{triggerName}/filter-options/{field}", "label": "all params", - "run": _smoke_case_221, + "run": _smoke_case_224, }, { "operation": "retrieve", "method": "GET", "path": "/v1/billing", - "run": _smoke_case_222, + "run": _smoke_case_225, }, { "operation": "listUsage", "method": "GET", "path": "/v1/billing/usage", "label": "required params", - "run": _smoke_case_223, + "run": _smoke_case_226, }, { "operation": "listUsage", "method": "GET", "path": "/v1/billing/usage", "label": "all params", - "run": _smoke_case_224, + "run": _smoke_case_227, }, { "operation": "authorize", "method": "POST", "path": "/v1/live", - "run": _smoke_case_225, + "run": _smoke_case_228, }, { "operation": "connect", "method": "GET", "path": "/v1/live", - "run": _smoke_case_226, + "run": _smoke_case_229, }, ] From e25c835f4dd35f22ea7bfd0f906c37fedfce218f Mon Sep 17 00:00:00 2001 From: "scalar-docs[bot]" <148485328+scalar-docs[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2026 13:07:27 +0000 Subject: [PATCH 3/3] release: 0.6.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- src/tembo/_version.py | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 2aca35ae..4208b5cb 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.5.0" + ".": "0.6.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c38f750..c031b614 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [0.6.0](https://github.com/tembo/sdk-python/compare/v0.5.0...v0.6.0) (2026-10-28) + + +### ⚠ BREAKING CHANGES + +* **api:** 3 breaking changes to the SDK surface. + - Removed operation `organizations.subscriptions.reset` (`POST /v1/organizations/{organizationId}/subscriptions/reset`). + - Removed operation `users.delete` (`DELETE /v1/users/{userId}`). + - Removed operation `users.subscriptions.reset` (`POST /v1/users/{userId}/subscriptions/reset`). + +### Features + +* **api:** update SDK surface (10 changes) ([c77633b](https://github.com/tembo/sdk-python/commit/c77633b90e182d6d7b0d279410d6b82e436872ca)) +* **api:** update SDK surface (3 changes) ([aecec17](https://github.com/tembo/sdk-python/commit/aecec170fe9b4bc13722dadbdbc08e9b662b2f90)) + ## [0.5.0](https://github.com/tembo/sdk-python/compare/v0.4.0...v0.5.0) (2026-10-23) diff --git a/pyproject.toml b/pyproject.toml index 8ee0bb42..24a6f996 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "tembo-sdk-python" -version = "0.5.0" # x-release-please-version +version = "0.6.0" # x-release-please-version description = "Manage agents, sessions, repositories, and organization resources with the Tembo API." readme = "README.md" license = "Apache-2.0" diff --git a/src/tembo/_version.py b/src/tembo/_version.py index 17fb69dc..31eedcb9 100644 --- a/src/tembo/_version.py +++ b/src/tembo/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Scalar. See README.md for details. __title__ = "temboSdk" -__version__ = "0.5.0" # x-release-please-version +__version__ = "0.6.0" # x-release-please-version