@boatdev/sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.openapi-generator/FILES +259 -0
- package/.openapi-generator/VERSION +1 -0
- package/.openapi-generator-ignore +23 -0
- package/LICENSE +21 -0
- package/README.md +151 -0
- package/dist/apis/BoatApi.d.ts +1275 -0
- package/dist/apis/BoatApi.js +3084 -0
- package/dist/apis/index.d.ts +1 -0
- package/dist/apis/index.js +19 -0
- package/dist/boat-helpers.d.ts +56 -0
- package/dist/boat-helpers.js +176 -0
- package/dist/esm/apis/BoatApi.d.ts +1275 -0
- package/dist/esm/apis/BoatApi.js +3047 -0
- package/dist/esm/apis/index.d.ts +1 -0
- package/dist/esm/apis/index.js +3 -0
- package/dist/esm/boat-helpers.d.ts +56 -0
- package/dist/esm/boat-helpers.js +163 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/models/AddEnvironmentRepoRequest.d.ts +38 -0
- package/dist/esm/models/AddEnvironmentRepoRequest.js +45 -0
- package/dist/esm/models/ApiKey.d.ts +121 -0
- package/dist/esm/models/ApiKey.js +97 -0
- package/dist/esm/models/ApiKeyCatalog.d.ts +65 -0
- package/dist/esm/models/ApiKeyCatalog.js +62 -0
- package/dist/esm/models/ApiKeyCatalogScopeResources.d.ts +39 -0
- package/dist/esm/models/ApiKeyCatalogScopeResources.js +48 -0
- package/dist/esm/models/ApiKeyCreatedResource.d.ts +64 -0
- package/dist/esm/models/ApiKeyCreatedResource.js +66 -0
- package/dist/esm/models/ApiKeyRequestUsage.d.ts +45 -0
- package/dist/esm/models/ApiKeyRequestUsage.js +53 -0
- package/dist/esm/models/ApiKeyResourceTotals.d.ts +44 -0
- package/dist/esm/models/ApiKeyResourceTotals.js +51 -0
- package/dist/esm/models/ApiKeyRevokeResponse.d.ts +45 -0
- package/dist/esm/models/ApiKeyRevokeResponse.js +52 -0
- package/dist/esm/models/ApiKeyScope.d.ts +57 -0
- package/dist/esm/models/ApiKeyScope.js +50 -0
- package/dist/esm/models/ApiKeyScopeResource.d.ts +50 -0
- package/dist/esm/models/ApiKeyScopeResource.js +55 -0
- package/dist/esm/models/ApiKeyScopeSandboxes.d.ts +21 -0
- package/dist/esm/models/ApiKeyScopeSandboxes.js +47 -0
- package/dist/esm/models/ApiKeySecretResponse.d.ts +57 -0
- package/dist/esm/models/ApiKeySecretResponse.js +60 -0
- package/dist/esm/models/ApiKeyUsageResponse.d.ts +140 -0
- package/dist/esm/models/ApiKeyUsageResponse.js +110 -0
- package/dist/esm/models/ApiKeysResponse.d.ts +52 -0
- package/dist/esm/models/ApiKeysResponse.js +57 -0
- package/dist/esm/models/Command200Response.d.ts +23 -0
- package/dist/esm/models/Command200Response.js +51 -0
- package/dist/esm/models/CommandRequest.d.ts +50 -0
- package/dist/esm/models/CommandRequest.js +49 -0
- package/dist/esm/models/CommandResponse.d.ts +111 -0
- package/dist/esm/models/CommandResponse.js +85 -0
- package/dist/esm/models/CommandStartedResponse.d.ts +93 -0
- package/dist/esm/models/CommandStartedResponse.js +79 -0
- package/dist/esm/models/CommandStatusResponse.d.ts +162 -0
- package/dist/esm/models/CommandStatusResponse.js +111 -0
- package/dist/esm/models/CompletionEvent.d.ts +65 -0
- package/dist/esm/models/CompletionEvent.js +63 -0
- package/dist/esm/models/Conversation.d.ts +80 -0
- package/dist/esm/models/Conversation.js +75 -0
- package/dist/esm/models/ConversationsResponse.d.ts +58 -0
- package/dist/esm/models/ConversationsResponse.js +62 -0
- package/dist/esm/models/CreateSandboxEnvironmentRequest.d.ts +32 -0
- package/dist/esm/models/CreateSandboxEnvironmentRequest.js +43 -0
- package/dist/esm/models/CreateSandboxRequest.d.ts +92 -0
- package/dist/esm/models/CreateSandboxRequest.js +66 -0
- package/dist/esm/models/CreateSandboxResponse.d.ts +71 -0
- package/dist/esm/models/CreateSandboxResponse.js +72 -0
- package/dist/esm/models/CreateScopedApiKey503Response.d.ts +58 -0
- package/dist/esm/models/CreateScopedApiKey503Response.js +63 -0
- package/dist/esm/models/CreateScopedApiKeyRequest.d.ts +72 -0
- package/dist/esm/models/CreateScopedApiKeyRequest.js +60 -0
- package/dist/esm/models/DataRetentionPolicyResponse.d.ts +70 -0
- package/dist/esm/models/DataRetentionPolicyResponse.js +66 -0
- package/dist/esm/models/DataRetentionUpdateRequest.d.ts +45 -0
- package/dist/esm/models/DataRetentionUpdateRequest.js +51 -0
- package/dist/esm/models/DeletionOperation.d.ts +101 -0
- package/dist/esm/models/DeletionOperation.js +95 -0
- package/dist/esm/models/DeletionOperationResponse.d.ts +54 -0
- package/dist/esm/models/DeletionOperationResponse.js +60 -0
- package/dist/esm/models/DesktopRequest.d.ts +33 -0
- package/dist/esm/models/DesktopRequest.js +43 -0
- package/dist/esm/models/DesktopResponse.d.ts +74 -0
- package/dist/esm/models/DesktopResponse.js +59 -0
- package/dist/esm/models/EnvironmentItemChangeResponse.d.ts +44 -0
- package/dist/esm/models/EnvironmentItemChangeResponse.js +47 -0
- package/dist/esm/models/ErrorEnvelope.d.ts +69 -0
- package/dist/esm/models/ErrorEnvelope.js +68 -0
- package/dist/esm/models/ErrorEnvelopeError.d.ts +52 -0
- package/dist/esm/models/ErrorEnvelopeError.js +53 -0
- package/dist/esm/models/ErrorEvent.d.ts +65 -0
- package/dist/esm/models/ErrorEvent.js +63 -0
- package/dist/esm/models/EventsResponse.d.ts +65 -0
- package/dist/esm/models/EventsResponse.js +65 -0
- package/dist/esm/models/FileReadResponse.d.ts +83 -0
- package/dist/esm/models/FileReadResponse.js +80 -0
- package/dist/esm/models/FileWriteRequest.d.ts +52 -0
- package/dist/esm/models/FileWriteRequest.js +56 -0
- package/dist/esm/models/FileWriteResponse.d.ts +77 -0
- package/dist/esm/models/FileWriteResponse.js +76 -0
- package/dist/esm/models/ForkRequest.d.ts +68 -0
- package/dist/esm/models/ForkRequest.js +58 -0
- package/dist/esm/models/HostPortRequest.d.ts +44 -0
- package/dist/esm/models/HostPortRequest.js +47 -0
- package/dist/esm/models/HostPortResponse.d.ts +76 -0
- package/dist/esm/models/HostPortResponse.js +64 -0
- package/dist/esm/models/LimitsFields.d.ts +262 -0
- package/dist/esm/models/LimitsFields.js +128 -0
- package/dist/esm/models/LimitsFieldsCurrentLimits.d.ts +45 -0
- package/dist/esm/models/LimitsFieldsCurrentLimits.js +47 -0
- package/dist/esm/models/LimitsFieldsStartLimits.d.ts +44 -0
- package/dist/esm/models/LimitsFieldsStartLimits.js +45 -0
- package/dist/esm/models/LimitsFieldsStarts.d.ts +51 -0
- package/dist/esm/models/LimitsFieldsStarts.js +48 -0
- package/dist/esm/models/LimitsResponse.d.ts +273 -0
- package/dist/esm/models/LimitsResponse.js +134 -0
- package/dist/esm/models/MeResponse.d.ts +52 -0
- package/dist/esm/models/MeResponse.js +58 -0
- package/dist/esm/models/MeResponseAllOfUser.d.ts +50 -0
- package/dist/esm/models/MeResponseAllOfUser.js +47 -0
- package/dist/esm/models/NamedSnapshot.d.ts +83 -0
- package/dist/esm/models/NamedSnapshot.js +71 -0
- package/dist/esm/models/NamedSnapshotDeletedResponse.d.ts +64 -0
- package/dist/esm/models/NamedSnapshotDeletedResponse.js +67 -0
- package/dist/esm/models/NamedSnapshotInfoResponse.d.ts +52 -0
- package/dist/esm/models/NamedSnapshotInfoResponse.js +58 -0
- package/dist/esm/models/NamedSnapshotListResponse.d.ts +52 -0
- package/dist/esm/models/NamedSnapshotListResponse.js +58 -0
- package/dist/esm/models/NamedSnapshotSaveRequest.d.ts +38 -0
- package/dist/esm/models/NamedSnapshotSaveRequest.js +47 -0
- package/dist/esm/models/NamedSnapshotSavingResponse.d.ts +65 -0
- package/dist/esm/models/NamedSnapshotSavingResponse.js +68 -0
- package/dist/esm/models/PageInfo.d.ts +44 -0
- package/dist/esm/models/PageInfo.js +51 -0
- package/dist/esm/models/PromptEvent.d.ts +70 -0
- package/dist/esm/models/PromptEvent.js +66 -0
- package/dist/esm/models/PromptEventData.d.ts +56 -0
- package/dist/esm/models/PromptEventData.js +60 -0
- package/dist/esm/models/PromptRequest.d.ts +84 -0
- package/dist/esm/models/PromptRequest.js +69 -0
- package/dist/esm/models/PromptResponse.d.ts +101 -0
- package/dist/esm/models/PromptResponse.js +86 -0
- package/dist/esm/models/PromptRun.d.ts +92 -0
- package/dist/esm/models/PromptRun.js +78 -0
- package/dist/esm/models/PromptRunResponse.d.ts +58 -0
- package/dist/esm/models/PromptRunResponse.js +62 -0
- package/dist/esm/models/RepoSelectionRequest.d.ts +38 -0
- package/dist/esm/models/RepoSelectionRequest.js +45 -0
- package/dist/esm/models/RepoSelectionResponse.d.ts +57 -0
- package/dist/esm/models/RepoSelectionResponse.js +60 -0
- package/dist/esm/models/ReposResponse.d.ts +65 -0
- package/dist/esm/models/ReposResponse.js +64 -0
- package/dist/esm/models/Repository.d.ts +69 -0
- package/dist/esm/models/Repository.js +55 -0
- package/dist/esm/models/RepositoryInstallation.d.ts +51 -0
- package/dist/esm/models/RepositoryInstallation.js +48 -0
- package/dist/esm/models/ResponseEvent.d.ts +70 -0
- package/dist/esm/models/ResponseEvent.js +66 -0
- package/dist/esm/models/ResponseEventData.d.ts +52 -0
- package/dist/esm/models/ResponseEventData.js +49 -0
- package/dist/esm/models/ResumeRequest.d.ts +68 -0
- package/dist/esm/models/ResumeRequest.js +58 -0
- package/dist/esm/models/RotateApiKey409Response.d.ts +45 -0
- package/dist/esm/models/RotateApiKey409Response.js +53 -0
- package/dist/esm/models/Sandbox.d.ts +211 -0
- package/dist/esm/models/Sandbox.js +138 -0
- package/dist/esm/models/SandboxActionResponse.d.ts +57 -0
- package/dist/esm/models/SandboxActionResponse.js +58 -0
- package/dist/esm/models/SandboxEnvironment.d.ts +107 -0
- package/dist/esm/models/SandboxEnvironment.js +92 -0
- package/dist/esm/models/SandboxEnvironmentListResponse.d.ts +33 -0
- package/dist/esm/models/SandboxEnvironmentListResponse.js +44 -0
- package/dist/esm/models/SandboxEnvironmentResponse.d.ts +39 -0
- package/dist/esm/models/SandboxEnvironmentResponse.js +46 -0
- package/dist/esm/models/SandboxEnvironmentVersionSummary.d.ts +50 -0
- package/dist/esm/models/SandboxEnvironmentVersionSummary.js +55 -0
- package/dist/esm/models/SandboxEvent.d.ts +65 -0
- package/dist/esm/models/SandboxEvent.js +55 -0
- package/dist/esm/models/SandboxInfoResponse.d.ts +45 -0
- package/dist/esm/models/SandboxInfoResponse.js +52 -0
- package/dist/esm/models/SandboxListResponse.d.ts +59 -0
- package/dist/esm/models/SandboxListResponse.js +61 -0
- package/dist/esm/models/SandboxUsageResponse.d.ts +102 -0
- package/dist/esm/models/SandboxUsageResponse.js +92 -0
- package/dist/esm/models/SecretFile.d.ts +38 -0
- package/dist/esm/models/SecretFile.js +47 -0
- package/dist/esm/models/SecretsResponse.d.ts +71 -0
- package/dist/esm/models/SecretsResponse.js +64 -0
- package/dist/esm/models/SecretsUpdateRequest.d.ts +39 -0
- package/dist/esm/models/SecretsUpdateRequest.js +44 -0
- package/dist/esm/models/SelectedRepository.d.ts +92 -0
- package/dist/esm/models/SelectedRepository.js +61 -0
- package/dist/esm/models/SetEnvironmentSecretFileRequest.d.ts +38 -0
- package/dist/esm/models/SetEnvironmentSecretFileRequest.js +47 -0
- package/dist/esm/models/SetEnvironmentVarRequest.d.ts +32 -0
- package/dist/esm/models/SetEnvironmentVarRequest.js +43 -0
- package/dist/esm/models/SnapshotChunk.d.ts +68 -0
- package/dist/esm/models/SnapshotChunk.js +67 -0
- package/dist/esm/models/SnapshotDownloadResponse.d.ts +104 -0
- package/dist/esm/models/SnapshotDownloadResponse.js +93 -0
- package/dist/esm/models/SnapshotDownloadResponseAllOfInventory.d.ts +38 -0
- package/dist/esm/models/SnapshotDownloadResponseAllOfInventory.js +47 -0
- package/dist/esm/models/SnapshotLatestResponse.d.ts +52 -0
- package/dist/esm/models/SnapshotLatestResponse.js +58 -0
- package/dist/esm/models/SnapshotListResponse.d.ts +59 -0
- package/dist/esm/models/SnapshotListResponse.js +61 -0
- package/dist/esm/models/SnapshotSummary.d.ts +113 -0
- package/dist/esm/models/SnapshotSummary.js +90 -0
- package/dist/esm/models/SnapshotTreeEntry.d.ts +53 -0
- package/dist/esm/models/SnapshotTreeEntry.js +57 -0
- package/dist/esm/models/SnapshotTreeResponse.d.ts +100 -0
- package/dist/esm/models/SnapshotTreeResponse.js +88 -0
- package/dist/esm/models/SshKeyRequest.d.ts +32 -0
- package/dist/esm/models/SshKeyRequest.js +43 -0
- package/dist/esm/models/SshKeyResponse.d.ts +56 -0
- package/dist/esm/models/SshKeyResponse.js +53 -0
- package/dist/esm/models/StartWindowUsage.d.ts +44 -0
- package/dist/esm/models/StartWindowUsage.js +45 -0
- package/dist/esm/models/SteerEvent.d.ts +70 -0
- package/dist/esm/models/SteerEvent.js +66 -0
- package/dist/esm/models/SteerEventData.d.ts +54 -0
- package/dist/esm/models/SteerEventData.js +60 -0
- package/dist/esm/models/SteerRequest.d.ts +43 -0
- package/dist/esm/models/SteerRequest.js +45 -0
- package/dist/esm/models/SteerResponse.d.ts +97 -0
- package/dist/esm/models/SteerResponse.js +89 -0
- package/dist/esm/models/StopRequest.d.ts +32 -0
- package/dist/esm/models/StopRequest.js +41 -0
- package/dist/esm/models/SuccessBase.d.ts +38 -0
- package/dist/esm/models/SuccessBase.js +47 -0
- package/dist/esm/models/UnknownEvent.d.ts +33 -0
- package/dist/esm/models/UnknownEvent.js +45 -0
- package/dist/esm/models/UpdateSandboxEnvironmentRequest.d.ts +88 -0
- package/dist/esm/models/UpdateSandboxEnvironmentRequest.js +61 -0
- package/dist/esm/models/UpdateSandboxEnvironmentRequestRepositoriesInner.d.ts +50 -0
- package/dist/esm/models/UpdateSandboxEnvironmentRequestRepositoriesInner.js +49 -0
- package/dist/esm/models/UpdateSandboxRequest.d.ts +44 -0
- package/dist/esm/models/UpdateSandboxRequest.js +45 -0
- package/dist/esm/models/UpgradeSandboxEnvironmentRequest.d.ts +32 -0
- package/dist/esm/models/UpgradeSandboxEnvironmentRequest.js +41 -0
- package/dist/esm/models/UpgradeSandboxEnvironmentResponse.d.ts +44 -0
- package/dist/esm/models/UpgradeSandboxEnvironmentResponse.js +51 -0
- package/dist/esm/models/Webhook.d.ts +63 -0
- package/dist/esm/models/Webhook.js +64 -0
- package/dist/esm/models/WebhookCreateRequest.d.ts +45 -0
- package/dist/esm/models/WebhookCreateRequest.js +50 -0
- package/dist/esm/models/WebhookDeleteResponse.d.ts +44 -0
- package/dist/esm/models/WebhookDeleteResponse.js +51 -0
- package/dist/esm/models/WebhookEvent.d.ts +52 -0
- package/dist/esm/models/WebhookEvent.js +57 -0
- package/dist/esm/models/WebhookEventData.d.ts +45 -0
- package/dist/esm/models/WebhookEventData.js +52 -0
- package/dist/esm/models/WebhookEventDataSandbox.d.ts +38 -0
- package/dist/esm/models/WebhookEventDataSandbox.js +47 -0
- package/dist/esm/models/WebhookEventType.d.ts +27 -0
- package/dist/esm/models/WebhookEventType.js +45 -0
- package/dist/esm/models/WebhookListResponse.d.ts +45 -0
- package/dist/esm/models/WebhookListResponse.js +52 -0
- package/dist/esm/models/WebhookResponse.d.ts +45 -0
- package/dist/esm/models/WebhookResponse.js +52 -0
- package/dist/esm/models/WebhookSecretResponse.d.ts +51 -0
- package/dist/esm/models/WebhookSecretResponse.js +56 -0
- package/dist/esm/models/WebhookUpdateRequest.d.ts +45 -0
- package/dist/esm/models/WebhookUpdateRequest.js +46 -0
- package/dist/esm/models/index.d.ts +123 -0
- package/dist/esm/models/index.js +125 -0
- package/dist/esm/runtime.d.ts +184 -0
- package/dist/esm/runtime.js +337 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +22 -0
- package/dist/models/AddEnvironmentRepoRequest.d.ts +38 -0
- package/dist/models/AddEnvironmentRepoRequest.js +52 -0
- package/dist/models/ApiKey.d.ts +121 -0
- package/dist/models/ApiKey.js +105 -0
- package/dist/models/ApiKeyCatalog.d.ts +65 -0
- package/dist/models/ApiKeyCatalog.js +69 -0
- package/dist/models/ApiKeyCatalogScopeResources.d.ts +39 -0
- package/dist/models/ApiKeyCatalogScopeResources.js +55 -0
- package/dist/models/ApiKeyCreatedResource.d.ts +64 -0
- package/dist/models/ApiKeyCreatedResource.js +74 -0
- package/dist/models/ApiKeyRequestUsage.d.ts +45 -0
- package/dist/models/ApiKeyRequestUsage.js +61 -0
- package/dist/models/ApiKeyResourceTotals.d.ts +44 -0
- package/dist/models/ApiKeyResourceTotals.js +58 -0
- package/dist/models/ApiKeyRevokeResponse.d.ts +45 -0
- package/dist/models/ApiKeyRevokeResponse.js +59 -0
- package/dist/models/ApiKeyScope.d.ts +57 -0
- package/dist/models/ApiKeyScope.js +57 -0
- package/dist/models/ApiKeyScopeResource.d.ts +50 -0
- package/dist/models/ApiKeyScopeResource.js +62 -0
- package/dist/models/ApiKeyScopeSandboxes.d.ts +21 -0
- package/dist/models/ApiKeyScopeSandboxes.js +53 -0
- package/dist/models/ApiKeySecretResponse.d.ts +57 -0
- package/dist/models/ApiKeySecretResponse.js +67 -0
- package/dist/models/ApiKeyUsageResponse.d.ts +140 -0
- package/dist/models/ApiKeyUsageResponse.js +118 -0
- package/dist/models/ApiKeysResponse.d.ts +52 -0
- package/dist/models/ApiKeysResponse.js +64 -0
- package/dist/models/Command200Response.d.ts +23 -0
- package/dist/models/Command200Response.js +57 -0
- package/dist/models/CommandRequest.d.ts +50 -0
- package/dist/models/CommandRequest.js +56 -0
- package/dist/models/CommandResponse.d.ts +111 -0
- package/dist/models/CommandResponse.js +93 -0
- package/dist/models/CommandStartedResponse.d.ts +93 -0
- package/dist/models/CommandStartedResponse.js +87 -0
- package/dist/models/CommandStatusResponse.d.ts +162 -0
- package/dist/models/CommandStatusResponse.js +119 -0
- package/dist/models/CompletionEvent.d.ts +65 -0
- package/dist/models/CompletionEvent.js +71 -0
- package/dist/models/Conversation.d.ts +80 -0
- package/dist/models/Conversation.js +82 -0
- package/dist/models/ConversationsResponse.d.ts +58 -0
- package/dist/models/ConversationsResponse.js +70 -0
- package/dist/models/CreateSandboxEnvironmentRequest.d.ts +32 -0
- package/dist/models/CreateSandboxEnvironmentRequest.js +50 -0
- package/dist/models/CreateSandboxRequest.d.ts +92 -0
- package/dist/models/CreateSandboxRequest.js +74 -0
- package/dist/models/CreateSandboxResponse.d.ts +71 -0
- package/dist/models/CreateSandboxResponse.js +80 -0
- package/dist/models/CreateScopedApiKey503Response.d.ts +58 -0
- package/dist/models/CreateScopedApiKey503Response.js +71 -0
- package/dist/models/CreateScopedApiKeyRequest.d.ts +72 -0
- package/dist/models/CreateScopedApiKeyRequest.js +68 -0
- package/dist/models/DataRetentionPolicyResponse.d.ts +70 -0
- package/dist/models/DataRetentionPolicyResponse.js +74 -0
- package/dist/models/DataRetentionUpdateRequest.d.ts +45 -0
- package/dist/models/DataRetentionUpdateRequest.js +59 -0
- package/dist/models/DeletionOperation.d.ts +101 -0
- package/dist/models/DeletionOperation.js +103 -0
- package/dist/models/DeletionOperationResponse.d.ts +54 -0
- package/dist/models/DeletionOperationResponse.js +68 -0
- package/dist/models/DesktopRequest.d.ts +33 -0
- package/dist/models/DesktopRequest.js +50 -0
- package/dist/models/DesktopResponse.d.ts +74 -0
- package/dist/models/DesktopResponse.js +66 -0
- package/dist/models/EnvironmentItemChangeResponse.d.ts +44 -0
- package/dist/models/EnvironmentItemChangeResponse.js +54 -0
- package/dist/models/ErrorEnvelope.d.ts +69 -0
- package/dist/models/ErrorEnvelope.js +75 -0
- package/dist/models/ErrorEnvelopeError.d.ts +52 -0
- package/dist/models/ErrorEnvelopeError.js +60 -0
- package/dist/models/ErrorEvent.d.ts +65 -0
- package/dist/models/ErrorEvent.js +71 -0
- package/dist/models/EventsResponse.d.ts +65 -0
- package/dist/models/EventsResponse.js +73 -0
- package/dist/models/FileReadResponse.d.ts +83 -0
- package/dist/models/FileReadResponse.js +88 -0
- package/dist/models/FileWriteRequest.d.ts +52 -0
- package/dist/models/FileWriteRequest.js +64 -0
- package/dist/models/FileWriteResponse.d.ts +77 -0
- package/dist/models/FileWriteResponse.js +84 -0
- package/dist/models/ForkRequest.d.ts +68 -0
- package/dist/models/ForkRequest.js +66 -0
- package/dist/models/HostPortRequest.d.ts +44 -0
- package/dist/models/HostPortRequest.js +54 -0
- package/dist/models/HostPortResponse.d.ts +76 -0
- package/dist/models/HostPortResponse.js +72 -0
- package/dist/models/LimitsFields.d.ts +262 -0
- package/dist/models/LimitsFields.js +135 -0
- package/dist/models/LimitsFieldsCurrentLimits.d.ts +45 -0
- package/dist/models/LimitsFieldsCurrentLimits.js +54 -0
- package/dist/models/LimitsFieldsStartLimits.d.ts +44 -0
- package/dist/models/LimitsFieldsStartLimits.js +52 -0
- package/dist/models/LimitsFieldsStarts.d.ts +51 -0
- package/dist/models/LimitsFieldsStarts.js +55 -0
- package/dist/models/LimitsResponse.d.ts +273 -0
- package/dist/models/LimitsResponse.js +141 -0
- package/dist/models/MeResponse.d.ts +52 -0
- package/dist/models/MeResponse.js +66 -0
- package/dist/models/MeResponseAllOfUser.d.ts +50 -0
- package/dist/models/MeResponseAllOfUser.js +54 -0
- package/dist/models/NamedSnapshot.d.ts +83 -0
- package/dist/models/NamedSnapshot.js +79 -0
- package/dist/models/NamedSnapshotDeletedResponse.d.ts +64 -0
- package/dist/models/NamedSnapshotDeletedResponse.js +75 -0
- package/dist/models/NamedSnapshotInfoResponse.d.ts +52 -0
- package/dist/models/NamedSnapshotInfoResponse.js +66 -0
- package/dist/models/NamedSnapshotListResponse.d.ts +52 -0
- package/dist/models/NamedSnapshotListResponse.js +66 -0
- package/dist/models/NamedSnapshotSaveRequest.d.ts +38 -0
- package/dist/models/NamedSnapshotSaveRequest.js +54 -0
- package/dist/models/NamedSnapshotSavingResponse.d.ts +65 -0
- package/dist/models/NamedSnapshotSavingResponse.js +76 -0
- package/dist/models/PageInfo.d.ts +44 -0
- package/dist/models/PageInfo.js +58 -0
- package/dist/models/PromptEvent.d.ts +70 -0
- package/dist/models/PromptEvent.js +74 -0
- package/dist/models/PromptEventData.d.ts +56 -0
- package/dist/models/PromptEventData.js +68 -0
- package/dist/models/PromptRequest.d.ts +84 -0
- package/dist/models/PromptRequest.js +77 -0
- package/dist/models/PromptResponse.d.ts +101 -0
- package/dist/models/PromptResponse.js +94 -0
- package/dist/models/PromptRun.d.ts +92 -0
- package/dist/models/PromptRun.js +86 -0
- package/dist/models/PromptRunResponse.d.ts +58 -0
- package/dist/models/PromptRunResponse.js +70 -0
- package/dist/models/RepoSelectionRequest.d.ts +38 -0
- package/dist/models/RepoSelectionRequest.js +52 -0
- package/dist/models/RepoSelectionResponse.d.ts +57 -0
- package/dist/models/RepoSelectionResponse.js +67 -0
- package/dist/models/ReposResponse.d.ts +65 -0
- package/dist/models/ReposResponse.js +71 -0
- package/dist/models/Repository.d.ts +69 -0
- package/dist/models/Repository.js +62 -0
- package/dist/models/RepositoryInstallation.d.ts +51 -0
- package/dist/models/RepositoryInstallation.js +55 -0
- package/dist/models/ResponseEvent.d.ts +70 -0
- package/dist/models/ResponseEvent.js +74 -0
- package/dist/models/ResponseEventData.d.ts +52 -0
- package/dist/models/ResponseEventData.js +56 -0
- package/dist/models/ResumeRequest.d.ts +68 -0
- package/dist/models/ResumeRequest.js +66 -0
- package/dist/models/RotateApiKey409Response.d.ts +45 -0
- package/dist/models/RotateApiKey409Response.js +61 -0
- package/dist/models/Sandbox.d.ts +211 -0
- package/dist/models/Sandbox.js +146 -0
- package/dist/models/SandboxActionResponse.d.ts +57 -0
- package/dist/models/SandboxActionResponse.js +65 -0
- package/dist/models/SandboxEnvironment.d.ts +107 -0
- package/dist/models/SandboxEnvironment.js +99 -0
- package/dist/models/SandboxEnvironmentListResponse.d.ts +33 -0
- package/dist/models/SandboxEnvironmentListResponse.js +51 -0
- package/dist/models/SandboxEnvironmentResponse.d.ts +39 -0
- package/dist/models/SandboxEnvironmentResponse.js +53 -0
- package/dist/models/SandboxEnvironmentVersionSummary.d.ts +50 -0
- package/dist/models/SandboxEnvironmentVersionSummary.js +62 -0
- package/dist/models/SandboxEvent.d.ts +65 -0
- package/dist/models/SandboxEvent.js +62 -0
- package/dist/models/SandboxInfoResponse.d.ts +45 -0
- package/dist/models/SandboxInfoResponse.js +59 -0
- package/dist/models/SandboxListResponse.d.ts +59 -0
- package/dist/models/SandboxListResponse.js +69 -0
- package/dist/models/SandboxUsageResponse.d.ts +102 -0
- package/dist/models/SandboxUsageResponse.js +100 -0
- package/dist/models/SecretFile.d.ts +38 -0
- package/dist/models/SecretFile.js +54 -0
- package/dist/models/SecretsResponse.d.ts +71 -0
- package/dist/models/SecretsResponse.js +71 -0
- package/dist/models/SecretsUpdateRequest.d.ts +39 -0
- package/dist/models/SecretsUpdateRequest.js +51 -0
- package/dist/models/SelectedRepository.d.ts +92 -0
- package/dist/models/SelectedRepository.js +68 -0
- package/dist/models/SetEnvironmentSecretFileRequest.d.ts +38 -0
- package/dist/models/SetEnvironmentSecretFileRequest.js +54 -0
- package/dist/models/SetEnvironmentVarRequest.d.ts +32 -0
- package/dist/models/SetEnvironmentVarRequest.js +50 -0
- package/dist/models/SnapshotChunk.d.ts +68 -0
- package/dist/models/SnapshotChunk.js +74 -0
- package/dist/models/SnapshotDownloadResponse.d.ts +104 -0
- package/dist/models/SnapshotDownloadResponse.js +101 -0
- package/dist/models/SnapshotDownloadResponseAllOfInventory.d.ts +38 -0
- package/dist/models/SnapshotDownloadResponseAllOfInventory.js +54 -0
- package/dist/models/SnapshotLatestResponse.d.ts +52 -0
- package/dist/models/SnapshotLatestResponse.js +66 -0
- package/dist/models/SnapshotListResponse.d.ts +59 -0
- package/dist/models/SnapshotListResponse.js +69 -0
- package/dist/models/SnapshotSummary.d.ts +113 -0
- package/dist/models/SnapshotSummary.js +98 -0
- package/dist/models/SnapshotTreeEntry.d.ts +53 -0
- package/dist/models/SnapshotTreeEntry.js +65 -0
- package/dist/models/SnapshotTreeResponse.d.ts +100 -0
- package/dist/models/SnapshotTreeResponse.js +96 -0
- package/dist/models/SshKeyRequest.d.ts +32 -0
- package/dist/models/SshKeyRequest.js +50 -0
- package/dist/models/SshKeyResponse.d.ts +56 -0
- package/dist/models/SshKeyResponse.js +60 -0
- package/dist/models/StartWindowUsage.d.ts +44 -0
- package/dist/models/StartWindowUsage.js +52 -0
- package/dist/models/SteerEvent.d.ts +70 -0
- package/dist/models/SteerEvent.js +74 -0
- package/dist/models/SteerEventData.d.ts +54 -0
- package/dist/models/SteerEventData.js +68 -0
- package/dist/models/SteerRequest.d.ts +43 -0
- package/dist/models/SteerRequest.js +52 -0
- package/dist/models/SteerResponse.d.ts +97 -0
- package/dist/models/SteerResponse.js +97 -0
- package/dist/models/StopRequest.d.ts +32 -0
- package/dist/models/StopRequest.js +48 -0
- package/dist/models/SuccessBase.d.ts +38 -0
- package/dist/models/SuccessBase.js +54 -0
- package/dist/models/UnknownEvent.d.ts +33 -0
- package/dist/models/UnknownEvent.js +52 -0
- package/dist/models/UpdateSandboxEnvironmentRequest.d.ts +88 -0
- package/dist/models/UpdateSandboxEnvironmentRequest.js +68 -0
- package/dist/models/UpdateSandboxEnvironmentRequestRepositoriesInner.d.ts +50 -0
- package/dist/models/UpdateSandboxEnvironmentRequestRepositoriesInner.js +56 -0
- package/dist/models/UpdateSandboxRequest.d.ts +44 -0
- package/dist/models/UpdateSandboxRequest.js +52 -0
- package/dist/models/UpgradeSandboxEnvironmentRequest.d.ts +32 -0
- package/dist/models/UpgradeSandboxEnvironmentRequest.js +48 -0
- package/dist/models/UpgradeSandboxEnvironmentResponse.d.ts +44 -0
- package/dist/models/UpgradeSandboxEnvironmentResponse.js +58 -0
- package/dist/models/Webhook.d.ts +63 -0
- package/dist/models/Webhook.js +71 -0
- package/dist/models/WebhookCreateRequest.d.ts +45 -0
- package/dist/models/WebhookCreateRequest.js +57 -0
- package/dist/models/WebhookDeleteResponse.d.ts +44 -0
- package/dist/models/WebhookDeleteResponse.js +58 -0
- package/dist/models/WebhookEvent.d.ts +52 -0
- package/dist/models/WebhookEvent.js +64 -0
- package/dist/models/WebhookEventData.d.ts +45 -0
- package/dist/models/WebhookEventData.js +59 -0
- package/dist/models/WebhookEventDataSandbox.d.ts +38 -0
- package/dist/models/WebhookEventDataSandbox.js +54 -0
- package/dist/models/WebhookEventType.d.ts +27 -0
- package/dist/models/WebhookEventType.js +53 -0
- package/dist/models/WebhookListResponse.d.ts +45 -0
- package/dist/models/WebhookListResponse.js +59 -0
- package/dist/models/WebhookResponse.d.ts +45 -0
- package/dist/models/WebhookResponse.js +59 -0
- package/dist/models/WebhookSecretResponse.d.ts +51 -0
- package/dist/models/WebhookSecretResponse.js +63 -0
- package/dist/models/WebhookUpdateRequest.d.ts +45 -0
- package/dist/models/WebhookUpdateRequest.js +53 -0
- package/dist/models/index.d.ts +123 -0
- package/dist/models/index.js +141 -0
- package/dist/runtime.d.ts +184 -0
- package/dist/runtime.js +353 -0
- package/docs/AddEnvironmentRepoRequest.md +34 -0
- package/docs/ApiKey.md +58 -0
- package/docs/ApiKeyCatalog.md +42 -0
- package/docs/ApiKeyCatalogScopeResources.md +35 -0
- package/docs/ApiKeyCreatedResource.md +40 -0
- package/docs/ApiKeyRequestUsage.md +34 -0
- package/docs/ApiKeyResourceTotals.md +36 -0
- package/docs/ApiKeyRevokeResponse.md +36 -0
- package/docs/ApiKeyScope.md +40 -0
- package/docs/ApiKeyScopeResource.md +38 -0
- package/docs/ApiKeyScopeSandboxes.md +30 -0
- package/docs/ApiKeySecretResponse.md +40 -0
- package/docs/ApiKeyUsageResponse.md +64 -0
- package/docs/ApiKeysResponse.md +38 -0
- package/docs/BoatApi.md +4967 -0
- package/docs/Command200Response.md +66 -0
- package/docs/CommandRequest.md +38 -0
- package/docs/CommandResponse.md +56 -0
- package/docs/CommandStartedResponse.md +50 -0
- package/docs/CommandStatusResponse.md +70 -0
- package/docs/CompletionEvent.md +40 -0
- package/docs/Conversation.md +48 -0
- package/docs/ConversationsResponse.md +38 -0
- package/docs/CreateSandboxEnvironmentRequest.md +32 -0
- package/docs/CreateSandboxRequest.md +49 -0
- package/docs/CreateSandboxResponse.md +40 -0
- package/docs/CreateScopedApiKey503Response.md +36 -0
- package/docs/CreateScopedApiKeyRequest.md +42 -0
- package/docs/DataRetentionPolicyResponse.md +42 -0
- package/docs/DataRetentionUpdateRequest.md +34 -0
- package/docs/DeletionOperation.md +46 -0
- package/docs/DeletionOperationResponse.md +36 -0
- package/docs/DesktopRequest.md +33 -0
- package/docs/DesktopResponse.md +46 -0
- package/docs/EnvironmentItemChangeResponse.md +37 -0
- package/docs/ErrorEnvelope.md +44 -0
- package/docs/ErrorEnvelopeError.md +38 -0
- package/docs/ErrorEvent.md +40 -0
- package/docs/EventsResponse.md +40 -0
- package/docs/FileReadResponse.md +44 -0
- package/docs/FileWriteRequest.md +36 -0
- package/docs/FileWriteResponse.md +42 -0
- package/docs/ForkRequest.md +40 -0
- package/docs/HostPortRequest.md +36 -0
- package/docs/HostPortResponse.md +44 -0
- package/docs/LimitsFields.md +106 -0
- package/docs/LimitsFieldsCurrentLimits.md +36 -0
- package/docs/LimitsFieldsStartLimits.md +37 -0
- package/docs/LimitsFieldsStarts.md +39 -0
- package/docs/LimitsResponse.md +110 -0
- package/docs/MeResponse.md +36 -0
- package/docs/MeResponseAllOfUser.md +38 -0
- package/docs/NamedSnapshot.md +47 -0
- package/docs/NamedSnapshotDeletedResponse.md +38 -0
- package/docs/NamedSnapshotInfoResponse.md +36 -0
- package/docs/NamedSnapshotListResponse.md +36 -0
- package/docs/NamedSnapshotSaveRequest.md +34 -0
- package/docs/NamedSnapshotSavingResponse.md +38 -0
- package/docs/PageInfo.md +36 -0
- package/docs/PromptEvent.md +42 -0
- package/docs/PromptEventData.md +36 -0
- package/docs/PromptRequest.md +43 -0
- package/docs/PromptResponse.md +50 -0
- package/docs/PromptRun.md +48 -0
- package/docs/PromptRunResponse.md +38 -0
- package/docs/RepoSelectionRequest.md +35 -0
- package/docs/RepoSelectionResponse.md +40 -0
- package/docs/ReposResponse.md +42 -0
- package/docs/Repository.md +44 -0
- package/docs/RepositoryInstallation.md +38 -0
- package/docs/ResponseEvent.md +43 -0
- package/docs/ResponseEventData.md +38 -0
- package/docs/ResumeRequest.md +41 -0
- package/docs/RotateApiKey409Response.md +34 -0
- package/docs/Sandbox.md +76 -0
- package/docs/SandboxActionResponse.md +40 -0
- package/docs/SandboxEnvironment.md +57 -0
- package/docs/SandboxEnvironmentListResponse.md +32 -0
- package/docs/SandboxEnvironmentResponse.md +34 -0
- package/docs/SandboxEnvironmentVersionSummary.md +39 -0
- package/docs/SandboxEvent.md +42 -0
- package/docs/SandboxInfoResponse.md +36 -0
- package/docs/SandboxListResponse.md +38 -0
- package/docs/SandboxUsageResponse.md +52 -0
- package/docs/SecretFile.md +34 -0
- package/docs/SecretsResponse.md +44 -0
- package/docs/SecretsUpdateRequest.md +35 -0
- package/docs/SelectedRepository.md +52 -0
- package/docs/SetEnvironmentSecretFileRequest.md +34 -0
- package/docs/SetEnvironmentVarRequest.md +32 -0
- package/docs/SnapshotChunk.md +44 -0
- package/docs/SnapshotDownloadResponse.md +50 -0
- package/docs/SnapshotDownloadResponseAllOfInventory.md +34 -0
- package/docs/SnapshotLatestResponse.md +36 -0
- package/docs/SnapshotListResponse.md +38 -0
- package/docs/SnapshotSummary.md +54 -0
- package/docs/SnapshotTreeEntry.md +36 -0
- package/docs/SnapshotTreeResponse.md +52 -0
- package/docs/SshKeyRequest.md +32 -0
- package/docs/SshKeyResponse.md +40 -0
- package/docs/StartWindowUsage.md +37 -0
- package/docs/SteerEvent.md +43 -0
- package/docs/SteerEventData.md +36 -0
- package/docs/SteerRequest.md +35 -0
- package/docs/SteerResponse.md +46 -0
- package/docs/StopRequest.md +33 -0
- package/docs/SuccessBase.md +34 -0
- package/docs/UnknownEvent.md +32 -0
- package/docs/UpdateSandboxEnvironmentRequest.md +51 -0
- package/docs/UpdateSandboxEnvironmentRequestRepositoriesInner.md +38 -0
- package/docs/UpdateSandboxRequest.md +36 -0
- package/docs/UpgradeSandboxEnvironmentRequest.md +33 -0
- package/docs/UpgradeSandboxEnvironmentResponse.md +36 -0
- package/docs/Webhook.md +42 -0
- package/docs/WebhookCreateRequest.md +36 -0
- package/docs/WebhookDeleteResponse.md +36 -0
- package/docs/WebhookEvent.md +39 -0
- package/docs/WebhookEventData.md +36 -0
- package/docs/WebhookEventDataSandbox.md +34 -0
- package/docs/WebhookEventType.md +30 -0
- package/docs/WebhookListResponse.md +36 -0
- package/docs/WebhookResponse.md +36 -0
- package/docs/WebhookSecretResponse.md +38 -0
- package/docs/WebhookUpdateRequest.md +36 -0
- package/package.json +19 -0
- package/src/apis/BoatApi.ts +4594 -0
- package/src/apis/index.ts +3 -0
- package/src/boat-helpers.ts +187 -0
- package/src/index.ts +7 -0
- package/src/models/AddEnvironmentRepoRequest.ts +74 -0
- package/src/models/ApiKey.ts +212 -0
- package/src/models/ApiKeyCatalog.ts +118 -0
- package/src/models/ApiKeyCatalogScopeResources.ts +83 -0
- package/src/models/ApiKeyCreatedResource.ts +113 -0
- package/src/models/ApiKeyRequestUsage.ts +85 -0
- package/src/models/ApiKeyResourceTotals.ts +84 -0
- package/src/models/ApiKeyRevokeResponse.ts +92 -0
- package/src/models/ApiKeyScope.ts +105 -0
- package/src/models/ApiKeyScopeResource.ts +93 -0
- package/src/models/ApiKeyScopeSandboxes.ts +59 -0
- package/src/models/ApiKeySecretResponse.ts +110 -0
- package/src/models/ApiKeyUsageResponse.ts +246 -0
- package/src/models/ApiKeysResponse.ts +108 -0
- package/src/models/Command200Response.ts +76 -0
- package/src/models/CommandRequest.ts +90 -0
- package/src/models/CommandResponse.ts +178 -0
- package/src/models/CommandStartedResponse.ts +154 -0
- package/src/models/CommandStatusResponse.ts +246 -0
- package/src/models/CompletionEvent.ts +111 -0
- package/src/models/Conversation.ts +138 -0
- package/src/models/ConversationsResponse.ts +111 -0
- package/src/models/CreateSandboxEnvironmentRequest.ts +66 -0
- package/src/models/CreateSandboxRequest.ts +142 -0
- package/src/models/CreateSandboxResponse.ts +128 -0
- package/src/models/CreateScopedApiKey503Response.ts +102 -0
- package/src/models/CreateScopedApiKeyRequest.ts +118 -0
- package/src/models/DataRetentionPolicyResponse.ts +120 -0
- package/src/models/DataRetentionUpdateRequest.ts +84 -0
- package/src/models/DeletionOperation.ts +161 -0
- package/src/models/DeletionOperationResponse.ts +104 -0
- package/src/models/DesktopRequest.ts +68 -0
- package/src/models/DesktopResponse.ts +123 -0
- package/src/models/EnvironmentItemChangeResponse.ts +82 -0
- package/src/models/ErrorEnvelope.ts +128 -0
- package/src/models/ErrorEnvelopeError.ts +92 -0
- package/src/models/ErrorEvent.ts +111 -0
- package/src/models/EventsResponse.ts +126 -0
- package/src/models/FileReadResponse.ts +139 -0
- package/src/models/FileWriteRequest.ts +94 -0
- package/src/models/FileWriteResponse.ts +130 -0
- package/src/models/ForkRequest.ts +110 -0
- package/src/models/HostPortRequest.ts +82 -0
- package/src/models/HostPortResponse.ts +126 -0
- package/src/models/LimitsFields.ts +390 -0
- package/src/models/LimitsFieldsCurrentLimits.ts +84 -0
- package/src/models/LimitsFieldsStartLimits.ts +81 -0
- package/src/models/LimitsFieldsStarts.ts +97 -0
- package/src/models/LimitsResponse.ts +405 -0
- package/src/models/MeResponse.ts +102 -0
- package/src/models/MeResponseAllOfUser.ts +89 -0
- package/src/models/NamedSnapshot.ts +137 -0
- package/src/models/NamedSnapshotDeletedResponse.ts +111 -0
- package/src/models/NamedSnapshotInfoResponse.ts +102 -0
- package/src/models/NamedSnapshotListResponse.ts +102 -0
- package/src/models/NamedSnapshotSaveRequest.ts +75 -0
- package/src/models/NamedSnapshotSavingResponse.ts +119 -0
- package/src/models/PageInfo.ts +84 -0
- package/src/models/PromptEvent.ts +127 -0
- package/src/models/PromptEventData.ts +98 -0
- package/src/models/PromptRequest.ts +132 -0
- package/src/models/PromptResponse.ts +170 -0
- package/src/models/PromptRun.ts +149 -0
- package/src/models/PromptRunResponse.ts +111 -0
- package/src/models/RepoSelectionRequest.ts +74 -0
- package/src/models/RepoSelectionResponse.ts +110 -0
- package/src/models/ReposResponse.ts +132 -0
- package/src/models/Repository.ts +116 -0
- package/src/models/RepositoryInstallation.ts +97 -0
- package/src/models/ResponseEvent.ts +127 -0
- package/src/models/ResponseEventData.ts +90 -0
- package/src/models/ResumeRequest.ts +110 -0
- package/src/models/RotateApiKey409Response.ts +85 -0
- package/src/models/Sandbox.ts +299 -0
- package/src/models/SandboxActionResponse.ts +109 -0
- package/src/models/SandboxEnvironment.ts +195 -0
- package/src/models/SandboxEnvironmentListResponse.ts +74 -0
- package/src/models/SandboxEnvironmentResponse.ts +82 -0
- package/src/models/SandboxEnvironmentVersionSummary.ts +93 -0
- package/src/models/SandboxEvent.ts +109 -0
- package/src/models/SandboxInfoResponse.ts +92 -0
- package/src/models/SandboxListResponse.ts +117 -0
- package/src/models/SandboxUsageResponse.ts +169 -0
- package/src/models/SecretFile.ts +75 -0
- package/src/models/SecretsResponse.ts +126 -0
- package/src/models/SecretsUpdateRequest.ts +81 -0
- package/src/models/SelectedRepository.ts +145 -0
- package/src/models/SetEnvironmentSecretFileRequest.ts +75 -0
- package/src/models/SetEnvironmentVarRequest.ts +66 -0
- package/src/models/SnapshotChunk.ts +120 -0
- package/src/models/SnapshotDownloadResponse.ts +181 -0
- package/src/models/SnapshotDownloadResponseAllOfInventory.ts +75 -0
- package/src/models/SnapshotLatestResponse.ts +102 -0
- package/src/models/SnapshotListResponse.ts +117 -0
- package/src/models/SnapshotSummary.ts +179 -0
- package/src/models/SnapshotTreeEntry.ts +95 -0
- package/src/models/SnapshotTreeResponse.ts +173 -0
- package/src/models/SshKeyRequest.ts +66 -0
- package/src/models/SshKeyResponse.ts +99 -0
- package/src/models/StartWindowUsage.ts +81 -0
- package/src/models/SteerEvent.ts +127 -0
- package/src/models/SteerEventData.ts +97 -0
- package/src/models/SteerRequest.ts +79 -0
- package/src/models/SteerResponse.ts +156 -0
- package/src/models/StopRequest.ts +65 -0
- package/src/models/SuccessBase.ts +75 -0
- package/src/models/UnknownEvent.ts +69 -0
- package/src/models/UpdateSandboxEnvironmentRequest.ts +152 -0
- package/src/models/UpdateSandboxEnvironmentRequestRepositoriesInner.ts +90 -0
- package/src/models/UpdateSandboxRequest.ts +81 -0
- package/src/models/UpgradeSandboxEnvironmentRequest.ts +65 -0
- package/src/models/UpgradeSandboxEnvironmentResponse.ts +84 -0
- package/src/models/Webhook.ts +119 -0
- package/src/models/WebhookCreateRequest.ts +91 -0
- package/src/models/WebhookDeleteResponse.ts +84 -0
- package/src/models/WebhookEvent.ts +110 -0
- package/src/models/WebhookEventData.ts +92 -0
- package/src/models/WebhookEventDataSandbox.ts +75 -0
- package/src/models/WebhookEventType.ts +55 -0
- package/src/models/WebhookListResponse.ts +92 -0
- package/src/models/WebhookResponse.ts +92 -0
- package/src/models/WebhookSecretResponse.ts +101 -0
- package/src/models/WebhookUpdateRequest.ts +89 -0
- package/src/models/index.ts +125 -0
- package/src/runtime.ts +449 -0
- package/tsconfig.esm.json +7 -0
- package/tsconfig.json +22 -0
package/docs/BoatApi.md
ADDED
|
@@ -0,0 +1,4967 @@
|
|
|
1
|
+
# BoatApi
|
|
2
|
+
|
|
3
|
+
All URIs are relative to *https://boat.dev/api/v1*
|
|
4
|
+
|
|
5
|
+
| Method | HTTP request | Description |
|
|
6
|
+
|------------- | ------------- | -------------|
|
|
7
|
+
| [**addEnvironmentRepo**](BoatApi.md#addenvironmentrepooperation) | **POST** /environments/{environmentId}/repos | Add a repository to an environment |
|
|
8
|
+
| [**apiKeyUsage**](BoatApi.md#apikeyusage) | **GET** /api-keys/{apiKeyId}/usage | Get API key usage |
|
|
9
|
+
| [**apiKeys**](BoatApi.md#apikeys) | **GET** /api-keys | List API keys |
|
|
10
|
+
| [**artifact**](BoatApi.md#artifact) | **GET** /sandboxes/{sandboxId}/artifacts | Download a sandbox artifact |
|
|
11
|
+
| [**command**](BoatApi.md#commandoperation) | **POST** /sandboxes/{sandboxId}/commands | Execute a command in a sandbox |
|
|
12
|
+
| [**commandStatus**](BoatApi.md#commandstatus) | **GET** /sandboxes/{sandboxId}/commands/{processId} | Get detached command status and logs |
|
|
13
|
+
| [**conversations**](BoatApi.md#conversations) | **GET** /sandboxes/{sandboxId}/conversations | List boat conversations |
|
|
14
|
+
| [**create**](BoatApi.md#create) | **POST** /sandboxes | Create sandbox |
|
|
15
|
+
| [**createEnvironment**](BoatApi.md#createenvironment) | **POST** /environments | Create a sandbox environment |
|
|
16
|
+
| [**createScopedApiKey**](BoatApi.md#createscopedapikeyoperation) | **POST** /api-keys/scoped | Create a scoped API key |
|
|
17
|
+
| [**createWebhook**](BoatApi.md#createwebhook) | **POST** /webhooks | Create webhook |
|
|
18
|
+
| [**deleteEnvironment**](BoatApi.md#deleteenvironment) | **DELETE** /environments/{environmentId} | Delete a sandbox environment |
|
|
19
|
+
| [**deleteEnvironmentRepo**](BoatApi.md#deleteenvironmentrepo) | **DELETE** /environments/{environmentId}/repos/{repositoryId} | Remove a repository from an environment |
|
|
20
|
+
| [**deleteEnvironmentSecretFile**](BoatApi.md#deleteenvironmentsecretfile) | **DELETE** /environments/{environmentId}/secret-files | Remove one secret file |
|
|
21
|
+
| [**deleteEnvironmentVar**](BoatApi.md#deleteenvironmentvar) | **DELETE** /environments/{environmentId}/vars/{key} | Remove one environment variable |
|
|
22
|
+
| [**deleteNamedSnapshot**](BoatApi.md#deletenamedsnapshot) | **DELETE** /named-snapshots/{name} | Remove a named snapshot |
|
|
23
|
+
| [**deleteSandbox**](BoatApi.md#deletesandbox) | **DELETE** /sandboxes/{sandboxId} | Permanently delete sandbox data |
|
|
24
|
+
| [**deleteSnapshot**](BoatApi.md#deletesnapshot) | **DELETE** /snapshots/{snapshotId} | Permanently delete snapshot data |
|
|
25
|
+
| [**deleteWebhook**](BoatApi.md#deletewebhook) | **DELETE** /webhooks/{webhookId} | Delete webhook |
|
|
26
|
+
| [**desktop**](BoatApi.md#desktopoperation) | **POST** /sandboxes/{sandboxId}/desktop | Get desktop streaming URL |
|
|
27
|
+
| [**environments**](BoatApi.md#environments) | **GET** /environments | List Sandbox environments |
|
|
28
|
+
| [**events**](BoatApi.md#events) | **GET** /sandboxes/{sandboxId}/events | List boat events |
|
|
29
|
+
| [**fork**](BoatApi.md#forkoperation) | **POST** /sandboxes/{sandboxId}/fork | Fork sandbox |
|
|
30
|
+
| [**get**](BoatApi.md#get) | **GET** /sandboxes/{sandboxId} | Get sandbox |
|
|
31
|
+
| [**getDataRetention**](BoatApi.md#getdataretention) | **GET** /account/data-retention | Get account data-retention policy |
|
|
32
|
+
| [**getDeletionOperation**](BoatApi.md#getdeletionoperation) | **GET** /deletion-operations/{operationId} | Get deletion operation |
|
|
33
|
+
| [**getLatestSandboxSnapshot**](BoatApi.md#getlatestsandboxsnapshot) | **GET** /sandboxes/{sandboxId}/snapshots/latest | Get latest boat snapshot |
|
|
34
|
+
| [**getNamedSnapshot**](BoatApi.md#getnamedsnapshot) | **GET** /named-snapshots/{name} | Get a named snapshot |
|
|
35
|
+
| [**getSnapshotDownload**](BoatApi.md#getsnapshotdownload) | **GET** /snapshots/{snapshotId}/download | Get snapshot download |
|
|
36
|
+
| [**getSnapshotFile**](BoatApi.md#getsnapshotfile) | **GET** /snapshots/{snapshotId}/files | Download a file or folder from a snapshot |
|
|
37
|
+
| [**getSnapshotTree**](BoatApi.md#getsnapshottree) | **GET** /snapshots/{snapshotId}/tree | Get snapshot file tree |
|
|
38
|
+
| [**getWebhook**](BoatApi.md#getwebhook) | **GET** /webhooks/{webhookId} | Get webhook |
|
|
39
|
+
| [**hostPort**](BoatApi.md#hostportoperation) | **POST** /sandboxes/{sandboxId}/host | Expose a sandbox port on a public HTTPS URL |
|
|
40
|
+
| [**interrupt**](BoatApi.md#interrupt) | **POST** /sandboxes/{sandboxId}/interrupt | Interrupt running work |
|
|
41
|
+
| [**limits**](BoatApi.md#limits) | **GET** /limits | Get Boat limits |
|
|
42
|
+
| [**listNamedSnapshots**](BoatApi.md#listnamedsnapshots) | **GET** /named-snapshots | List named snapshots |
|
|
43
|
+
| [**listSandboxSnapshots**](BoatApi.md#listsandboxsnapshots) | **GET** /sandboxes/{sandboxId}/snapshots | List boat snapshots |
|
|
44
|
+
| [**listSnapshots**](BoatApi.md#listsnapshots) | **GET** /snapshots | List snapshots |
|
|
45
|
+
| [**listWebhooks**](BoatApi.md#listwebhooks) | **GET** /webhooks | List webhooks |
|
|
46
|
+
| [**me**](BoatApi.md#me) | **GET** /me | Get current Boat user |
|
|
47
|
+
| [**prompt**](BoatApi.md#promptoperation) | **POST** /sandboxes/{sandboxId}/prompt | Prompt Sandbox |
|
|
48
|
+
| [**promptRunStatus**](BoatApi.md#promptrunstatus) | **GET** /sandboxes/{sandboxId}/prompts/{promptId} | Get prompt run status |
|
|
49
|
+
| [**readFile**](BoatApi.md#readfile) | **GET** /sandboxes/{sandboxId}/files | Read a file from a sandbox |
|
|
50
|
+
| [**repos**](BoatApi.md#repos) | **GET** /repos | List GitHub repositories available to Boat |
|
|
51
|
+
| [**resume**](BoatApi.md#resumeoperation) | **POST** /sandboxes/{sandboxId}/resume | Resume sandbox |
|
|
52
|
+
| [**revokeApiKey**](BoatApi.md#revokeapikey) | **DELETE** /api-keys/{apiKeyId} | Revoke an API key |
|
|
53
|
+
| [**rotateApiKey**](BoatApi.md#rotateapikey) | **POST** /api-keys/{apiKeyId}/rotate | Rotate an API key |
|
|
54
|
+
| [**rotateWebhookSigningSecret**](BoatApi.md#rotatewebhooksigningsecret) | **POST** /webhooks/{webhookId}/rotate | Rotate webhook signing secret |
|
|
55
|
+
| [**sandboxes**](BoatApi.md#sandboxes) | **GET** /sandboxes | List sandboxes |
|
|
56
|
+
| [**saveNamedSnapshot**](BoatApi.md#savenamedsnapshot) | **POST** /named-snapshots | Save a named snapshot |
|
|
57
|
+
| [**secrets**](BoatApi.md#secrets) | **GET** /secrets | Get Boat secrets setup |
|
|
58
|
+
| [**selectRepo**](BoatApi.md#selectrepo) | **POST** /repos | Select repository for sandboxes |
|
|
59
|
+
| [**setEnvironmentSecretFile**](BoatApi.md#setenvironmentsecretfileoperation) | **PUT** /environments/{environmentId}/secret-files | Write one secret file |
|
|
60
|
+
| [**setEnvironmentVar**](BoatApi.md#setenvironmentvaroperation) | **PUT** /environments/{environmentId}/vars/{key} | Set one environment variable |
|
|
61
|
+
| [**sshKey**](BoatApi.md#sshkeyoperation) | **POST** /sandboxes/{sandboxId}/sshkey | Configure sandbox SSH key |
|
|
62
|
+
| [**steer**](BoatApi.md#steeroperation) | **POST** /sandboxes/{sandboxId}/steer | Steer a running turn |
|
|
63
|
+
| [**stop**](BoatApi.md#stopoperation) | **POST** /sandboxes/{sandboxId}/stop | Stop and archive sandbox |
|
|
64
|
+
| [**update**](BoatApi.md#update) | **PATCH** /sandboxes/{sandboxId} | Update sandbox |
|
|
65
|
+
| [**updateDataRetention**](BoatApi.md#updatedataretention) | **PATCH** /account/data-retention | Update account data-retention policy |
|
|
66
|
+
| [**updateEnvironment**](BoatApi.md#updateenvironment) | **PUT** /environments/{environmentId} | Update a sandbox environment |
|
|
67
|
+
| [**updateSecrets**](BoatApi.md#updatesecrets) | **POST** /secrets | Update Boat secrets setup |
|
|
68
|
+
| [**updateWebhook**](BoatApi.md#updatewebhook) | **PATCH** /webhooks/{webhookId} | Update webhook |
|
|
69
|
+
| [**upgradeEnvironment**](BoatApi.md#upgradeenvironment) | **POST** /environments/{environmentId}/upgrade | Upgrade sandboxes to an environment\'s latest version |
|
|
70
|
+
| [**usage**](BoatApi.md#usage) | **GET** /sandboxes/{sandboxId}/usage | Get boat usage |
|
|
71
|
+
| [**writeFile**](BoatApi.md#writefile) | **PUT** /sandboxes/{sandboxId}/files | Write a file in a sandbox |
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## addEnvironmentRepo
|
|
76
|
+
|
|
77
|
+
> EnvironmentItemChangeResponse addEnvironmentRepo(environmentId, addEnvironmentRepoRequest)
|
|
78
|
+
|
|
79
|
+
Add a repository to an environment
|
|
80
|
+
|
|
81
|
+
Adds a repository (or updates its base branch) by database id from the repository list. Mints a new immutable version.
|
|
82
|
+
|
|
83
|
+
### Example
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
import {
|
|
87
|
+
Configuration,
|
|
88
|
+
BoatApi,
|
|
89
|
+
} from '@boatdev/sdk';
|
|
90
|
+
import type { AddEnvironmentRepoOperationRequest } from '@boatdev/sdk';
|
|
91
|
+
|
|
92
|
+
async function example() {
|
|
93
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
94
|
+
const config = new Configuration({
|
|
95
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
96
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
97
|
+
});
|
|
98
|
+
const api = new BoatApi(config);
|
|
99
|
+
|
|
100
|
+
const body = {
|
|
101
|
+
// string
|
|
102
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
103
|
+
// AddEnvironmentRepoRequest
|
|
104
|
+
addEnvironmentRepoRequest: ...,
|
|
105
|
+
} satisfies AddEnvironmentRepoOperationRequest;
|
|
106
|
+
|
|
107
|
+
try {
|
|
108
|
+
const data = await api.addEnvironmentRepo(body);
|
|
109
|
+
console.log(data);
|
|
110
|
+
} catch (error) {
|
|
111
|
+
console.error(error);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Run the test
|
|
116
|
+
example().catch(console.error);
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Parameters
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
| Name | Type | Description | Notes |
|
|
123
|
+
|------------- | ------------- | ------------- | -------------|
|
|
124
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
125
|
+
| **addEnvironmentRepoRequest** | [AddEnvironmentRepoRequest](AddEnvironmentRepoRequest.md) | | |
|
|
126
|
+
|
|
127
|
+
### Return type
|
|
128
|
+
|
|
129
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
130
|
+
|
|
131
|
+
### Authorization
|
|
132
|
+
|
|
133
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
134
|
+
|
|
135
|
+
### HTTP request headers
|
|
136
|
+
|
|
137
|
+
- **Content-Type**: `application/json`
|
|
138
|
+
- **Accept**: `application/json`
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
### HTTP response details
|
|
142
|
+
| Status code | Description | Response headers |
|
|
143
|
+
|-------------|-------------|------------------|
|
|
144
|
+
| **200** | New version minted. | - |
|
|
145
|
+
| **400** | Invalid request body or parameters. | - |
|
|
146
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
147
|
+
| **404** | Resource not found. | - |
|
|
148
|
+
|
|
149
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
## apiKeyUsage
|
|
153
|
+
|
|
154
|
+
> ApiKeyUsageResponse apiKeyUsage(apiKeyId)
|
|
155
|
+
|
|
156
|
+
Get API key usage
|
|
157
|
+
|
|
158
|
+
Returns the key\'s request total for the 30-day UTC window and the sandboxes and Agents it created that still exist, including sandboxes that never got a sandbox row. Works for revoked keys owned by the authenticated account.
|
|
159
|
+
|
|
160
|
+
### Example
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
import {
|
|
164
|
+
Configuration,
|
|
165
|
+
BoatApi,
|
|
166
|
+
} from '@boatdev/sdk';
|
|
167
|
+
import type { ApiKeyUsageRequest } from '@boatdev/sdk';
|
|
168
|
+
|
|
169
|
+
async function example() {
|
|
170
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
171
|
+
const config = new Configuration({
|
|
172
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
173
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
174
|
+
});
|
|
175
|
+
const api = new BoatApi(config);
|
|
176
|
+
|
|
177
|
+
const body = {
|
|
178
|
+
// string | API key ID returned by `GET /api-keys`.
|
|
179
|
+
apiKeyId: apiKeyId_example,
|
|
180
|
+
} satisfies ApiKeyUsageRequest;
|
|
181
|
+
|
|
182
|
+
try {
|
|
183
|
+
const data = await api.apiKeyUsage(body);
|
|
184
|
+
console.log(data);
|
|
185
|
+
} catch (error) {
|
|
186
|
+
console.error(error);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Run the test
|
|
191
|
+
example().catch(console.error);
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Parameters
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
| Name | Type | Description | Notes |
|
|
198
|
+
|------------- | ------------- | ------------- | -------------|
|
|
199
|
+
| **apiKeyId** | `string` | API key ID returned by `GET /api-keys`. | [Defaults to `undefined`] |
|
|
200
|
+
|
|
201
|
+
### Return type
|
|
202
|
+
|
|
203
|
+
[**ApiKeyUsageResponse**](ApiKeyUsageResponse.md)
|
|
204
|
+
|
|
205
|
+
### Authorization
|
|
206
|
+
|
|
207
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
208
|
+
|
|
209
|
+
### HTTP request headers
|
|
210
|
+
|
|
211
|
+
- **Content-Type**: Not defined
|
|
212
|
+
- **Accept**: `application/json`
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
### HTTP response details
|
|
216
|
+
| Status code | Description | Response headers |
|
|
217
|
+
|-------------|-------------|------------------|
|
|
218
|
+
| **200** | Usage and created resources for the key. | - |
|
|
219
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
220
|
+
| **404** | Resource not found. | - |
|
|
221
|
+
|
|
222
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
## apiKeys
|
|
226
|
+
|
|
227
|
+
> ApiKeysResponse apiKeys()
|
|
228
|
+
|
|
229
|
+
List API keys
|
|
230
|
+
|
|
231
|
+
Lists API key metadata only. Raw key secrets are not returned after creation/rotation. Results include expiry and scope. A restricted API-key caller receives `apiKeys: []`; only an unrestricted account key or browser/CLI session receives the account inventory. Bearer header is unchanged; scope lives on the key.
|
|
232
|
+
|
|
233
|
+
### Example
|
|
234
|
+
|
|
235
|
+
```ts
|
|
236
|
+
import {
|
|
237
|
+
Configuration,
|
|
238
|
+
BoatApi,
|
|
239
|
+
} from '@boatdev/sdk';
|
|
240
|
+
import type { ApiKeysRequest } from '@boatdev/sdk';
|
|
241
|
+
|
|
242
|
+
async function example() {
|
|
243
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
244
|
+
const config = new Configuration({
|
|
245
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
246
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
247
|
+
});
|
|
248
|
+
const api = new BoatApi(config);
|
|
249
|
+
|
|
250
|
+
try {
|
|
251
|
+
const data = await api.apiKeys();
|
|
252
|
+
console.log(data);
|
|
253
|
+
} catch (error) {
|
|
254
|
+
console.error(error);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Run the test
|
|
259
|
+
example().catch(console.error);
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### Parameters
|
|
263
|
+
|
|
264
|
+
This endpoint does not need any parameter.
|
|
265
|
+
|
|
266
|
+
### Return type
|
|
267
|
+
|
|
268
|
+
[**ApiKeysResponse**](ApiKeysResponse.md)
|
|
269
|
+
|
|
270
|
+
### Authorization
|
|
271
|
+
|
|
272
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
273
|
+
|
|
274
|
+
### HTTP request headers
|
|
275
|
+
|
|
276
|
+
- **Content-Type**: Not defined
|
|
277
|
+
- **Accept**: `application/json`
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
### HTTP response details
|
|
281
|
+
| Status code | Description | Response headers |
|
|
282
|
+
|-------------|-------------|------------------|
|
|
283
|
+
| **200** | API key metadata. | - |
|
|
284
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
285
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
286
|
+
|
|
287
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
## artifact
|
|
291
|
+
|
|
292
|
+
> Blob artifact(sandboxId, path)
|
|
293
|
+
|
|
294
|
+
Download a sandbox artifact
|
|
295
|
+
|
|
296
|
+
### Example
|
|
297
|
+
|
|
298
|
+
```ts
|
|
299
|
+
import {
|
|
300
|
+
Configuration,
|
|
301
|
+
BoatApi,
|
|
302
|
+
} from '@boatdev/sdk';
|
|
303
|
+
import type { ArtifactRequest } from '@boatdev/sdk';
|
|
304
|
+
|
|
305
|
+
async function example() {
|
|
306
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
307
|
+
const config = new Configuration({
|
|
308
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
309
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
310
|
+
});
|
|
311
|
+
const api = new BoatApi(config);
|
|
312
|
+
|
|
313
|
+
const body = {
|
|
314
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
315
|
+
sandboxId: sandboxId_example,
|
|
316
|
+
// string
|
|
317
|
+
path: path_example,
|
|
318
|
+
} satisfies ArtifactRequest;
|
|
319
|
+
|
|
320
|
+
try {
|
|
321
|
+
const data = await api.artifact(body);
|
|
322
|
+
console.log(data);
|
|
323
|
+
} catch (error) {
|
|
324
|
+
console.error(error);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// Run the test
|
|
329
|
+
example().catch(console.error);
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Parameters
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
| Name | Type | Description | Notes |
|
|
336
|
+
|------------- | ------------- | ------------- | -------------|
|
|
337
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
338
|
+
| **path** | `string` | | [Defaults to `undefined`] |
|
|
339
|
+
|
|
340
|
+
### Return type
|
|
341
|
+
|
|
342
|
+
**Blob**
|
|
343
|
+
|
|
344
|
+
### Authorization
|
|
345
|
+
|
|
346
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
347
|
+
|
|
348
|
+
### HTTP request headers
|
|
349
|
+
|
|
350
|
+
- **Content-Type**: Not defined
|
|
351
|
+
- **Accept**: `application/octet-stream`
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
### HTTP response details
|
|
355
|
+
| Status code | Description | Response headers |
|
|
356
|
+
|-------------|-------------|------------------|
|
|
357
|
+
| **200** | Artifact bytes. | - |
|
|
358
|
+
|
|
359
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
## command
|
|
363
|
+
|
|
364
|
+
> Command200Response command(sandboxId, commandRequest)
|
|
365
|
+
|
|
366
|
+
Execute a command in a sandbox
|
|
367
|
+
|
|
368
|
+
Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. Returns 409 boat_starting (retryable) while the sandbox is still provisioning -- wait until the sandbox state is ready before running commands. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
|
|
369
|
+
|
|
370
|
+
### Example
|
|
371
|
+
|
|
372
|
+
```ts
|
|
373
|
+
import {
|
|
374
|
+
Configuration,
|
|
375
|
+
BoatApi,
|
|
376
|
+
} from '@boatdev/sdk';
|
|
377
|
+
import type { CommandOperationRequest } from '@boatdev/sdk';
|
|
378
|
+
|
|
379
|
+
async function example() {
|
|
380
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
381
|
+
const config = new Configuration({
|
|
382
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
383
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
384
|
+
});
|
|
385
|
+
const api = new BoatApi(config);
|
|
386
|
+
|
|
387
|
+
const body = {
|
|
388
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
389
|
+
sandboxId: sandboxId_example,
|
|
390
|
+
// CommandRequest
|
|
391
|
+
commandRequest: ...,
|
|
392
|
+
} satisfies CommandOperationRequest;
|
|
393
|
+
|
|
394
|
+
try {
|
|
395
|
+
const data = await api.command(body);
|
|
396
|
+
console.log(data);
|
|
397
|
+
} catch (error) {
|
|
398
|
+
console.error(error);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
// Run the test
|
|
403
|
+
example().catch(console.error);
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### Parameters
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
| Name | Type | Description | Notes |
|
|
410
|
+
|------------- | ------------- | ------------- | -------------|
|
|
411
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
412
|
+
| **commandRequest** | [CommandRequest](CommandRequest.md) | | |
|
|
413
|
+
|
|
414
|
+
### Return type
|
|
415
|
+
|
|
416
|
+
[**Command200Response**](Command200Response.md)
|
|
417
|
+
|
|
418
|
+
### Authorization
|
|
419
|
+
|
|
420
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
421
|
+
|
|
422
|
+
### HTTP request headers
|
|
423
|
+
|
|
424
|
+
- **Content-Type**: `application/json`
|
|
425
|
+
- **Accept**: `application/json`
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
### HTTP response details
|
|
429
|
+
| Status code | Description | Response headers |
|
|
430
|
+
|-------------|-------------|------------------|
|
|
431
|
+
| **200** | Command result (synchronous) or process start confirmation (detached). | - |
|
|
432
|
+
| **400** | Invalid request body or parameters. | - |
|
|
433
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
434
|
+
| **404** | Resource not found. | - |
|
|
435
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
436
|
+
|
|
437
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
## commandStatus
|
|
441
|
+
|
|
442
|
+
> CommandStatusResponse commandStatus(sandboxId, processId, tailBytes)
|
|
443
|
+
|
|
444
|
+
Get detached command status and logs
|
|
445
|
+
|
|
446
|
+
### Example
|
|
447
|
+
|
|
448
|
+
```ts
|
|
449
|
+
import {
|
|
450
|
+
Configuration,
|
|
451
|
+
BoatApi,
|
|
452
|
+
} from '@boatdev/sdk';
|
|
453
|
+
import type { CommandStatusRequest } from '@boatdev/sdk';
|
|
454
|
+
|
|
455
|
+
async function example() {
|
|
456
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
457
|
+
const config = new Configuration({
|
|
458
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
459
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
460
|
+
});
|
|
461
|
+
const api = new BoatApi(config);
|
|
462
|
+
|
|
463
|
+
const body = {
|
|
464
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
465
|
+
sandboxId: sandboxId_example,
|
|
466
|
+
// number | Process id returned by a detached command start.
|
|
467
|
+
processId: 56,
|
|
468
|
+
// number | Cap each returned log to its last N bytes. Defaults to 524288 (512 KiB). (optional)
|
|
469
|
+
tailBytes: 56,
|
|
470
|
+
} satisfies CommandStatusRequest;
|
|
471
|
+
|
|
472
|
+
try {
|
|
473
|
+
const data = await api.commandStatus(body);
|
|
474
|
+
console.log(data);
|
|
475
|
+
} catch (error) {
|
|
476
|
+
console.error(error);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
// Run the test
|
|
481
|
+
example().catch(console.error);
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Parameters
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
| Name | Type | Description | Notes |
|
|
488
|
+
|------------- | ------------- | ------------- | -------------|
|
|
489
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
490
|
+
| **processId** | `number` | Process id returned by a detached command start. | [Defaults to `undefined`] |
|
|
491
|
+
| **tailBytes** | `number` | Cap each returned log to its last N bytes. Defaults to 524288 (512 KiB). | [Optional] [Defaults to `undefined`] |
|
|
492
|
+
|
|
493
|
+
### Return type
|
|
494
|
+
|
|
495
|
+
[**CommandStatusResponse**](CommandStatusResponse.md)
|
|
496
|
+
|
|
497
|
+
### Authorization
|
|
498
|
+
|
|
499
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
500
|
+
|
|
501
|
+
### HTTP request headers
|
|
502
|
+
|
|
503
|
+
- **Content-Type**: Not defined
|
|
504
|
+
- **Accept**: `application/json`
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
### HTTP response details
|
|
508
|
+
| Status code | Description | Response headers |
|
|
509
|
+
|-------------|-------------|------------------|
|
|
510
|
+
| **200** | Process status and log tails. | - |
|
|
511
|
+
| **400** | Invalid request body or parameters. | - |
|
|
512
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
513
|
+
| **404** | Resource not found. | - |
|
|
514
|
+
|
|
515
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
## conversations
|
|
519
|
+
|
|
520
|
+
> ConversationsResponse conversations(sandboxId)
|
|
521
|
+
|
|
522
|
+
List boat conversations
|
|
523
|
+
|
|
524
|
+
Every conversation on the sandbox, most recently prompted first, with what you need to pick one: how many prompts it holds, whether a turn is running in it right now, the last harness and model it ran on, a preview of its last prompt, and `current`, the one a `POST /prompt` without `new` or `conversationId` would continue. Pass an `id` back as `conversationId` on `POST /prompt` to resume that thread, or as `conversation` on `POST /steer`, `POST /interrupt` and `GET /events` to scope those. See [Integrated agents](/integrated-agents).
|
|
525
|
+
|
|
526
|
+
### Example
|
|
527
|
+
|
|
528
|
+
```ts
|
|
529
|
+
import {
|
|
530
|
+
Configuration,
|
|
531
|
+
BoatApi,
|
|
532
|
+
} from '@boatdev/sdk';
|
|
533
|
+
import type { ConversationsRequest } from '@boatdev/sdk';
|
|
534
|
+
|
|
535
|
+
async function example() {
|
|
536
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
537
|
+
const config = new Configuration({
|
|
538
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
539
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
540
|
+
});
|
|
541
|
+
const api = new BoatApi(config);
|
|
542
|
+
|
|
543
|
+
const body = {
|
|
544
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
545
|
+
sandboxId: sandboxId_example,
|
|
546
|
+
} satisfies ConversationsRequest;
|
|
547
|
+
|
|
548
|
+
try {
|
|
549
|
+
const data = await api.conversations(body);
|
|
550
|
+
console.log(data);
|
|
551
|
+
} catch (error) {
|
|
552
|
+
console.error(error);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
// Run the test
|
|
557
|
+
example().catch(console.error);
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
### Parameters
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
| Name | Type | Description | Notes |
|
|
564
|
+
|------------- | ------------- | ------------- | -------------|
|
|
565
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
566
|
+
|
|
567
|
+
### Return type
|
|
568
|
+
|
|
569
|
+
[**ConversationsResponse**](ConversationsResponse.md)
|
|
570
|
+
|
|
571
|
+
### Authorization
|
|
572
|
+
|
|
573
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
574
|
+
|
|
575
|
+
### HTTP request headers
|
|
576
|
+
|
|
577
|
+
- **Content-Type**: Not defined
|
|
578
|
+
- **Accept**: `application/json`
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
### HTTP response details
|
|
582
|
+
| Status code | Description | Response headers |
|
|
583
|
+
|-------------|-------------|------------------|
|
|
584
|
+
| **200** | Conversations on the sandbox. A Sandbox that was never prompted returns an empty list. | - |
|
|
585
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
586
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
587
|
+
| **404** | Resource not found. | - |
|
|
588
|
+
|
|
589
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
## create
|
|
593
|
+
|
|
594
|
+
> CreateSandboxResponse create(idempotencyKey, org, xBoatOrg, createSandboxRequest)
|
|
595
|
+
|
|
596
|
+
Create sandbox
|
|
597
|
+
|
|
598
|
+
Provision a new cloud computer. Store the returned `sandbox.id` with your product job/session record. Send an `Idempotency-Key` header to make this call safe to retry after a lost response without creating a second billable sandbox.
|
|
599
|
+
|
|
600
|
+
### Example
|
|
601
|
+
|
|
602
|
+
```ts
|
|
603
|
+
import {
|
|
604
|
+
Configuration,
|
|
605
|
+
BoatApi,
|
|
606
|
+
} from '@boatdev/sdk';
|
|
607
|
+
import type { CreateRequest } from '@boatdev/sdk';
|
|
608
|
+
|
|
609
|
+
async function example() {
|
|
610
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
611
|
+
const config = new Configuration({
|
|
612
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
613
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
614
|
+
});
|
|
615
|
+
const api = new BoatApi(config);
|
|
616
|
+
|
|
617
|
+
const body = {
|
|
618
|
+
// string | Optional exactly-once key for creating a sandbox. Send your own opaque, account-unique value (a UUID) to make `POST /sandboxes` safe to retry when the response is lost (network timeout, 5xx): the first request creates the sandbox and binds it to the key; every later request with the **same account, key, and request body** returns that same sandbox instead of creating a second, billable one. Behavior: keys are retained for **24 hours**; a concurrent or early retry while the first sandbox is still being minted returns `409` `idempotency_in_progress` (retry shortly, same key); reusing a key with a **different body** returns `409` `idempotency_key_reused`; timeouts and 5xx are safe to retry with the same key; a create that fails before the sandbox exists releases the key within ~2 minutes so a retry can create the sandbox. Omit the header to keep the default (non-idempotent) behavior. (optional)
|
|
619
|
+
idempotencyKey: idempotencyKey_example,
|
|
620
|
+
// string | Billing wallet for this request. A team id you belong to reads that team\'s limits / bills a create to that team. Your own account id is personal. Sandboxes, snapshots, and environments stay creator-private. (optional)
|
|
621
|
+
org: org_example,
|
|
622
|
+
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
623
|
+
xBoatOrg: xBoatOrg_example,
|
|
624
|
+
// CreateSandboxRequest (optional)
|
|
625
|
+
createSandboxRequest: ...,
|
|
626
|
+
} satisfies CreateRequest;
|
|
627
|
+
|
|
628
|
+
try {
|
|
629
|
+
const data = await api.create(body);
|
|
630
|
+
console.log(data);
|
|
631
|
+
} catch (error) {
|
|
632
|
+
console.error(error);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
// Run the test
|
|
637
|
+
example().catch(console.error);
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
### Parameters
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
| Name | Type | Description | Notes |
|
|
644
|
+
|------------- | ------------- | ------------- | -------------|
|
|
645
|
+
| **idempotencyKey** | `string` | Optional exactly-once key for creating a sandbox. Send your own opaque, account-unique value (a UUID) to make `POST /sandboxes` safe to retry when the response is lost (network timeout, 5xx): the first request creates the sandbox and binds it to the key; every later request with the **same account, key, and request body** returns that same sandbox instead of creating a second, billable one. Behavior: keys are retained for **24 hours**; a concurrent or early retry while the first sandbox is still being minted returns `409` `idempotency_in_progress` (retry shortly, same key); reusing a key with a **different body** returns `409` `idempotency_key_reused`; timeouts and 5xx are safe to retry with the same key; a create that fails before the sandbox exists releases the key within ~2 minutes so a retry can create the sandbox. Omit the header to keep the default (non-idempotent) behavior. | [Optional] [Defaults to `undefined`] |
|
|
646
|
+
| **org** | `string` | Billing wallet for this request. A team id you belong to reads that team\'s limits / bills a create to that team. Your own account id is personal. Sandboxes, snapshots, and environments stay creator-private. | [Optional] [Defaults to `undefined`] |
|
|
647
|
+
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
648
|
+
| **createSandboxRequest** | [CreateSandboxRequest](CreateSandboxRequest.md) | | [Optional] |
|
|
649
|
+
|
|
650
|
+
### Return type
|
|
651
|
+
|
|
652
|
+
[**CreateSandboxResponse**](CreateSandboxResponse.md)
|
|
653
|
+
|
|
654
|
+
### Authorization
|
|
655
|
+
|
|
656
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
657
|
+
|
|
658
|
+
### HTTP request headers
|
|
659
|
+
|
|
660
|
+
- **Content-Type**: `application/json`
|
|
661
|
+
- **Accept**: `application/json`
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
### HTTP response details
|
|
665
|
+
| Status code | Description | Response headers |
|
|
666
|
+
|-------------|-------------|------------------|
|
|
667
|
+
| **202** | Boat accepted for provisioning. | - |
|
|
668
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
669
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
670
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
671
|
+
| **429** | Machine start or concurrent-sandbox limit reached. Create, fork and resume each count as one machine start against your plan\'s start limits (see the Billing guide; `rate_limited`, naming the window you hit). A sandbox that would exceed your plan\'s concurrent-sandbox cap is refused with `limit_reached`, or `member_limit_reached` when an organization owner has capped you below the plan. | - |
|
|
672
|
+
|
|
673
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
## createEnvironment
|
|
677
|
+
|
|
678
|
+
> SandboxEnvironmentListResponse createEnvironment(createSandboxEnvironmentRequest)
|
|
679
|
+
|
|
680
|
+
Create a sandbox environment
|
|
681
|
+
|
|
682
|
+
Create a new named environment. It starts on version 1 with all fine-grained flags on and `safeForThirdParties` off.
|
|
683
|
+
|
|
684
|
+
### Example
|
|
685
|
+
|
|
686
|
+
```ts
|
|
687
|
+
import {
|
|
688
|
+
Configuration,
|
|
689
|
+
BoatApi,
|
|
690
|
+
} from '@boatdev/sdk';
|
|
691
|
+
import type { CreateEnvironmentRequest } from '@boatdev/sdk';
|
|
692
|
+
|
|
693
|
+
async function example() {
|
|
694
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
695
|
+
const config = new Configuration({
|
|
696
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
697
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
698
|
+
});
|
|
699
|
+
const api = new BoatApi(config);
|
|
700
|
+
|
|
701
|
+
const body = {
|
|
702
|
+
// CreateSandboxEnvironmentRequest
|
|
703
|
+
createSandboxEnvironmentRequest: ...,
|
|
704
|
+
} satisfies CreateEnvironmentRequest;
|
|
705
|
+
|
|
706
|
+
try {
|
|
707
|
+
const data = await api.createEnvironment(body);
|
|
708
|
+
console.log(data);
|
|
709
|
+
} catch (error) {
|
|
710
|
+
console.error(error);
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
// Run the test
|
|
715
|
+
example().catch(console.error);
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
### Parameters
|
|
719
|
+
|
|
720
|
+
|
|
721
|
+
| Name | Type | Description | Notes |
|
|
722
|
+
|------------- | ------------- | ------------- | -------------|
|
|
723
|
+
| **createSandboxEnvironmentRequest** | [CreateSandboxEnvironmentRequest](CreateSandboxEnvironmentRequest.md) | | |
|
|
724
|
+
|
|
725
|
+
### Return type
|
|
726
|
+
|
|
727
|
+
[**SandboxEnvironmentListResponse**](SandboxEnvironmentListResponse.md)
|
|
728
|
+
|
|
729
|
+
### Authorization
|
|
730
|
+
|
|
731
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
732
|
+
|
|
733
|
+
### HTTP request headers
|
|
734
|
+
|
|
735
|
+
- **Content-Type**: `application/json`
|
|
736
|
+
- **Accept**: `application/json`
|
|
737
|
+
|
|
738
|
+
|
|
739
|
+
### HTTP response details
|
|
740
|
+
| Status code | Description | Response headers |
|
|
741
|
+
|-------------|-------------|------------------|
|
|
742
|
+
| **200** | Environment created; full list returned. | - |
|
|
743
|
+
| **400** | Invalid request body or parameters. | - |
|
|
744
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
745
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
746
|
+
|
|
747
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
## createScopedApiKey
|
|
751
|
+
|
|
752
|
+
> ApiKeySecretResponse createScopedApiKey(createScopedApiKeyRequest)
|
|
753
|
+
|
|
754
|
+
Create a scoped API key
|
|
755
|
+
|
|
756
|
+
Creates a scoped, expiring API key. Requires a dashboard/CLI session or an admin-scoped token. The secret is returned once. This dedicated path returns a typed 503 until scoped credential creation is activated.
|
|
757
|
+
|
|
758
|
+
### Example
|
|
759
|
+
|
|
760
|
+
```ts
|
|
761
|
+
import {
|
|
762
|
+
Configuration,
|
|
763
|
+
BoatApi,
|
|
764
|
+
} from '@boatdev/sdk';
|
|
765
|
+
import type { CreateScopedApiKeyOperationRequest } from '@boatdev/sdk';
|
|
766
|
+
|
|
767
|
+
async function example() {
|
|
768
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
769
|
+
const config = new Configuration({
|
|
770
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
771
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
772
|
+
});
|
|
773
|
+
const api = new BoatApi(config);
|
|
774
|
+
|
|
775
|
+
const body = {
|
|
776
|
+
// CreateScopedApiKeyRequest
|
|
777
|
+
createScopedApiKeyRequest: ...,
|
|
778
|
+
} satisfies CreateScopedApiKeyOperationRequest;
|
|
779
|
+
|
|
780
|
+
try {
|
|
781
|
+
const data = await api.createScopedApiKey(body);
|
|
782
|
+
console.log(data);
|
|
783
|
+
} catch (error) {
|
|
784
|
+
console.error(error);
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
// Run the test
|
|
789
|
+
example().catch(console.error);
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
### Parameters
|
|
793
|
+
|
|
794
|
+
|
|
795
|
+
| Name | Type | Description | Notes |
|
|
796
|
+
|------------- | ------------- | ------------- | -------------|
|
|
797
|
+
| **createScopedApiKeyRequest** | [CreateScopedApiKeyRequest](CreateScopedApiKeyRequest.md) | | |
|
|
798
|
+
|
|
799
|
+
### Return type
|
|
800
|
+
|
|
801
|
+
[**ApiKeySecretResponse**](ApiKeySecretResponse.md)
|
|
802
|
+
|
|
803
|
+
### Authorization
|
|
804
|
+
|
|
805
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
806
|
+
|
|
807
|
+
### HTTP request headers
|
|
808
|
+
|
|
809
|
+
- **Content-Type**: `application/json`
|
|
810
|
+
- **Accept**: `application/json`
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
### HTTP response details
|
|
814
|
+
| Status code | Description | Response headers |
|
|
815
|
+
|-------------|-------------|------------------|
|
|
816
|
+
| **201** | Created key metadata plus the one-time secret. | - |
|
|
817
|
+
| **400** | Invalid request body or parameters. | - |
|
|
818
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
819
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
820
|
+
| **503** | Scoped credential creation has not been activated yet. | - |
|
|
821
|
+
|
|
822
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
## createWebhook
|
|
826
|
+
|
|
827
|
+
> WebhookSecretResponse createWebhook(webhookCreateRequest)
|
|
828
|
+
|
|
829
|
+
Create webhook
|
|
830
|
+
|
|
831
|
+
Registers an account-wide endpoint for sandbox lifecycle events. The endpoint must use HTTPS on port 443 and resolve only to public addresses. Redirects are not followed during delivery. The signing secret is returned only in this response. An account can register at most 10 unique endpoint URLs.
|
|
832
|
+
|
|
833
|
+
### Example
|
|
834
|
+
|
|
835
|
+
```ts
|
|
836
|
+
import {
|
|
837
|
+
Configuration,
|
|
838
|
+
BoatApi,
|
|
839
|
+
} from '@boatdev/sdk';
|
|
840
|
+
import type { CreateWebhookRequest } from '@boatdev/sdk';
|
|
841
|
+
|
|
842
|
+
async function example() {
|
|
843
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
844
|
+
const config = new Configuration({
|
|
845
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
846
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
847
|
+
});
|
|
848
|
+
const api = new BoatApi(config);
|
|
849
|
+
|
|
850
|
+
const body = {
|
|
851
|
+
// WebhookCreateRequest
|
|
852
|
+
webhookCreateRequest: {"name":"Production automation","url":"https://example.com/hooks/sandbox","events":["sandbox.ready","sandbox.error"]},
|
|
853
|
+
} satisfies CreateWebhookRequest;
|
|
854
|
+
|
|
855
|
+
try {
|
|
856
|
+
const data = await api.createWebhook(body);
|
|
857
|
+
console.log(data);
|
|
858
|
+
} catch (error) {
|
|
859
|
+
console.error(error);
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
// Run the test
|
|
864
|
+
example().catch(console.error);
|
|
865
|
+
```
|
|
866
|
+
|
|
867
|
+
### Parameters
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
| Name | Type | Description | Notes |
|
|
871
|
+
|------------- | ------------- | ------------- | -------------|
|
|
872
|
+
| **webhookCreateRequest** | [WebhookCreateRequest](WebhookCreateRequest.md) | | |
|
|
873
|
+
|
|
874
|
+
### Return type
|
|
875
|
+
|
|
876
|
+
[**WebhookSecretResponse**](WebhookSecretResponse.md)
|
|
877
|
+
|
|
878
|
+
### Authorization
|
|
879
|
+
|
|
880
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
881
|
+
|
|
882
|
+
### HTTP request headers
|
|
883
|
+
|
|
884
|
+
- **Content-Type**: `application/json`
|
|
885
|
+
- **Accept**: `application/json`
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
### HTTP response details
|
|
889
|
+
| Status code | Description | Response headers |
|
|
890
|
+
|-------------|-------------|------------------|
|
|
891
|
+
| **201** | Webhook created. Store the one-time signing secret now. | - |
|
|
892
|
+
| **400** | Invalid request body or parameters. | - |
|
|
893
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
894
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
895
|
+
|
|
896
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
## deleteEnvironment
|
|
900
|
+
|
|
901
|
+
> SandboxEnvironmentResponse deleteEnvironment(environmentId)
|
|
902
|
+
|
|
903
|
+
Delete a sandbox environment
|
|
904
|
+
|
|
905
|
+
Soft-deletes an environment. The default environment cannot be deleted, and at least one environment is always kept.
|
|
906
|
+
|
|
907
|
+
### Example
|
|
908
|
+
|
|
909
|
+
```ts
|
|
910
|
+
import {
|
|
911
|
+
Configuration,
|
|
912
|
+
BoatApi,
|
|
913
|
+
} from '@boatdev/sdk';
|
|
914
|
+
import type { DeleteEnvironmentRequest } from '@boatdev/sdk';
|
|
915
|
+
|
|
916
|
+
async function example() {
|
|
917
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
918
|
+
const config = new Configuration({
|
|
919
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
920
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
921
|
+
});
|
|
922
|
+
const api = new BoatApi(config);
|
|
923
|
+
|
|
924
|
+
const body = {
|
|
925
|
+
// string | Environment id returned by `GET /environments`.
|
|
926
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
927
|
+
} satisfies DeleteEnvironmentRequest;
|
|
928
|
+
|
|
929
|
+
try {
|
|
930
|
+
const data = await api.deleteEnvironment(body);
|
|
931
|
+
console.log(data);
|
|
932
|
+
} catch (error) {
|
|
933
|
+
console.error(error);
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
// Run the test
|
|
938
|
+
example().catch(console.error);
|
|
939
|
+
```
|
|
940
|
+
|
|
941
|
+
### Parameters
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
| Name | Type | Description | Notes |
|
|
945
|
+
|------------- | ------------- | ------------- | -------------|
|
|
946
|
+
| **environmentId** | `string` | Environment id returned by `GET /environments`. | [Defaults to `undefined`] |
|
|
947
|
+
|
|
948
|
+
### Return type
|
|
949
|
+
|
|
950
|
+
[**SandboxEnvironmentResponse**](SandboxEnvironmentResponse.md)
|
|
951
|
+
|
|
952
|
+
### Authorization
|
|
953
|
+
|
|
954
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
955
|
+
|
|
956
|
+
### HTTP request headers
|
|
957
|
+
|
|
958
|
+
- **Content-Type**: Not defined
|
|
959
|
+
- **Accept**: `application/json`
|
|
960
|
+
|
|
961
|
+
|
|
962
|
+
### HTTP response details
|
|
963
|
+
| Status code | Description | Response headers |
|
|
964
|
+
|-------------|-------------|------------------|
|
|
965
|
+
| **200** | Environment soft-deleted. | - |
|
|
966
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
967
|
+
| **404** | Resource not found. | - |
|
|
968
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
969
|
+
|
|
970
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
## deleteEnvironmentRepo
|
|
974
|
+
|
|
975
|
+
> EnvironmentItemChangeResponse deleteEnvironmentRepo(environmentId, repositoryId)
|
|
976
|
+
|
|
977
|
+
Remove a repository from an environment
|
|
978
|
+
|
|
979
|
+
Removes one repository from the environment\'s selection. Mints a new immutable version.
|
|
980
|
+
|
|
981
|
+
### Example
|
|
982
|
+
|
|
983
|
+
```ts
|
|
984
|
+
import {
|
|
985
|
+
Configuration,
|
|
986
|
+
BoatApi,
|
|
987
|
+
} from '@boatdev/sdk';
|
|
988
|
+
import type { DeleteEnvironmentRepoRequest } from '@boatdev/sdk';
|
|
989
|
+
|
|
990
|
+
async function example() {
|
|
991
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
992
|
+
const config = new Configuration({
|
|
993
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
994
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
995
|
+
});
|
|
996
|
+
const api = new BoatApi(config);
|
|
997
|
+
|
|
998
|
+
const body = {
|
|
999
|
+
// string
|
|
1000
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
1001
|
+
// string | The repository `databaseId`.
|
|
1002
|
+
repositoryId: repositoryId_example,
|
|
1003
|
+
} satisfies DeleteEnvironmentRepoRequest;
|
|
1004
|
+
|
|
1005
|
+
try {
|
|
1006
|
+
const data = await api.deleteEnvironmentRepo(body);
|
|
1007
|
+
console.log(data);
|
|
1008
|
+
} catch (error) {
|
|
1009
|
+
console.error(error);
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
// Run the test
|
|
1014
|
+
example().catch(console.error);
|
|
1015
|
+
```
|
|
1016
|
+
|
|
1017
|
+
### Parameters
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
| Name | Type | Description | Notes |
|
|
1021
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1022
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
1023
|
+
| **repositoryId** | `string` | The repository `databaseId`. | [Defaults to `undefined`] |
|
|
1024
|
+
|
|
1025
|
+
### Return type
|
|
1026
|
+
|
|
1027
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
1028
|
+
|
|
1029
|
+
### Authorization
|
|
1030
|
+
|
|
1031
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1032
|
+
|
|
1033
|
+
### HTTP request headers
|
|
1034
|
+
|
|
1035
|
+
- **Content-Type**: Not defined
|
|
1036
|
+
- **Accept**: `application/json`
|
|
1037
|
+
|
|
1038
|
+
|
|
1039
|
+
### HTTP response details
|
|
1040
|
+
| Status code | Description | Response headers |
|
|
1041
|
+
|-------------|-------------|------------------|
|
|
1042
|
+
| **200** | New version minted. | - |
|
|
1043
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1044
|
+
| **404** | Resource not found. | - |
|
|
1045
|
+
|
|
1046
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
## deleteEnvironmentSecretFile
|
|
1050
|
+
|
|
1051
|
+
> EnvironmentItemChangeResponse deleteEnvironmentSecretFile(path, environmentId)
|
|
1052
|
+
|
|
1053
|
+
Remove one secret file
|
|
1054
|
+
|
|
1055
|
+
Removes the secret file at `path`. Mints a new immutable version.
|
|
1056
|
+
|
|
1057
|
+
### Example
|
|
1058
|
+
|
|
1059
|
+
```ts
|
|
1060
|
+
import {
|
|
1061
|
+
Configuration,
|
|
1062
|
+
BoatApi,
|
|
1063
|
+
} from '@boatdev/sdk';
|
|
1064
|
+
import type { DeleteEnvironmentSecretFileRequest } from '@boatdev/sdk';
|
|
1065
|
+
|
|
1066
|
+
async function example() {
|
|
1067
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1068
|
+
const config = new Configuration({
|
|
1069
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1070
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1071
|
+
});
|
|
1072
|
+
const api = new BoatApi(config);
|
|
1073
|
+
|
|
1074
|
+
const body = {
|
|
1075
|
+
// string
|
|
1076
|
+
path: path_example,
|
|
1077
|
+
// string
|
|
1078
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
1079
|
+
} satisfies DeleteEnvironmentSecretFileRequest;
|
|
1080
|
+
|
|
1081
|
+
try {
|
|
1082
|
+
const data = await api.deleteEnvironmentSecretFile(body);
|
|
1083
|
+
console.log(data);
|
|
1084
|
+
} catch (error) {
|
|
1085
|
+
console.error(error);
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
// Run the test
|
|
1090
|
+
example().catch(console.error);
|
|
1091
|
+
```
|
|
1092
|
+
|
|
1093
|
+
### Parameters
|
|
1094
|
+
|
|
1095
|
+
|
|
1096
|
+
| Name | Type | Description | Notes |
|
|
1097
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1098
|
+
| **path** | `string` | | [Defaults to `undefined`] |
|
|
1099
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
1100
|
+
|
|
1101
|
+
### Return type
|
|
1102
|
+
|
|
1103
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
1104
|
+
|
|
1105
|
+
### Authorization
|
|
1106
|
+
|
|
1107
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1108
|
+
|
|
1109
|
+
### HTTP request headers
|
|
1110
|
+
|
|
1111
|
+
- **Content-Type**: Not defined
|
|
1112
|
+
- **Accept**: `application/json`
|
|
1113
|
+
|
|
1114
|
+
|
|
1115
|
+
### HTTP response details
|
|
1116
|
+
| Status code | Description | Response headers |
|
|
1117
|
+
|-------------|-------------|------------------|
|
|
1118
|
+
| **200** | New version minted. | - |
|
|
1119
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1120
|
+
| **404** | Resource not found. | - |
|
|
1121
|
+
|
|
1122
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1123
|
+
|
|
1124
|
+
|
|
1125
|
+
## deleteEnvironmentVar
|
|
1126
|
+
|
|
1127
|
+
> EnvironmentItemChangeResponse deleteEnvironmentVar(environmentId, key)
|
|
1128
|
+
|
|
1129
|
+
Remove one environment variable
|
|
1130
|
+
|
|
1131
|
+
Removes a single variable. Mints a new immutable version.
|
|
1132
|
+
|
|
1133
|
+
### Example
|
|
1134
|
+
|
|
1135
|
+
```ts
|
|
1136
|
+
import {
|
|
1137
|
+
Configuration,
|
|
1138
|
+
BoatApi,
|
|
1139
|
+
} from '@boatdev/sdk';
|
|
1140
|
+
import type { DeleteEnvironmentVarRequest } from '@boatdev/sdk';
|
|
1141
|
+
|
|
1142
|
+
async function example() {
|
|
1143
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1144
|
+
const config = new Configuration({
|
|
1145
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1146
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1147
|
+
});
|
|
1148
|
+
const api = new BoatApi(config);
|
|
1149
|
+
|
|
1150
|
+
const body = {
|
|
1151
|
+
// string
|
|
1152
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
1153
|
+
// string | Environment variable name.
|
|
1154
|
+
key: key_example,
|
|
1155
|
+
} satisfies DeleteEnvironmentVarRequest;
|
|
1156
|
+
|
|
1157
|
+
try {
|
|
1158
|
+
const data = await api.deleteEnvironmentVar(body);
|
|
1159
|
+
console.log(data);
|
|
1160
|
+
} catch (error) {
|
|
1161
|
+
console.error(error);
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
// Run the test
|
|
1166
|
+
example().catch(console.error);
|
|
1167
|
+
```
|
|
1168
|
+
|
|
1169
|
+
### Parameters
|
|
1170
|
+
|
|
1171
|
+
|
|
1172
|
+
| Name | Type | Description | Notes |
|
|
1173
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1174
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
1175
|
+
| **key** | `string` | Environment variable name. | [Defaults to `undefined`] |
|
|
1176
|
+
|
|
1177
|
+
### Return type
|
|
1178
|
+
|
|
1179
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
1180
|
+
|
|
1181
|
+
### Authorization
|
|
1182
|
+
|
|
1183
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1184
|
+
|
|
1185
|
+
### HTTP request headers
|
|
1186
|
+
|
|
1187
|
+
- **Content-Type**: Not defined
|
|
1188
|
+
- **Accept**: `application/json`
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
### HTTP response details
|
|
1192
|
+
| Status code | Description | Response headers |
|
|
1193
|
+
|-------------|-------------|------------------|
|
|
1194
|
+
| **200** | New version minted. | - |
|
|
1195
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1196
|
+
| **404** | Resource not found. | - |
|
|
1197
|
+
|
|
1198
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
## deleteNamedSnapshot
|
|
1202
|
+
|
|
1203
|
+
> NamedSnapshotDeletedResponse deleteNamedSnapshot(name)
|
|
1204
|
+
|
|
1205
|
+
Remove a named snapshot
|
|
1206
|
+
|
|
1207
|
+
Remove a named snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
|
|
1208
|
+
|
|
1209
|
+
### Example
|
|
1210
|
+
|
|
1211
|
+
```ts
|
|
1212
|
+
import {
|
|
1213
|
+
Configuration,
|
|
1214
|
+
BoatApi,
|
|
1215
|
+
} from '@boatdev/sdk';
|
|
1216
|
+
import type { DeleteNamedSnapshotRequest } from '@boatdev/sdk';
|
|
1217
|
+
|
|
1218
|
+
async function example() {
|
|
1219
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1220
|
+
const config = new Configuration({
|
|
1221
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1222
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1223
|
+
});
|
|
1224
|
+
const api = new BoatApi(config);
|
|
1225
|
+
|
|
1226
|
+
const body = {
|
|
1227
|
+
// string
|
|
1228
|
+
name: name_example,
|
|
1229
|
+
} satisfies DeleteNamedSnapshotRequest;
|
|
1230
|
+
|
|
1231
|
+
try {
|
|
1232
|
+
const data = await api.deleteNamedSnapshot(body);
|
|
1233
|
+
console.log(data);
|
|
1234
|
+
} catch (error) {
|
|
1235
|
+
console.error(error);
|
|
1236
|
+
}
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
// Run the test
|
|
1240
|
+
example().catch(console.error);
|
|
1241
|
+
```
|
|
1242
|
+
|
|
1243
|
+
### Parameters
|
|
1244
|
+
|
|
1245
|
+
|
|
1246
|
+
| Name | Type | Description | Notes |
|
|
1247
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1248
|
+
| **name** | `string` | | [Defaults to `undefined`] |
|
|
1249
|
+
|
|
1250
|
+
### Return type
|
|
1251
|
+
|
|
1252
|
+
[**NamedSnapshotDeletedResponse**](NamedSnapshotDeletedResponse.md)
|
|
1253
|
+
|
|
1254
|
+
### Authorization
|
|
1255
|
+
|
|
1256
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1257
|
+
|
|
1258
|
+
### HTTP request headers
|
|
1259
|
+
|
|
1260
|
+
- **Content-Type**: Not defined
|
|
1261
|
+
- **Accept**: `application/json`
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
### HTTP response details
|
|
1265
|
+
| Status code | Description | Response headers |
|
|
1266
|
+
|-------------|-------------|------------------|
|
|
1267
|
+
| **200** | Removed. | - |
|
|
1268
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1269
|
+
| **404** | Resource not found. | - |
|
|
1270
|
+
| **409** | `save_in_progress`: a save under this name is still running. Wait for it to settle before removing it. | - |
|
|
1271
|
+
|
|
1272
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1273
|
+
|
|
1274
|
+
|
|
1275
|
+
## deleteSandbox
|
|
1276
|
+
|
|
1277
|
+
> DeletionOperationResponse deleteSandbox(xAsciiConfirmDelete, sandboxId)
|
|
1278
|
+
|
|
1279
|
+
Permanently delete sandbox data
|
|
1280
|
+
|
|
1281
|
+
Accept irreversible background deletion of the sandbox machine, snapshots, and content-bearing records. This is not archive: the sandbox cannot be resumed. Named snapshots and other shared artifacts remain independent. Poll the returned operation until `completed`.
|
|
1282
|
+
|
|
1283
|
+
### Example
|
|
1284
|
+
|
|
1285
|
+
```ts
|
|
1286
|
+
import {
|
|
1287
|
+
Configuration,
|
|
1288
|
+
BoatApi,
|
|
1289
|
+
} from '@boatdev/sdk';
|
|
1290
|
+
import type { DeleteSandboxRequest } from '@boatdev/sdk';
|
|
1291
|
+
|
|
1292
|
+
async function example() {
|
|
1293
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1294
|
+
const config = new Configuration({
|
|
1295
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1296
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1297
|
+
});
|
|
1298
|
+
const api = new BoatApi(config);
|
|
1299
|
+
|
|
1300
|
+
const body = {
|
|
1301
|
+
// string | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion.
|
|
1302
|
+
xAsciiConfirmDelete: xAsciiConfirmDelete_example,
|
|
1303
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
1304
|
+
sandboxId: sandboxId_example,
|
|
1305
|
+
} satisfies DeleteSandboxRequest;
|
|
1306
|
+
|
|
1307
|
+
try {
|
|
1308
|
+
const data = await api.deleteSandbox(body);
|
|
1309
|
+
console.log(data);
|
|
1310
|
+
} catch (error) {
|
|
1311
|
+
console.error(error);
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1315
|
+
// Run the test
|
|
1316
|
+
example().catch(console.error);
|
|
1317
|
+
```
|
|
1318
|
+
|
|
1319
|
+
### Parameters
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
| Name | Type | Description | Notes |
|
|
1323
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1324
|
+
| **xAsciiConfirmDelete** | `string` | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion. | [Defaults to `undefined`] |
|
|
1325
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
1326
|
+
|
|
1327
|
+
### Return type
|
|
1328
|
+
|
|
1329
|
+
[**DeletionOperationResponse**](DeletionOperationResponse.md)
|
|
1330
|
+
|
|
1331
|
+
### Authorization
|
|
1332
|
+
|
|
1333
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1334
|
+
|
|
1335
|
+
### HTTP request headers
|
|
1336
|
+
|
|
1337
|
+
- **Content-Type**: Not defined
|
|
1338
|
+
- **Accept**: `application/json`
|
|
1339
|
+
|
|
1340
|
+
|
|
1341
|
+
### HTTP response details
|
|
1342
|
+
| Status code | Description | Response headers |
|
|
1343
|
+
|-------------|-------------|------------------|
|
|
1344
|
+
| **202** | Deletion confirmed and accepted for background processing. | - |
|
|
1345
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1346
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1347
|
+
| **404** | Resource not found. | - |
|
|
1348
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1349
|
+
|
|
1350
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1351
|
+
|
|
1352
|
+
|
|
1353
|
+
## deleteSnapshot
|
|
1354
|
+
|
|
1355
|
+
> DeletionOperationResponse deleteSnapshot(snapshotId, xAsciiConfirmDelete)
|
|
1356
|
+
|
|
1357
|
+
Permanently delete snapshot data
|
|
1358
|
+
|
|
1359
|
+
Accept irreversible background deletion of an unpinned snapshot owned by the authenticated account. Snapshots required by another incremental snapshot or active restore return `409`. Poll the returned operation until `completed`.
|
|
1360
|
+
|
|
1361
|
+
### Example
|
|
1362
|
+
|
|
1363
|
+
```ts
|
|
1364
|
+
import {
|
|
1365
|
+
Configuration,
|
|
1366
|
+
BoatApi,
|
|
1367
|
+
} from '@boatdev/sdk';
|
|
1368
|
+
import type { DeleteSnapshotRequest } from '@boatdev/sdk';
|
|
1369
|
+
|
|
1370
|
+
async function example() {
|
|
1371
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1372
|
+
const config = new Configuration({
|
|
1373
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1374
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1375
|
+
});
|
|
1376
|
+
const api = new BoatApi(config);
|
|
1377
|
+
|
|
1378
|
+
const body = {
|
|
1379
|
+
// string | Snapshot id returned by the snapshot list/latest calls.
|
|
1380
|
+
snapshotId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
1381
|
+
// string | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion.
|
|
1382
|
+
xAsciiConfirmDelete: xAsciiConfirmDelete_example,
|
|
1383
|
+
} satisfies DeleteSnapshotRequest;
|
|
1384
|
+
|
|
1385
|
+
try {
|
|
1386
|
+
const data = await api.deleteSnapshot(body);
|
|
1387
|
+
console.log(data);
|
|
1388
|
+
} catch (error) {
|
|
1389
|
+
console.error(error);
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
// Run the test
|
|
1394
|
+
example().catch(console.error);
|
|
1395
|
+
```
|
|
1396
|
+
|
|
1397
|
+
### Parameters
|
|
1398
|
+
|
|
1399
|
+
|
|
1400
|
+
| Name | Type | Description | Notes |
|
|
1401
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1402
|
+
| **snapshotId** | `string` | Snapshot id returned by the snapshot list/latest calls. | [Defaults to `undefined`] |
|
|
1403
|
+
| **xAsciiConfirmDelete** | `string` | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion. | [Defaults to `undefined`] |
|
|
1404
|
+
|
|
1405
|
+
### Return type
|
|
1406
|
+
|
|
1407
|
+
[**DeletionOperationResponse**](DeletionOperationResponse.md)
|
|
1408
|
+
|
|
1409
|
+
### Authorization
|
|
1410
|
+
|
|
1411
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1412
|
+
|
|
1413
|
+
### HTTP request headers
|
|
1414
|
+
|
|
1415
|
+
- **Content-Type**: Not defined
|
|
1416
|
+
- **Accept**: `application/json`
|
|
1417
|
+
|
|
1418
|
+
|
|
1419
|
+
### HTTP response details
|
|
1420
|
+
| Status code | Description | Response headers |
|
|
1421
|
+
|-------------|-------------|------------------|
|
|
1422
|
+
| **202** | Deletion confirmed and accepted for background processing. | - |
|
|
1423
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1424
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1425
|
+
| **404** | Resource not found. | - |
|
|
1426
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1427
|
+
|
|
1428
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1429
|
+
|
|
1430
|
+
|
|
1431
|
+
## deleteWebhook
|
|
1432
|
+
|
|
1433
|
+
> WebhookDeleteResponse deleteWebhook(webhookId)
|
|
1434
|
+
|
|
1435
|
+
Delete webhook
|
|
1436
|
+
|
|
1437
|
+
Deletes the endpoint and its queued deliveries. An attempt already in flight can still arrive.
|
|
1438
|
+
|
|
1439
|
+
### Example
|
|
1440
|
+
|
|
1441
|
+
```ts
|
|
1442
|
+
import {
|
|
1443
|
+
Configuration,
|
|
1444
|
+
BoatApi,
|
|
1445
|
+
} from '@boatdev/sdk';
|
|
1446
|
+
import type { DeleteWebhookRequest } from '@boatdev/sdk';
|
|
1447
|
+
|
|
1448
|
+
async function example() {
|
|
1449
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1450
|
+
const config = new Configuration({
|
|
1451
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1452
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1453
|
+
});
|
|
1454
|
+
const api = new BoatApi(config);
|
|
1455
|
+
|
|
1456
|
+
const body = {
|
|
1457
|
+
// string
|
|
1458
|
+
webhookId: webhookId_example,
|
|
1459
|
+
} satisfies DeleteWebhookRequest;
|
|
1460
|
+
|
|
1461
|
+
try {
|
|
1462
|
+
const data = await api.deleteWebhook(body);
|
|
1463
|
+
console.log(data);
|
|
1464
|
+
} catch (error) {
|
|
1465
|
+
console.error(error);
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
// Run the test
|
|
1470
|
+
example().catch(console.error);
|
|
1471
|
+
```
|
|
1472
|
+
|
|
1473
|
+
### Parameters
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
| Name | Type | Description | Notes |
|
|
1477
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1478
|
+
| **webhookId** | `string` | | [Defaults to `undefined`] |
|
|
1479
|
+
|
|
1480
|
+
### Return type
|
|
1481
|
+
|
|
1482
|
+
[**WebhookDeleteResponse**](WebhookDeleteResponse.md)
|
|
1483
|
+
|
|
1484
|
+
### Authorization
|
|
1485
|
+
|
|
1486
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1487
|
+
|
|
1488
|
+
### HTTP request headers
|
|
1489
|
+
|
|
1490
|
+
- **Content-Type**: Not defined
|
|
1491
|
+
- **Accept**: `application/json`
|
|
1492
|
+
|
|
1493
|
+
|
|
1494
|
+
### HTTP response details
|
|
1495
|
+
| Status code | Description | Response headers |
|
|
1496
|
+
|-------------|-------------|------------------|
|
|
1497
|
+
| **200** | Webhook deleted. | - |
|
|
1498
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1499
|
+
| **404** | Resource not found. | - |
|
|
1500
|
+
|
|
1501
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1502
|
+
|
|
1503
|
+
|
|
1504
|
+
## desktop
|
|
1505
|
+
|
|
1506
|
+
> DesktopResponse desktop(sandboxId, vnc, theme, desktopRequest)
|
|
1507
|
+
|
|
1508
|
+
Get desktop streaming URL
|
|
1509
|
+
|
|
1510
|
+
Create or fetch a secret-bearing desktop/noVNC URL for live computer-use visibility. Use `?vnc=1` for noVNC; a `provisioning: true` response means poll again.
|
|
1511
|
+
|
|
1512
|
+
### Example
|
|
1513
|
+
|
|
1514
|
+
```ts
|
|
1515
|
+
import {
|
|
1516
|
+
Configuration,
|
|
1517
|
+
BoatApi,
|
|
1518
|
+
} from '@boatdev/sdk';
|
|
1519
|
+
import type { DesktopOperationRequest } from '@boatdev/sdk';
|
|
1520
|
+
|
|
1521
|
+
async function example() {
|
|
1522
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1523
|
+
const config = new Configuration({
|
|
1524
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1525
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1526
|
+
});
|
|
1527
|
+
const api = new BoatApi(config);
|
|
1528
|
+
|
|
1529
|
+
const body = {
|
|
1530
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
1531
|
+
sandboxId: sandboxId_example,
|
|
1532
|
+
// 1 | Use VNC/noVNC streaming mode. (optional)
|
|
1533
|
+
vnc: 56,
|
|
1534
|
+
// 'light' | 'dark' | Desktop streaming theme for non-VNC mode. (optional)
|
|
1535
|
+
theme: theme_example,
|
|
1536
|
+
// DesktopRequest (optional)
|
|
1537
|
+
desktopRequest: ...,
|
|
1538
|
+
} satisfies DesktopOperationRequest;
|
|
1539
|
+
|
|
1540
|
+
try {
|
|
1541
|
+
const data = await api.desktop(body);
|
|
1542
|
+
console.log(data);
|
|
1543
|
+
} catch (error) {
|
|
1544
|
+
console.error(error);
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
|
|
1548
|
+
// Run the test
|
|
1549
|
+
example().catch(console.error);
|
|
1550
|
+
```
|
|
1551
|
+
|
|
1552
|
+
### Parameters
|
|
1553
|
+
|
|
1554
|
+
|
|
1555
|
+
| Name | Type | Description | Notes |
|
|
1556
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1557
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
1558
|
+
| **vnc** | `1` | Use VNC/noVNC streaming mode. | [Optional] [Defaults to `undefined`] [Enum: 1] |
|
|
1559
|
+
| **theme** | `light`, `dark` | Desktop streaming theme for non-VNC mode. | [Optional] [Defaults to `undefined`] [Enum: light, dark] |
|
|
1560
|
+
| **desktopRequest** | [DesktopRequest](DesktopRequest.md) | | [Optional] |
|
|
1561
|
+
|
|
1562
|
+
### Return type
|
|
1563
|
+
|
|
1564
|
+
[**DesktopResponse**](DesktopResponse.md)
|
|
1565
|
+
|
|
1566
|
+
### Authorization
|
|
1567
|
+
|
|
1568
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1569
|
+
|
|
1570
|
+
### HTTP request headers
|
|
1571
|
+
|
|
1572
|
+
- **Content-Type**: `application/json`
|
|
1573
|
+
- **Accept**: `application/json`
|
|
1574
|
+
|
|
1575
|
+
|
|
1576
|
+
### HTTP response details
|
|
1577
|
+
| Status code | Description | Response headers |
|
|
1578
|
+
|-------------|-------------|------------------|
|
|
1579
|
+
| **200** | Desktop streaming URL, or provisioning state for VNC setup. | - |
|
|
1580
|
+
| **400** | Invalid request body or parameters. | - |
|
|
1581
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1582
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
1583
|
+
| **404** | Resource not found. | - |
|
|
1584
|
+
|
|
1585
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1586
|
+
|
|
1587
|
+
|
|
1588
|
+
## environments
|
|
1589
|
+
|
|
1590
|
+
> SandboxEnvironmentListResponse environments()
|
|
1591
|
+
|
|
1592
|
+
List Sandbox environments
|
|
1593
|
+
|
|
1594
|
+
Returns every non-deleted sandbox environment with its latest-version flags, contents, and per-version sandbox usage. A default environment named `base` is created on first access if none exists.
|
|
1595
|
+
|
|
1596
|
+
### Example
|
|
1597
|
+
|
|
1598
|
+
```ts
|
|
1599
|
+
import {
|
|
1600
|
+
Configuration,
|
|
1601
|
+
BoatApi,
|
|
1602
|
+
} from '@boatdev/sdk';
|
|
1603
|
+
import type { EnvironmentsRequest } from '@boatdev/sdk';
|
|
1604
|
+
|
|
1605
|
+
async function example() {
|
|
1606
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1607
|
+
const config = new Configuration({
|
|
1608
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1609
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1610
|
+
});
|
|
1611
|
+
const api = new BoatApi(config);
|
|
1612
|
+
|
|
1613
|
+
try {
|
|
1614
|
+
const data = await api.environments();
|
|
1615
|
+
console.log(data);
|
|
1616
|
+
} catch (error) {
|
|
1617
|
+
console.error(error);
|
|
1618
|
+
}
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
// Run the test
|
|
1622
|
+
example().catch(console.error);
|
|
1623
|
+
```
|
|
1624
|
+
|
|
1625
|
+
### Parameters
|
|
1626
|
+
|
|
1627
|
+
This endpoint does not need any parameter.
|
|
1628
|
+
|
|
1629
|
+
### Return type
|
|
1630
|
+
|
|
1631
|
+
[**SandboxEnvironmentListResponse**](SandboxEnvironmentListResponse.md)
|
|
1632
|
+
|
|
1633
|
+
### Authorization
|
|
1634
|
+
|
|
1635
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1636
|
+
|
|
1637
|
+
### HTTP request headers
|
|
1638
|
+
|
|
1639
|
+
- **Content-Type**: Not defined
|
|
1640
|
+
- **Accept**: `application/json`
|
|
1641
|
+
|
|
1642
|
+
|
|
1643
|
+
### HTTP response details
|
|
1644
|
+
| Status code | Description | Response headers |
|
|
1645
|
+
|-------------|-------------|------------------|
|
|
1646
|
+
| **200** | The account\'s sandbox environments. | - |
|
|
1647
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1648
|
+
|
|
1649
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1650
|
+
|
|
1651
|
+
|
|
1652
|
+
## events
|
|
1653
|
+
|
|
1654
|
+
> EventsResponse events(sandboxId, limit, cursor, sort, type, conversation)
|
|
1655
|
+
|
|
1656
|
+
List boat events
|
|
1657
|
+
|
|
1658
|
+
Return Sandbox work, lifecycle, and progress events so product UIs can show what the sandbox is doing. A Sandbox runs many conversations in parallel; this streams **all** of them by default and every event carries a `conversationId`. Filter to one or more with `conversation`. Event payloads are extensible. Clients can long-poll this endpoint with `sort=asc` and a cursor to stream responses. Response events expose agent text, streaming partials via `data.is_streaming`, and tool calls/results via `data.tools`.
|
|
1659
|
+
|
|
1660
|
+
### Example
|
|
1661
|
+
|
|
1662
|
+
```ts
|
|
1663
|
+
import {
|
|
1664
|
+
Configuration,
|
|
1665
|
+
BoatApi,
|
|
1666
|
+
} from '@boatdev/sdk';
|
|
1667
|
+
import type { EventsRequest } from '@boatdev/sdk';
|
|
1668
|
+
|
|
1669
|
+
async function example() {
|
|
1670
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1671
|
+
const config = new Configuration({
|
|
1672
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1673
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1674
|
+
});
|
|
1675
|
+
const api = new BoatApi(config);
|
|
1676
|
+
|
|
1677
|
+
const body = {
|
|
1678
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
1679
|
+
sandboxId: sandboxId_example,
|
|
1680
|
+
// number | Maximum items to return. (optional)
|
|
1681
|
+
limit: 56,
|
|
1682
|
+
// string | Opaque pagination cursor returned as `pageInfo.nextCursor`. (optional)
|
|
1683
|
+
cursor: cursor_example,
|
|
1684
|
+
// 'asc' | 'desc' | Sort direction for cursor pagination. (optional)
|
|
1685
|
+
sort: sort_example,
|
|
1686
|
+
// string | Comma-separated event type filter, for example `prompt,response,steer`. (optional)
|
|
1687
|
+
type: type_example,
|
|
1688
|
+
// string | Only return events for this conversation id. Repeat the parameter (or comma-separate) for several. Omit to stream every conversation on the sandbox. See [Integrated agents](/integrated-agents). (optional)
|
|
1689
|
+
conversation: conversation_example,
|
|
1690
|
+
} satisfies EventsRequest;
|
|
1691
|
+
|
|
1692
|
+
try {
|
|
1693
|
+
const data = await api.events(body);
|
|
1694
|
+
console.log(data);
|
|
1695
|
+
} catch (error) {
|
|
1696
|
+
console.error(error);
|
|
1697
|
+
}
|
|
1698
|
+
}
|
|
1699
|
+
|
|
1700
|
+
// Run the test
|
|
1701
|
+
example().catch(console.error);
|
|
1702
|
+
```
|
|
1703
|
+
|
|
1704
|
+
### Parameters
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
| Name | Type | Description | Notes |
|
|
1708
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1709
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
1710
|
+
| **limit** | `number` | Maximum items to return. | [Optional] [Defaults to `100`] |
|
|
1711
|
+
| **cursor** | `string` | Opaque pagination cursor returned as `pageInfo.nextCursor`. | [Optional] [Defaults to `undefined`] |
|
|
1712
|
+
| **sort** | `asc`, `desc` | Sort direction for cursor pagination. | [Optional] [Defaults to `'desc'`] [Enum: asc, desc] |
|
|
1713
|
+
| **type** | `string` | Comma-separated event type filter, for example `prompt,response,steer`. | [Optional] [Defaults to `undefined`] |
|
|
1714
|
+
| **conversation** | `string` | Only return events for this conversation id. Repeat the parameter (or comma-separate) for several. Omit to stream every conversation on the sandbox. See [Integrated agents](/integrated-agents). | [Optional] [Defaults to `undefined`] |
|
|
1715
|
+
|
|
1716
|
+
### Return type
|
|
1717
|
+
|
|
1718
|
+
[**EventsResponse**](EventsResponse.md)
|
|
1719
|
+
|
|
1720
|
+
### Authorization
|
|
1721
|
+
|
|
1722
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1723
|
+
|
|
1724
|
+
### HTTP request headers
|
|
1725
|
+
|
|
1726
|
+
- **Content-Type**: Not defined
|
|
1727
|
+
- **Accept**: `application/json`
|
|
1728
|
+
|
|
1729
|
+
|
|
1730
|
+
### HTTP response details
|
|
1731
|
+
| Status code | Description | Response headers |
|
|
1732
|
+
|-------------|-------------|------------------|
|
|
1733
|
+
| **200** | The agent\'s work on the sandbox (prompts, responses), not sandbox lifecycle. A sandbox that was never prompted returns an empty list even though it started, stopped and resumed. | - |
|
|
1734
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1735
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
1736
|
+
| **404** | Resource not found. | - |
|
|
1737
|
+
|
|
1738
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1739
|
+
|
|
1740
|
+
|
|
1741
|
+
## fork
|
|
1742
|
+
|
|
1743
|
+
> SandboxActionResponse fork(sandboxId, idempotencyKey, forkRequest)
|
|
1744
|
+
|
|
1745
|
+
Fork sandbox
|
|
1746
|
+
|
|
1747
|
+
Provision a new sandbox from an existing one. Send an `Idempotency-Key` header to make this call safe to retry after a lost response without creating a second billable fork.
|
|
1748
|
+
|
|
1749
|
+
### Example
|
|
1750
|
+
|
|
1751
|
+
```ts
|
|
1752
|
+
import {
|
|
1753
|
+
Configuration,
|
|
1754
|
+
BoatApi,
|
|
1755
|
+
} from '@boatdev/sdk';
|
|
1756
|
+
import type { ForkOperationRequest } from '@boatdev/sdk';
|
|
1757
|
+
|
|
1758
|
+
async function example() {
|
|
1759
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1760
|
+
const config = new Configuration({
|
|
1761
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1762
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1763
|
+
});
|
|
1764
|
+
const api = new BoatApi(config);
|
|
1765
|
+
|
|
1766
|
+
const body = {
|
|
1767
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
1768
|
+
sandboxId: sandboxId_example,
|
|
1769
|
+
// string | Optional exactly-once key for creating a sandbox. Send your own opaque, account-unique value (a UUID) to make `POST /sandboxes` safe to retry when the response is lost (network timeout, 5xx): the first request creates the sandbox and binds it to the key; every later request with the **same account, key, and request body** returns that same sandbox instead of creating a second, billable one. Behavior: keys are retained for **24 hours**; a concurrent or early retry while the first sandbox is still being minted returns `409` `idempotency_in_progress` (retry shortly, same key); reusing a key with a **different body** returns `409` `idempotency_key_reused`; timeouts and 5xx are safe to retry with the same key; a create that fails before the sandbox exists releases the key within ~2 minutes so a retry can create the sandbox. Omit the header to keep the default (non-idempotent) behavior. (optional)
|
|
1770
|
+
idempotencyKey: idempotencyKey_example,
|
|
1771
|
+
// ForkRequest (optional)
|
|
1772
|
+
forkRequest: ...,
|
|
1773
|
+
} satisfies ForkOperationRequest;
|
|
1774
|
+
|
|
1775
|
+
try {
|
|
1776
|
+
const data = await api.fork(body);
|
|
1777
|
+
console.log(data);
|
|
1778
|
+
} catch (error) {
|
|
1779
|
+
console.error(error);
|
|
1780
|
+
}
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
// Run the test
|
|
1784
|
+
example().catch(console.error);
|
|
1785
|
+
```
|
|
1786
|
+
|
|
1787
|
+
### Parameters
|
|
1788
|
+
|
|
1789
|
+
|
|
1790
|
+
| Name | Type | Description | Notes |
|
|
1791
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1792
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
1793
|
+
| **idempotencyKey** | `string` | Optional exactly-once key for creating a sandbox. Send your own opaque, account-unique value (a UUID) to make `POST /sandboxes` safe to retry when the response is lost (network timeout, 5xx): the first request creates the sandbox and binds it to the key; every later request with the **same account, key, and request body** returns that same sandbox instead of creating a second, billable one. Behavior: keys are retained for **24 hours**; a concurrent or early retry while the first sandbox is still being minted returns `409` `idempotency_in_progress` (retry shortly, same key); reusing a key with a **different body** returns `409` `idempotency_key_reused`; timeouts and 5xx are safe to retry with the same key; a create that fails before the sandbox exists releases the key within ~2 minutes so a retry can create the sandbox. Omit the header to keep the default (non-idempotent) behavior. | [Optional] [Defaults to `undefined`] |
|
|
1794
|
+
| **forkRequest** | [ForkRequest](ForkRequest.md) | | [Optional] |
|
|
1795
|
+
|
|
1796
|
+
### Return type
|
|
1797
|
+
|
|
1798
|
+
[**SandboxActionResponse**](SandboxActionResponse.md)
|
|
1799
|
+
|
|
1800
|
+
### Authorization
|
|
1801
|
+
|
|
1802
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1803
|
+
|
|
1804
|
+
### HTTP request headers
|
|
1805
|
+
|
|
1806
|
+
- **Content-Type**: `application/json`
|
|
1807
|
+
- **Accept**: `application/json`
|
|
1808
|
+
|
|
1809
|
+
|
|
1810
|
+
### HTTP response details
|
|
1811
|
+
| Status code | Description | Response headers |
|
|
1812
|
+
|-------------|-------------|------------------|
|
|
1813
|
+
| **202** | Fork started. The response `id` is the new forked sandbox id. | - |
|
|
1814
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1815
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
1816
|
+
| **404** | Resource not found. | - |
|
|
1817
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1818
|
+
| **429** | Machine start or concurrent-sandbox limit reached. Create, fork and resume each count as one machine start against your plan\'s start limits (see the Billing guide; `rate_limited`, naming the window you hit). A sandbox that would exceed your plan\'s concurrent-sandbox cap is refused with `limit_reached`, or `member_limit_reached` when an organization owner has capped you below the plan. | - |
|
|
1819
|
+
|
|
1820
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1821
|
+
|
|
1822
|
+
|
|
1823
|
+
## get
|
|
1824
|
+
|
|
1825
|
+
> SandboxInfoResponse get(sandboxId)
|
|
1826
|
+
|
|
1827
|
+
Get sandbox
|
|
1828
|
+
|
|
1829
|
+
Poll this endpoint after create, stop, resume, or fork operations.
|
|
1830
|
+
|
|
1831
|
+
### Example
|
|
1832
|
+
|
|
1833
|
+
```ts
|
|
1834
|
+
import {
|
|
1835
|
+
Configuration,
|
|
1836
|
+
BoatApi,
|
|
1837
|
+
} from '@boatdev/sdk';
|
|
1838
|
+
import type { GetRequest } from '@boatdev/sdk';
|
|
1839
|
+
|
|
1840
|
+
async function example() {
|
|
1841
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1842
|
+
const config = new Configuration({
|
|
1843
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1844
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1845
|
+
});
|
|
1846
|
+
const api = new BoatApi(config);
|
|
1847
|
+
|
|
1848
|
+
const body = {
|
|
1849
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
1850
|
+
sandboxId: sandboxId_example,
|
|
1851
|
+
} satisfies GetRequest;
|
|
1852
|
+
|
|
1853
|
+
try {
|
|
1854
|
+
const data = await api.get(body);
|
|
1855
|
+
console.log(data);
|
|
1856
|
+
} catch (error) {
|
|
1857
|
+
console.error(error);
|
|
1858
|
+
}
|
|
1859
|
+
}
|
|
1860
|
+
|
|
1861
|
+
// Run the test
|
|
1862
|
+
example().catch(console.error);
|
|
1863
|
+
```
|
|
1864
|
+
|
|
1865
|
+
### Parameters
|
|
1866
|
+
|
|
1867
|
+
|
|
1868
|
+
| Name | Type | Description | Notes |
|
|
1869
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1870
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
1871
|
+
|
|
1872
|
+
### Return type
|
|
1873
|
+
|
|
1874
|
+
[**SandboxInfoResponse**](SandboxInfoResponse.md)
|
|
1875
|
+
|
|
1876
|
+
### Authorization
|
|
1877
|
+
|
|
1878
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1879
|
+
|
|
1880
|
+
### HTTP request headers
|
|
1881
|
+
|
|
1882
|
+
- **Content-Type**: Not defined
|
|
1883
|
+
- **Accept**: `application/json`
|
|
1884
|
+
|
|
1885
|
+
|
|
1886
|
+
### HTTP response details
|
|
1887
|
+
| Status code | Description | Response headers |
|
|
1888
|
+
|-------------|-------------|------------------|
|
|
1889
|
+
| **200** | Boat details. | - |
|
|
1890
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1891
|
+
| **404** | Resource not found. | - |
|
|
1892
|
+
|
|
1893
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1894
|
+
|
|
1895
|
+
|
|
1896
|
+
## getDataRetention
|
|
1897
|
+
|
|
1898
|
+
> DataRetentionPolicyResponse getDataRetention()
|
|
1899
|
+
|
|
1900
|
+
Get account data-retention policy
|
|
1901
|
+
|
|
1902
|
+
Returns the current zero-data-retention policy. Per-Boat API keys cannot access this account-wide setting. Responses are never cached.
|
|
1903
|
+
|
|
1904
|
+
### Example
|
|
1905
|
+
|
|
1906
|
+
```ts
|
|
1907
|
+
import {
|
|
1908
|
+
Configuration,
|
|
1909
|
+
BoatApi,
|
|
1910
|
+
} from '@boatdev/sdk';
|
|
1911
|
+
import type { GetDataRetentionRequest } from '@boatdev/sdk';
|
|
1912
|
+
|
|
1913
|
+
async function example() {
|
|
1914
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1915
|
+
const config = new Configuration({
|
|
1916
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1917
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1918
|
+
});
|
|
1919
|
+
const api = new BoatApi(config);
|
|
1920
|
+
|
|
1921
|
+
try {
|
|
1922
|
+
const data = await api.getDataRetention();
|
|
1923
|
+
console.log(data);
|
|
1924
|
+
} catch (error) {
|
|
1925
|
+
console.error(error);
|
|
1926
|
+
}
|
|
1927
|
+
}
|
|
1928
|
+
|
|
1929
|
+
// Run the test
|
|
1930
|
+
example().catch(console.error);
|
|
1931
|
+
```
|
|
1932
|
+
|
|
1933
|
+
### Parameters
|
|
1934
|
+
|
|
1935
|
+
This endpoint does not need any parameter.
|
|
1936
|
+
|
|
1937
|
+
### Return type
|
|
1938
|
+
|
|
1939
|
+
[**DataRetentionPolicyResponse**](DataRetentionPolicyResponse.md)
|
|
1940
|
+
|
|
1941
|
+
### Authorization
|
|
1942
|
+
|
|
1943
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1944
|
+
|
|
1945
|
+
### HTTP request headers
|
|
1946
|
+
|
|
1947
|
+
- **Content-Type**: Not defined
|
|
1948
|
+
- **Accept**: `application/json`
|
|
1949
|
+
|
|
1950
|
+
|
|
1951
|
+
### HTTP response details
|
|
1952
|
+
| Status code | Description | Response headers |
|
|
1953
|
+
|-------------|-------------|------------------|
|
|
1954
|
+
| **200** | Current retention policy. | - |
|
|
1955
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1956
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1957
|
+
|
|
1958
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1959
|
+
|
|
1960
|
+
|
|
1961
|
+
## getDeletionOperation
|
|
1962
|
+
|
|
1963
|
+
> DeletionOperationResponse getDeletionOperation(operationId)
|
|
1964
|
+
|
|
1965
|
+
Get deletion operation
|
|
1966
|
+
|
|
1967
|
+
Poll an accepted Boat or snapshot deletion. Only operations owned by the authenticated account are returned. Responses are never cached.
|
|
1968
|
+
|
|
1969
|
+
### Example
|
|
1970
|
+
|
|
1971
|
+
```ts
|
|
1972
|
+
import {
|
|
1973
|
+
Configuration,
|
|
1974
|
+
BoatApi,
|
|
1975
|
+
} from '@boatdev/sdk';
|
|
1976
|
+
import type { GetDeletionOperationRequest } from '@boatdev/sdk';
|
|
1977
|
+
|
|
1978
|
+
async function example() {
|
|
1979
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1980
|
+
const config = new Configuration({
|
|
1981
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1982
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1983
|
+
});
|
|
1984
|
+
const api = new BoatApi(config);
|
|
1985
|
+
|
|
1986
|
+
const body = {
|
|
1987
|
+
// string | Deletion operation id returned by an accepted delete request.
|
|
1988
|
+
operationId: operationId_example,
|
|
1989
|
+
} satisfies GetDeletionOperationRequest;
|
|
1990
|
+
|
|
1991
|
+
try {
|
|
1992
|
+
const data = await api.getDeletionOperation(body);
|
|
1993
|
+
console.log(data);
|
|
1994
|
+
} catch (error) {
|
|
1995
|
+
console.error(error);
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1999
|
+
// Run the test
|
|
2000
|
+
example().catch(console.error);
|
|
2001
|
+
```
|
|
2002
|
+
|
|
2003
|
+
### Parameters
|
|
2004
|
+
|
|
2005
|
+
|
|
2006
|
+
| Name | Type | Description | Notes |
|
|
2007
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2008
|
+
| **operationId** | `string` | Deletion operation id returned by an accepted delete request. | [Defaults to `undefined`] |
|
|
2009
|
+
|
|
2010
|
+
### Return type
|
|
2011
|
+
|
|
2012
|
+
[**DeletionOperationResponse**](DeletionOperationResponse.md)
|
|
2013
|
+
|
|
2014
|
+
### Authorization
|
|
2015
|
+
|
|
2016
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2017
|
+
|
|
2018
|
+
### HTTP request headers
|
|
2019
|
+
|
|
2020
|
+
- **Content-Type**: Not defined
|
|
2021
|
+
- **Accept**: `application/json`
|
|
2022
|
+
|
|
2023
|
+
|
|
2024
|
+
### HTTP response details
|
|
2025
|
+
| Status code | Description | Response headers |
|
|
2026
|
+
|-------------|-------------|------------------|
|
|
2027
|
+
| **200** | Current deletion operation state. | - |
|
|
2028
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2029
|
+
| **404** | Resource not found. | - |
|
|
2030
|
+
|
|
2031
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2032
|
+
|
|
2033
|
+
|
|
2034
|
+
## getLatestSandboxSnapshot
|
|
2035
|
+
|
|
2036
|
+
> SnapshotLatestResponse getLatestSandboxSnapshot(sandboxId)
|
|
2037
|
+
|
|
2038
|
+
Get latest boat snapshot
|
|
2039
|
+
|
|
2040
|
+
Return the most recent completed snapshot for this sandbox, or `null` if it has none.
|
|
2041
|
+
|
|
2042
|
+
### Example
|
|
2043
|
+
|
|
2044
|
+
```ts
|
|
2045
|
+
import {
|
|
2046
|
+
Configuration,
|
|
2047
|
+
BoatApi,
|
|
2048
|
+
} from '@boatdev/sdk';
|
|
2049
|
+
import type { GetLatestSandboxSnapshotRequest } from '@boatdev/sdk';
|
|
2050
|
+
|
|
2051
|
+
async function example() {
|
|
2052
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2053
|
+
const config = new Configuration({
|
|
2054
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2055
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2056
|
+
});
|
|
2057
|
+
const api = new BoatApi(config);
|
|
2058
|
+
|
|
2059
|
+
const body = {
|
|
2060
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
2061
|
+
sandboxId: sandboxId_example,
|
|
2062
|
+
} satisfies GetLatestSandboxSnapshotRequest;
|
|
2063
|
+
|
|
2064
|
+
try {
|
|
2065
|
+
const data = await api.getLatestSandboxSnapshot(body);
|
|
2066
|
+
console.log(data);
|
|
2067
|
+
} catch (error) {
|
|
2068
|
+
console.error(error);
|
|
2069
|
+
}
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
// Run the test
|
|
2073
|
+
example().catch(console.error);
|
|
2074
|
+
```
|
|
2075
|
+
|
|
2076
|
+
### Parameters
|
|
2077
|
+
|
|
2078
|
+
|
|
2079
|
+
| Name | Type | Description | Notes |
|
|
2080
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2081
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
2082
|
+
|
|
2083
|
+
### Return type
|
|
2084
|
+
|
|
2085
|
+
[**SnapshotLatestResponse**](SnapshotLatestResponse.md)
|
|
2086
|
+
|
|
2087
|
+
### Authorization
|
|
2088
|
+
|
|
2089
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2090
|
+
|
|
2091
|
+
### HTTP request headers
|
|
2092
|
+
|
|
2093
|
+
- **Content-Type**: Not defined
|
|
2094
|
+
- **Accept**: `application/json`
|
|
2095
|
+
|
|
2096
|
+
|
|
2097
|
+
### HTTP response details
|
|
2098
|
+
| Status code | Description | Response headers |
|
|
2099
|
+
|-------------|-------------|------------------|
|
|
2100
|
+
| **200** | Most recent completed snapshot, or `null`. | - |
|
|
2101
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2102
|
+
| **404** | Resource not found. | - |
|
|
2103
|
+
|
|
2104
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2105
|
+
|
|
2106
|
+
|
|
2107
|
+
## getNamedSnapshot
|
|
2108
|
+
|
|
2109
|
+
> NamedSnapshotInfoResponse getNamedSnapshot(name)
|
|
2110
|
+
|
|
2111
|
+
Get a named snapshot
|
|
2112
|
+
|
|
2113
|
+
### Example
|
|
2114
|
+
|
|
2115
|
+
```ts
|
|
2116
|
+
import {
|
|
2117
|
+
Configuration,
|
|
2118
|
+
BoatApi,
|
|
2119
|
+
} from '@boatdev/sdk';
|
|
2120
|
+
import type { GetNamedSnapshotRequest } from '@boatdev/sdk';
|
|
2121
|
+
|
|
2122
|
+
async function example() {
|
|
2123
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2124
|
+
const config = new Configuration({
|
|
2125
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2126
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2127
|
+
});
|
|
2128
|
+
const api = new BoatApi(config);
|
|
2129
|
+
|
|
2130
|
+
const body = {
|
|
2131
|
+
// string
|
|
2132
|
+
name: name_example,
|
|
2133
|
+
} satisfies GetNamedSnapshotRequest;
|
|
2134
|
+
|
|
2135
|
+
try {
|
|
2136
|
+
const data = await api.getNamedSnapshot(body);
|
|
2137
|
+
console.log(data);
|
|
2138
|
+
} catch (error) {
|
|
2139
|
+
console.error(error);
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
|
|
2143
|
+
// Run the test
|
|
2144
|
+
example().catch(console.error);
|
|
2145
|
+
```
|
|
2146
|
+
|
|
2147
|
+
### Parameters
|
|
2148
|
+
|
|
2149
|
+
|
|
2150
|
+
| Name | Type | Description | Notes |
|
|
2151
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2152
|
+
| **name** | `string` | | [Defaults to `undefined`] |
|
|
2153
|
+
|
|
2154
|
+
### Return type
|
|
2155
|
+
|
|
2156
|
+
[**NamedSnapshotInfoResponse**](NamedSnapshotInfoResponse.md)
|
|
2157
|
+
|
|
2158
|
+
### Authorization
|
|
2159
|
+
|
|
2160
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2161
|
+
|
|
2162
|
+
### HTTP request headers
|
|
2163
|
+
|
|
2164
|
+
- **Content-Type**: Not defined
|
|
2165
|
+
- **Accept**: `application/json`
|
|
2166
|
+
|
|
2167
|
+
|
|
2168
|
+
### HTTP response details
|
|
2169
|
+
| Status code | Description | Response headers |
|
|
2170
|
+
|-------------|-------------|------------------|
|
|
2171
|
+
| **200** | The named snapshot. | - |
|
|
2172
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2173
|
+
| **404** | Resource not found. | - |
|
|
2174
|
+
|
|
2175
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2176
|
+
|
|
2177
|
+
|
|
2178
|
+
## getSnapshotDownload
|
|
2179
|
+
|
|
2180
|
+
> SnapshotDownloadResponse getSnapshotDownload(snapshotId)
|
|
2181
|
+
|
|
2182
|
+
Get snapshot download
|
|
2183
|
+
|
|
2184
|
+
Return time-limited signed URLs for every chunk needed to reconstruct the sandbox filesystem at this snapshot (the full chain, base through this generation), plus the inventory. Download the chunks and reassemble them as described by `reconstruct`. The `boat snapshot pull` CLI command does this for you.
|
|
2185
|
+
|
|
2186
|
+
### Example
|
|
2187
|
+
|
|
2188
|
+
```ts
|
|
2189
|
+
import {
|
|
2190
|
+
Configuration,
|
|
2191
|
+
BoatApi,
|
|
2192
|
+
} from '@boatdev/sdk';
|
|
2193
|
+
import type { GetSnapshotDownloadRequest } from '@boatdev/sdk';
|
|
2194
|
+
|
|
2195
|
+
async function example() {
|
|
2196
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2197
|
+
const config = new Configuration({
|
|
2198
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2199
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2200
|
+
});
|
|
2201
|
+
const api = new BoatApi(config);
|
|
2202
|
+
|
|
2203
|
+
const body = {
|
|
2204
|
+
// string | Snapshot id returned by the snapshot list/latest calls.
|
|
2205
|
+
snapshotId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
2206
|
+
} satisfies GetSnapshotDownloadRequest;
|
|
2207
|
+
|
|
2208
|
+
try {
|
|
2209
|
+
const data = await api.getSnapshotDownload(body);
|
|
2210
|
+
console.log(data);
|
|
2211
|
+
} catch (error) {
|
|
2212
|
+
console.error(error);
|
|
2213
|
+
}
|
|
2214
|
+
}
|
|
2215
|
+
|
|
2216
|
+
// Run the test
|
|
2217
|
+
example().catch(console.error);
|
|
2218
|
+
```
|
|
2219
|
+
|
|
2220
|
+
### Parameters
|
|
2221
|
+
|
|
2222
|
+
|
|
2223
|
+
| Name | Type | Description | Notes |
|
|
2224
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2225
|
+
| **snapshotId** | `string` | Snapshot id returned by the snapshot list/latest calls. | [Defaults to `undefined`] |
|
|
2226
|
+
|
|
2227
|
+
### Return type
|
|
2228
|
+
|
|
2229
|
+
[**SnapshotDownloadResponse**](SnapshotDownloadResponse.md)
|
|
2230
|
+
|
|
2231
|
+
### Authorization
|
|
2232
|
+
|
|
2233
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2234
|
+
|
|
2235
|
+
### HTTP request headers
|
|
2236
|
+
|
|
2237
|
+
- **Content-Type**: Not defined
|
|
2238
|
+
- **Accept**: `application/json`
|
|
2239
|
+
|
|
2240
|
+
|
|
2241
|
+
### HTTP response details
|
|
2242
|
+
| Status code | Description | Response headers |
|
|
2243
|
+
|-------------|-------------|------------------|
|
|
2244
|
+
| **200** | Signed chunk URLs for the snapshot chain. | - |
|
|
2245
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2246
|
+
| **404** | Resource not found. | - |
|
|
2247
|
+
|
|
2248
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2249
|
+
|
|
2250
|
+
|
|
2251
|
+
## getSnapshotFile
|
|
2252
|
+
|
|
2253
|
+
> Blob getSnapshotFile(snapshotId, path)
|
|
2254
|
+
|
|
2255
|
+
Download a file or folder from a snapshot
|
|
2256
|
+
|
|
2257
|
+
Stream a single file\'s bytes, or a folder subtree as a tar archive, directly out of a snapshot, the sandbox can be stopped or archived; the machine is never contacted. Use `GET /snapshots/{snapshotId}/tree` to list paths, then pass one here. Paths are relative to the snapshot root (same space as `tree` entries; docker volumes under `__dockervol__/`). An empty or `/` path downloads the whole snapshot as a tar. Folder responses set `X-Snapshot-File-Count`, `X-Snapshot-Total-Size-Bytes` and `X-Snapshot-Skipped-Base-Image-Files` headers; both response shapes set `X-Snapshot-Entry-Kind` (`file` or `dir`).
|
|
2258
|
+
|
|
2259
|
+
### Example
|
|
2260
|
+
|
|
2261
|
+
```ts
|
|
2262
|
+
import {
|
|
2263
|
+
Configuration,
|
|
2264
|
+
BoatApi,
|
|
2265
|
+
} from '@boatdev/sdk';
|
|
2266
|
+
import type { GetSnapshotFileRequest } from '@boatdev/sdk';
|
|
2267
|
+
|
|
2268
|
+
async function example() {
|
|
2269
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2270
|
+
const config = new Configuration({
|
|
2271
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2272
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2273
|
+
});
|
|
2274
|
+
const api = new BoatApi(config);
|
|
2275
|
+
|
|
2276
|
+
const body = {
|
|
2277
|
+
// string | Snapshot id returned by the snapshot list/latest calls.
|
|
2278
|
+
snapshotId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
2279
|
+
// string | File or folder path inside the snapshot. Empty for the whole snapshot. (optional)
|
|
2280
|
+
path: path_example,
|
|
2281
|
+
} satisfies GetSnapshotFileRequest;
|
|
2282
|
+
|
|
2283
|
+
try {
|
|
2284
|
+
const data = await api.getSnapshotFile(body);
|
|
2285
|
+
console.log(data);
|
|
2286
|
+
} catch (error) {
|
|
2287
|
+
console.error(error);
|
|
2288
|
+
}
|
|
2289
|
+
}
|
|
2290
|
+
|
|
2291
|
+
// Run the test
|
|
2292
|
+
example().catch(console.error);
|
|
2293
|
+
```
|
|
2294
|
+
|
|
2295
|
+
### Parameters
|
|
2296
|
+
|
|
2297
|
+
|
|
2298
|
+
| Name | Type | Description | Notes |
|
|
2299
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2300
|
+
| **snapshotId** | `string` | Snapshot id returned by the snapshot list/latest calls. | [Defaults to `undefined`] |
|
|
2301
|
+
| **path** | `string` | File or folder path inside the snapshot. Empty for the whole snapshot. | [Optional] [Defaults to `undefined`] |
|
|
2302
|
+
|
|
2303
|
+
### Return type
|
|
2304
|
+
|
|
2305
|
+
**Blob**
|
|
2306
|
+
|
|
2307
|
+
### Authorization
|
|
2308
|
+
|
|
2309
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2310
|
+
|
|
2311
|
+
### HTTP request headers
|
|
2312
|
+
|
|
2313
|
+
- **Content-Type**: Not defined
|
|
2314
|
+
- **Accept**: `application/octet-stream`, `application/x-tar`, `application/json`
|
|
2315
|
+
|
|
2316
|
+
|
|
2317
|
+
### HTTP response details
|
|
2318
|
+
| Status code | Description | Response headers |
|
|
2319
|
+
|-------------|-------------|------------------|
|
|
2320
|
+
| **200** | File bytes (`application/octet-stream`) or folder tar (`application/x-tar`). | - |
|
|
2321
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2322
|
+
| **404** | Resource not found. | - |
|
|
2323
|
+
| **409** | Path has no downloadable bytes, one of `legacy_snapshot` (pre-inventory snapshot), `snapshot_not_indexed` (content captured before the indexed snapshot format; take a new snapshot or use the download bundle), `base_image_file` (stock image file, not stored in snapshots), or `is_symlink` (request the symlink\'s target instead). | - |
|
|
2324
|
+
|
|
2325
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2326
|
+
|
|
2327
|
+
|
|
2328
|
+
## getSnapshotTree
|
|
2329
|
+
|
|
2330
|
+
> SnapshotTreeResponse getSnapshotTree(snapshotId)
|
|
2331
|
+
|
|
2332
|
+
Get snapshot file tree
|
|
2333
|
+
|
|
2334
|
+
List the files and folders captured in a snapshot, with sizes. Returns a flat list of entries you can render as a tree.
|
|
2335
|
+
|
|
2336
|
+
### Example
|
|
2337
|
+
|
|
2338
|
+
```ts
|
|
2339
|
+
import {
|
|
2340
|
+
Configuration,
|
|
2341
|
+
BoatApi,
|
|
2342
|
+
} from '@boatdev/sdk';
|
|
2343
|
+
import type { GetSnapshotTreeRequest } from '@boatdev/sdk';
|
|
2344
|
+
|
|
2345
|
+
async function example() {
|
|
2346
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2347
|
+
const config = new Configuration({
|
|
2348
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2349
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2350
|
+
});
|
|
2351
|
+
const api = new BoatApi(config);
|
|
2352
|
+
|
|
2353
|
+
const body = {
|
|
2354
|
+
// string | Snapshot id returned by the snapshot list/latest calls.
|
|
2355
|
+
snapshotId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
2356
|
+
} satisfies GetSnapshotTreeRequest;
|
|
2357
|
+
|
|
2358
|
+
try {
|
|
2359
|
+
const data = await api.getSnapshotTree(body);
|
|
2360
|
+
console.log(data);
|
|
2361
|
+
} catch (error) {
|
|
2362
|
+
console.error(error);
|
|
2363
|
+
}
|
|
2364
|
+
}
|
|
2365
|
+
|
|
2366
|
+
// Run the test
|
|
2367
|
+
example().catch(console.error);
|
|
2368
|
+
```
|
|
2369
|
+
|
|
2370
|
+
### Parameters
|
|
2371
|
+
|
|
2372
|
+
|
|
2373
|
+
| Name | Type | Description | Notes |
|
|
2374
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2375
|
+
| **snapshotId** | `string` | Snapshot id returned by the snapshot list/latest calls. | [Defaults to `undefined`] |
|
|
2376
|
+
|
|
2377
|
+
### Return type
|
|
2378
|
+
|
|
2379
|
+
[**SnapshotTreeResponse**](SnapshotTreeResponse.md)
|
|
2380
|
+
|
|
2381
|
+
### Authorization
|
|
2382
|
+
|
|
2383
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2384
|
+
|
|
2385
|
+
### HTTP request headers
|
|
2386
|
+
|
|
2387
|
+
- **Content-Type**: Not defined
|
|
2388
|
+
- **Accept**: `application/json`
|
|
2389
|
+
|
|
2390
|
+
|
|
2391
|
+
### HTTP response details
|
|
2392
|
+
| Status code | Description | Response headers |
|
|
2393
|
+
|-------------|-------------|------------------|
|
|
2394
|
+
| **200** | Flat file/folder listing for the snapshot. | - |
|
|
2395
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2396
|
+
| **404** | Resource not found. | - |
|
|
2397
|
+
|
|
2398
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2399
|
+
|
|
2400
|
+
|
|
2401
|
+
## getWebhook
|
|
2402
|
+
|
|
2403
|
+
> WebhookResponse getWebhook(webhookId)
|
|
2404
|
+
|
|
2405
|
+
Get webhook
|
|
2406
|
+
|
|
2407
|
+
Returns webhook metadata without the signing secret.
|
|
2408
|
+
|
|
2409
|
+
### Example
|
|
2410
|
+
|
|
2411
|
+
```ts
|
|
2412
|
+
import {
|
|
2413
|
+
Configuration,
|
|
2414
|
+
BoatApi,
|
|
2415
|
+
} from '@boatdev/sdk';
|
|
2416
|
+
import type { GetWebhookRequest } from '@boatdev/sdk';
|
|
2417
|
+
|
|
2418
|
+
async function example() {
|
|
2419
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2420
|
+
const config = new Configuration({
|
|
2421
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2422
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2423
|
+
});
|
|
2424
|
+
const api = new BoatApi(config);
|
|
2425
|
+
|
|
2426
|
+
const body = {
|
|
2427
|
+
// string
|
|
2428
|
+
webhookId: webhookId_example,
|
|
2429
|
+
} satisfies GetWebhookRequest;
|
|
2430
|
+
|
|
2431
|
+
try {
|
|
2432
|
+
const data = await api.getWebhook(body);
|
|
2433
|
+
console.log(data);
|
|
2434
|
+
} catch (error) {
|
|
2435
|
+
console.error(error);
|
|
2436
|
+
}
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
// Run the test
|
|
2440
|
+
example().catch(console.error);
|
|
2441
|
+
```
|
|
2442
|
+
|
|
2443
|
+
### Parameters
|
|
2444
|
+
|
|
2445
|
+
|
|
2446
|
+
| Name | Type | Description | Notes |
|
|
2447
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2448
|
+
| **webhookId** | `string` | | [Defaults to `undefined`] |
|
|
2449
|
+
|
|
2450
|
+
### Return type
|
|
2451
|
+
|
|
2452
|
+
[**WebhookResponse**](WebhookResponse.md)
|
|
2453
|
+
|
|
2454
|
+
### Authorization
|
|
2455
|
+
|
|
2456
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2457
|
+
|
|
2458
|
+
### HTTP request headers
|
|
2459
|
+
|
|
2460
|
+
- **Content-Type**: Not defined
|
|
2461
|
+
- **Accept**: `application/json`
|
|
2462
|
+
|
|
2463
|
+
|
|
2464
|
+
### HTTP response details
|
|
2465
|
+
| Status code | Description | Response headers |
|
|
2466
|
+
|-------------|-------------|------------------|
|
|
2467
|
+
| **200** | Webhook metadata. | - |
|
|
2468
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2469
|
+
| **404** | Resource not found. | - |
|
|
2470
|
+
|
|
2471
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2472
|
+
|
|
2473
|
+
|
|
2474
|
+
## hostPort
|
|
2475
|
+
|
|
2476
|
+
> HostPortResponse hostPort(sandboxId, hostPortRequest)
|
|
2477
|
+
|
|
2478
|
+
Expose a sandbox port on a public HTTPS URL
|
|
2479
|
+
|
|
2480
|
+
Registers a stable `https://<sandbox-subdomain>-<port>.on.boat.dev` route for a port inside the sandbox and opens the sandbox firewall for it. Idempotent: calling it again for the same sandbox and port returns the same URL and token.
|
|
2481
|
+
|
|
2482
|
+
### Example
|
|
2483
|
+
|
|
2484
|
+
```ts
|
|
2485
|
+
import {
|
|
2486
|
+
Configuration,
|
|
2487
|
+
BoatApi,
|
|
2488
|
+
} from '@boatdev/sdk';
|
|
2489
|
+
import type { HostPortOperationRequest } from '@boatdev/sdk';
|
|
2490
|
+
|
|
2491
|
+
async function example() {
|
|
2492
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2493
|
+
const config = new Configuration({
|
|
2494
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2495
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2496
|
+
});
|
|
2497
|
+
const api = new BoatApi(config);
|
|
2498
|
+
|
|
2499
|
+
const body = {
|
|
2500
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
2501
|
+
sandboxId: sandboxId_example,
|
|
2502
|
+
// HostPortRequest
|
|
2503
|
+
hostPortRequest: ...,
|
|
2504
|
+
} satisfies HostPortOperationRequest;
|
|
2505
|
+
|
|
2506
|
+
try {
|
|
2507
|
+
const data = await api.hostPort(body);
|
|
2508
|
+
console.log(data);
|
|
2509
|
+
} catch (error) {
|
|
2510
|
+
console.error(error);
|
|
2511
|
+
}
|
|
2512
|
+
}
|
|
2513
|
+
|
|
2514
|
+
// Run the test
|
|
2515
|
+
example().catch(console.error);
|
|
2516
|
+
```
|
|
2517
|
+
|
|
2518
|
+
### Parameters
|
|
2519
|
+
|
|
2520
|
+
|
|
2521
|
+
| Name | Type | Description | Notes |
|
|
2522
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2523
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
2524
|
+
| **hostPortRequest** | [HostPortRequest](HostPortRequest.md) | | |
|
|
2525
|
+
|
|
2526
|
+
### Return type
|
|
2527
|
+
|
|
2528
|
+
[**HostPortResponse**](HostPortResponse.md)
|
|
2529
|
+
|
|
2530
|
+
### Authorization
|
|
2531
|
+
|
|
2532
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2533
|
+
|
|
2534
|
+
### HTTP request headers
|
|
2535
|
+
|
|
2536
|
+
- **Content-Type**: `application/json`
|
|
2537
|
+
- **Accept**: `application/json`
|
|
2538
|
+
|
|
2539
|
+
|
|
2540
|
+
### HTTP response details
|
|
2541
|
+
| Status code | Description | Response headers |
|
|
2542
|
+
|-------------|-------------|------------------|
|
|
2543
|
+
| **200** | The public HTTPS URL for the port. | - |
|
|
2544
|
+
| **400** | Invalid request body or parameters. | - |
|
|
2545
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2546
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
2547
|
+
| **404** | Resource not found. | - |
|
|
2548
|
+
|
|
2549
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2550
|
+
|
|
2551
|
+
|
|
2552
|
+
## interrupt
|
|
2553
|
+
|
|
2554
|
+
> SandboxActionResponse interrupt(sandboxId, conversation)
|
|
2555
|
+
|
|
2556
|
+
Interrupt running work
|
|
2557
|
+
|
|
2558
|
+
Interrupt running agent work. By default this stops **every** conversation on the sandbox. Pass `conversation` to stop just one, leaving the others running. See [Integrated agents](/integrated-agents).
|
|
2559
|
+
|
|
2560
|
+
### Example
|
|
2561
|
+
|
|
2562
|
+
```ts
|
|
2563
|
+
import {
|
|
2564
|
+
Configuration,
|
|
2565
|
+
BoatApi,
|
|
2566
|
+
} from '@boatdev/sdk';
|
|
2567
|
+
import type { InterruptRequest } from '@boatdev/sdk';
|
|
2568
|
+
|
|
2569
|
+
async function example() {
|
|
2570
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2571
|
+
const config = new Configuration({
|
|
2572
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2573
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2574
|
+
});
|
|
2575
|
+
const api = new BoatApi(config);
|
|
2576
|
+
|
|
2577
|
+
const body = {
|
|
2578
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
2579
|
+
sandboxId: sandboxId_example,
|
|
2580
|
+
// string | Interrupt only this conversation id. Omit to interrupt the whole sandbox. (optional)
|
|
2581
|
+
conversation: conversation_example,
|
|
2582
|
+
} satisfies InterruptRequest;
|
|
2583
|
+
|
|
2584
|
+
try {
|
|
2585
|
+
const data = await api.interrupt(body);
|
|
2586
|
+
console.log(data);
|
|
2587
|
+
} catch (error) {
|
|
2588
|
+
console.error(error);
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
|
|
2592
|
+
// Run the test
|
|
2593
|
+
example().catch(console.error);
|
|
2594
|
+
```
|
|
2595
|
+
|
|
2596
|
+
### Parameters
|
|
2597
|
+
|
|
2598
|
+
|
|
2599
|
+
| Name | Type | Description | Notes |
|
|
2600
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2601
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
2602
|
+
| **conversation** | `string` | Interrupt only this conversation id. Omit to interrupt the whole sandbox. | [Optional] [Defaults to `undefined`] |
|
|
2603
|
+
|
|
2604
|
+
### Return type
|
|
2605
|
+
|
|
2606
|
+
[**SandboxActionResponse**](SandboxActionResponse.md)
|
|
2607
|
+
|
|
2608
|
+
### Authorization
|
|
2609
|
+
|
|
2610
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2611
|
+
|
|
2612
|
+
### HTTP request headers
|
|
2613
|
+
|
|
2614
|
+
- **Content-Type**: Not defined
|
|
2615
|
+
- **Accept**: `application/json`
|
|
2616
|
+
|
|
2617
|
+
|
|
2618
|
+
### HTTP response details
|
|
2619
|
+
| Status code | Description | Response headers |
|
|
2620
|
+
|-------------|-------------|------------------|
|
|
2621
|
+
| **200** | Interrupt requested. | - |
|
|
2622
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2623
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
2624
|
+
| **404** | Resource not found. | - |
|
|
2625
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
2626
|
+
|
|
2627
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2628
|
+
|
|
2629
|
+
|
|
2630
|
+
## limits
|
|
2631
|
+
|
|
2632
|
+
> LimitsResponse limits(org, xBoatOrg, teamId)
|
|
2633
|
+
|
|
2634
|
+
Get Boat limits
|
|
2635
|
+
|
|
2636
|
+
Check remaining machine starts, compute time, credits, access readiness, and concurrent-sandbox capacity for the authenticated account. Pass `org` / `X-Boat-Org` (or `teamId`) to read a team wallet you belong to.
|
|
2637
|
+
|
|
2638
|
+
### Example
|
|
2639
|
+
|
|
2640
|
+
```ts
|
|
2641
|
+
import {
|
|
2642
|
+
Configuration,
|
|
2643
|
+
BoatApi,
|
|
2644
|
+
} from '@boatdev/sdk';
|
|
2645
|
+
import type { LimitsRequest } from '@boatdev/sdk';
|
|
2646
|
+
|
|
2647
|
+
async function example() {
|
|
2648
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2649
|
+
const config = new Configuration({
|
|
2650
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2651
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2652
|
+
});
|
|
2653
|
+
const api = new BoatApi(config);
|
|
2654
|
+
|
|
2655
|
+
const body = {
|
|
2656
|
+
// string | Billing wallet for this request. A team id you belong to reads that team\'s limits / bills a create to that team. Your own account id is personal. Sandboxes, snapshots, and environments stay creator-private. (optional)
|
|
2657
|
+
org: org_example,
|
|
2658
|
+
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
2659
|
+
xBoatOrg: xBoatOrg_example,
|
|
2660
|
+
// string | Legacy alias for `org`. Takes precedence over `org` / `X-Boat-Org` when set. (optional)
|
|
2661
|
+
teamId: teamId_example,
|
|
2662
|
+
} satisfies LimitsRequest;
|
|
2663
|
+
|
|
2664
|
+
try {
|
|
2665
|
+
const data = await api.limits(body);
|
|
2666
|
+
console.log(data);
|
|
2667
|
+
} catch (error) {
|
|
2668
|
+
console.error(error);
|
|
2669
|
+
}
|
|
2670
|
+
}
|
|
2671
|
+
|
|
2672
|
+
// Run the test
|
|
2673
|
+
example().catch(console.error);
|
|
2674
|
+
```
|
|
2675
|
+
|
|
2676
|
+
### Parameters
|
|
2677
|
+
|
|
2678
|
+
|
|
2679
|
+
| Name | Type | Description | Notes |
|
|
2680
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2681
|
+
| **org** | `string` | Billing wallet for this request. A team id you belong to reads that team\'s limits / bills a create to that team. Your own account id is personal. Sandboxes, snapshots, and environments stay creator-private. | [Optional] [Defaults to `undefined`] |
|
|
2682
|
+
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
2683
|
+
| **teamId** | `string` | Legacy alias for `org`. Takes precedence over `org` / `X-Boat-Org` when set. | [Optional] [Defaults to `undefined`] |
|
|
2684
|
+
|
|
2685
|
+
### Return type
|
|
2686
|
+
|
|
2687
|
+
[**LimitsResponse**](LimitsResponse.md)
|
|
2688
|
+
|
|
2689
|
+
### Authorization
|
|
2690
|
+
|
|
2691
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2692
|
+
|
|
2693
|
+
### HTTP request headers
|
|
2694
|
+
|
|
2695
|
+
- **Content-Type**: Not defined
|
|
2696
|
+
- **Accept**: `application/json`
|
|
2697
|
+
|
|
2698
|
+
|
|
2699
|
+
### HTTP response details
|
|
2700
|
+
| Status code | Description | Response headers |
|
|
2701
|
+
|-------------|-------------|------------------|
|
|
2702
|
+
| **200** | Current creation and concurrent-boat limits. | - |
|
|
2703
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2704
|
+
|
|
2705
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2706
|
+
|
|
2707
|
+
|
|
2708
|
+
## listNamedSnapshots
|
|
2709
|
+
|
|
2710
|
+
> NamedSnapshotListResponse listNamedSnapshots()
|
|
2711
|
+
|
|
2712
|
+
List named snapshots
|
|
2713
|
+
|
|
2714
|
+
List your named snapshots, newest first.
|
|
2715
|
+
|
|
2716
|
+
### Example
|
|
2717
|
+
|
|
2718
|
+
```ts
|
|
2719
|
+
import {
|
|
2720
|
+
Configuration,
|
|
2721
|
+
BoatApi,
|
|
2722
|
+
} from '@boatdev/sdk';
|
|
2723
|
+
import type { ListNamedSnapshotsRequest } from '@boatdev/sdk';
|
|
2724
|
+
|
|
2725
|
+
async function example() {
|
|
2726
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2727
|
+
const config = new Configuration({
|
|
2728
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2729
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2730
|
+
});
|
|
2731
|
+
const api = new BoatApi(config);
|
|
2732
|
+
|
|
2733
|
+
try {
|
|
2734
|
+
const data = await api.listNamedSnapshots();
|
|
2735
|
+
console.log(data);
|
|
2736
|
+
} catch (error) {
|
|
2737
|
+
console.error(error);
|
|
2738
|
+
}
|
|
2739
|
+
}
|
|
2740
|
+
|
|
2741
|
+
// Run the test
|
|
2742
|
+
example().catch(console.error);
|
|
2743
|
+
```
|
|
2744
|
+
|
|
2745
|
+
### Parameters
|
|
2746
|
+
|
|
2747
|
+
This endpoint does not need any parameter.
|
|
2748
|
+
|
|
2749
|
+
### Return type
|
|
2750
|
+
|
|
2751
|
+
[**NamedSnapshotListResponse**](NamedSnapshotListResponse.md)
|
|
2752
|
+
|
|
2753
|
+
### Authorization
|
|
2754
|
+
|
|
2755
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2756
|
+
|
|
2757
|
+
### HTTP request headers
|
|
2758
|
+
|
|
2759
|
+
- **Content-Type**: Not defined
|
|
2760
|
+
- **Accept**: `application/json`
|
|
2761
|
+
|
|
2762
|
+
|
|
2763
|
+
### HTTP response details
|
|
2764
|
+
| Status code | Description | Response headers |
|
|
2765
|
+
|-------------|-------------|------------------|
|
|
2766
|
+
| **200** | Named snapshots owned by the authenticated Boat user. | - |
|
|
2767
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2768
|
+
|
|
2769
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2770
|
+
|
|
2771
|
+
|
|
2772
|
+
## listSandboxSnapshots
|
|
2773
|
+
|
|
2774
|
+
> SnapshotListResponse listSandboxSnapshots(sandboxId, limit, cursor, sort)
|
|
2775
|
+
|
|
2776
|
+
List boat snapshots
|
|
2777
|
+
|
|
2778
|
+
List visible completed snapshots for one sandbox with uncapped cursor pagination.
|
|
2779
|
+
|
|
2780
|
+
### Example
|
|
2781
|
+
|
|
2782
|
+
```ts
|
|
2783
|
+
import {
|
|
2784
|
+
Configuration,
|
|
2785
|
+
BoatApi,
|
|
2786
|
+
} from '@boatdev/sdk';
|
|
2787
|
+
import type { ListSandboxSnapshotsRequest } from '@boatdev/sdk';
|
|
2788
|
+
|
|
2789
|
+
async function example() {
|
|
2790
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2791
|
+
const config = new Configuration({
|
|
2792
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2793
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2794
|
+
});
|
|
2795
|
+
const api = new BoatApi(config);
|
|
2796
|
+
|
|
2797
|
+
const body = {
|
|
2798
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
2799
|
+
sandboxId: sandboxId_example,
|
|
2800
|
+
// number | Maximum items to return. (optional)
|
|
2801
|
+
limit: 56,
|
|
2802
|
+
// string | Opaque pagination cursor returned as `pageInfo.nextCursor`. (optional)
|
|
2803
|
+
cursor: cursor_example,
|
|
2804
|
+
// 'asc' | 'desc' | Sort direction for cursor pagination. (optional)
|
|
2805
|
+
sort: sort_example,
|
|
2806
|
+
} satisfies ListSandboxSnapshotsRequest;
|
|
2807
|
+
|
|
2808
|
+
try {
|
|
2809
|
+
const data = await api.listSandboxSnapshots(body);
|
|
2810
|
+
console.log(data);
|
|
2811
|
+
} catch (error) {
|
|
2812
|
+
console.error(error);
|
|
2813
|
+
}
|
|
2814
|
+
}
|
|
2815
|
+
|
|
2816
|
+
// Run the test
|
|
2817
|
+
example().catch(console.error);
|
|
2818
|
+
```
|
|
2819
|
+
|
|
2820
|
+
### Parameters
|
|
2821
|
+
|
|
2822
|
+
|
|
2823
|
+
| Name | Type | Description | Notes |
|
|
2824
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2825
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
2826
|
+
| **limit** | `number` | Maximum items to return. | [Optional] [Defaults to `100`] |
|
|
2827
|
+
| **cursor** | `string` | Opaque pagination cursor returned as `pageInfo.nextCursor`. | [Optional] [Defaults to `undefined`] |
|
|
2828
|
+
| **sort** | `asc`, `desc` | Sort direction for cursor pagination. | [Optional] [Defaults to `'desc'`] [Enum: asc, desc] |
|
|
2829
|
+
|
|
2830
|
+
### Return type
|
|
2831
|
+
|
|
2832
|
+
[**SnapshotListResponse**](SnapshotListResponse.md)
|
|
2833
|
+
|
|
2834
|
+
### Authorization
|
|
2835
|
+
|
|
2836
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2837
|
+
|
|
2838
|
+
### HTTP request headers
|
|
2839
|
+
|
|
2840
|
+
- **Content-Type**: Not defined
|
|
2841
|
+
- **Accept**: `application/json`
|
|
2842
|
+
|
|
2843
|
+
|
|
2844
|
+
### HTTP response details
|
|
2845
|
+
| Status code | Description | Response headers |
|
|
2846
|
+
|-------------|-------------|------------------|
|
|
2847
|
+
| **200** | Completed snapshots for this sandbox. | - |
|
|
2848
|
+
| **400** | Invalid request body or parameters. | - |
|
|
2849
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2850
|
+
| **404** | Resource not found. | - |
|
|
2851
|
+
|
|
2852
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2853
|
+
|
|
2854
|
+
|
|
2855
|
+
## listSnapshots
|
|
2856
|
+
|
|
2857
|
+
> SnapshotListResponse listSnapshots(limit, cursor, sort)
|
|
2858
|
+
|
|
2859
|
+
List snapshots
|
|
2860
|
+
|
|
2861
|
+
List visible completed snapshots across all of your sandboxes using immutable ownership attribution. Pinned, deletion-scheduled, and privacy-fenced sandbox snapshots are omitted. Follow `nextCursor` through the complete history; there is no hidden 500-snapshot cap.
|
|
2862
|
+
|
|
2863
|
+
### Example
|
|
2864
|
+
|
|
2865
|
+
```ts
|
|
2866
|
+
import {
|
|
2867
|
+
Configuration,
|
|
2868
|
+
BoatApi,
|
|
2869
|
+
} from '@boatdev/sdk';
|
|
2870
|
+
import type { ListSnapshotsRequest } from '@boatdev/sdk';
|
|
2871
|
+
|
|
2872
|
+
async function example() {
|
|
2873
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2874
|
+
const config = new Configuration({
|
|
2875
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2876
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2877
|
+
});
|
|
2878
|
+
const api = new BoatApi(config);
|
|
2879
|
+
|
|
2880
|
+
const body = {
|
|
2881
|
+
// number | Maximum items to return. (optional)
|
|
2882
|
+
limit: 56,
|
|
2883
|
+
// string | Opaque pagination cursor returned as `pageInfo.nextCursor`. (optional)
|
|
2884
|
+
cursor: cursor_example,
|
|
2885
|
+
// 'asc' | 'desc' | Sort direction for cursor pagination. (optional)
|
|
2886
|
+
sort: sort_example,
|
|
2887
|
+
} satisfies ListSnapshotsRequest;
|
|
2888
|
+
|
|
2889
|
+
try {
|
|
2890
|
+
const data = await api.listSnapshots(body);
|
|
2891
|
+
console.log(data);
|
|
2892
|
+
} catch (error) {
|
|
2893
|
+
console.error(error);
|
|
2894
|
+
}
|
|
2895
|
+
}
|
|
2896
|
+
|
|
2897
|
+
// Run the test
|
|
2898
|
+
example().catch(console.error);
|
|
2899
|
+
```
|
|
2900
|
+
|
|
2901
|
+
### Parameters
|
|
2902
|
+
|
|
2903
|
+
|
|
2904
|
+
| Name | Type | Description | Notes |
|
|
2905
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2906
|
+
| **limit** | `number` | Maximum items to return. | [Optional] [Defaults to `100`] |
|
|
2907
|
+
| **cursor** | `string` | Opaque pagination cursor returned as `pageInfo.nextCursor`. | [Optional] [Defaults to `undefined`] |
|
|
2908
|
+
| **sort** | `asc`, `desc` | Sort direction for cursor pagination. | [Optional] [Defaults to `'desc'`] [Enum: asc, desc] |
|
|
2909
|
+
|
|
2910
|
+
### Return type
|
|
2911
|
+
|
|
2912
|
+
[**SnapshotListResponse**](SnapshotListResponse.md)
|
|
2913
|
+
|
|
2914
|
+
### Authorization
|
|
2915
|
+
|
|
2916
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2917
|
+
|
|
2918
|
+
### HTTP request headers
|
|
2919
|
+
|
|
2920
|
+
- **Content-Type**: Not defined
|
|
2921
|
+
- **Accept**: `application/json`
|
|
2922
|
+
|
|
2923
|
+
|
|
2924
|
+
### HTTP response details
|
|
2925
|
+
| Status code | Description | Response headers |
|
|
2926
|
+
|-------------|-------------|------------------|
|
|
2927
|
+
| **200** | Completed snapshots owned by the authenticated Boat user. | - |
|
|
2928
|
+
| **400** | Invalid request body or parameters. | - |
|
|
2929
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2930
|
+
|
|
2931
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2932
|
+
|
|
2933
|
+
|
|
2934
|
+
## listWebhooks
|
|
2935
|
+
|
|
2936
|
+
> WebhookListResponse listWebhooks()
|
|
2937
|
+
|
|
2938
|
+
List webhooks
|
|
2939
|
+
|
|
2940
|
+
Lists account-wide sandbox lifecycle webhook endpoints. Signing secrets are never included.
|
|
2941
|
+
|
|
2942
|
+
### Example
|
|
2943
|
+
|
|
2944
|
+
```ts
|
|
2945
|
+
import {
|
|
2946
|
+
Configuration,
|
|
2947
|
+
BoatApi,
|
|
2948
|
+
} from '@boatdev/sdk';
|
|
2949
|
+
import type { ListWebhooksRequest } from '@boatdev/sdk';
|
|
2950
|
+
|
|
2951
|
+
async function example() {
|
|
2952
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2953
|
+
const config = new Configuration({
|
|
2954
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2955
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2956
|
+
});
|
|
2957
|
+
const api = new BoatApi(config);
|
|
2958
|
+
|
|
2959
|
+
try {
|
|
2960
|
+
const data = await api.listWebhooks();
|
|
2961
|
+
console.log(data);
|
|
2962
|
+
} catch (error) {
|
|
2963
|
+
console.error(error);
|
|
2964
|
+
}
|
|
2965
|
+
}
|
|
2966
|
+
|
|
2967
|
+
// Run the test
|
|
2968
|
+
example().catch(console.error);
|
|
2969
|
+
```
|
|
2970
|
+
|
|
2971
|
+
### Parameters
|
|
2972
|
+
|
|
2973
|
+
This endpoint does not need any parameter.
|
|
2974
|
+
|
|
2975
|
+
### Return type
|
|
2976
|
+
|
|
2977
|
+
[**WebhookListResponse**](WebhookListResponse.md)
|
|
2978
|
+
|
|
2979
|
+
### Authorization
|
|
2980
|
+
|
|
2981
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2982
|
+
|
|
2983
|
+
### HTTP request headers
|
|
2984
|
+
|
|
2985
|
+
- **Content-Type**: Not defined
|
|
2986
|
+
- **Accept**: `application/json`
|
|
2987
|
+
|
|
2988
|
+
|
|
2989
|
+
### HTTP response details
|
|
2990
|
+
| Status code | Description | Response headers |
|
|
2991
|
+
|-------------|-------------|------------------|
|
|
2992
|
+
| **200** | Registered webhook endpoints. | - |
|
|
2993
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2994
|
+
|
|
2995
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2996
|
+
|
|
2997
|
+
|
|
2998
|
+
## me
|
|
2999
|
+
|
|
3000
|
+
> MeResponse me()
|
|
3001
|
+
|
|
3002
|
+
Get current Boat user
|
|
3003
|
+
|
|
3004
|
+
Returns GitHub identity for the authenticated Boat account.
|
|
3005
|
+
|
|
3006
|
+
### Example
|
|
3007
|
+
|
|
3008
|
+
```ts
|
|
3009
|
+
import {
|
|
3010
|
+
Configuration,
|
|
3011
|
+
BoatApi,
|
|
3012
|
+
} from '@boatdev/sdk';
|
|
3013
|
+
import type { MeRequest } from '@boatdev/sdk';
|
|
3014
|
+
|
|
3015
|
+
async function example() {
|
|
3016
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3017
|
+
const config = new Configuration({
|
|
3018
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3019
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3020
|
+
});
|
|
3021
|
+
const api = new BoatApi(config);
|
|
3022
|
+
|
|
3023
|
+
try {
|
|
3024
|
+
const data = await api.me();
|
|
3025
|
+
console.log(data);
|
|
3026
|
+
} catch (error) {
|
|
3027
|
+
console.error(error);
|
|
3028
|
+
}
|
|
3029
|
+
}
|
|
3030
|
+
|
|
3031
|
+
// Run the test
|
|
3032
|
+
example().catch(console.error);
|
|
3033
|
+
```
|
|
3034
|
+
|
|
3035
|
+
### Parameters
|
|
3036
|
+
|
|
3037
|
+
This endpoint does not need any parameter.
|
|
3038
|
+
|
|
3039
|
+
### Return type
|
|
3040
|
+
|
|
3041
|
+
[**MeResponse**](MeResponse.md)
|
|
3042
|
+
|
|
3043
|
+
### Authorization
|
|
3044
|
+
|
|
3045
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3046
|
+
|
|
3047
|
+
### HTTP request headers
|
|
3048
|
+
|
|
3049
|
+
- **Content-Type**: Not defined
|
|
3050
|
+
- **Accept**: `application/json`
|
|
3051
|
+
|
|
3052
|
+
|
|
3053
|
+
### HTTP response details
|
|
3054
|
+
| Status code | Description | Response headers |
|
|
3055
|
+
|-------------|-------------|------------------|
|
|
3056
|
+
| **200** | Current user information. | - |
|
|
3057
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3058
|
+
|
|
3059
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3060
|
+
|
|
3061
|
+
|
|
3062
|
+
## prompt
|
|
3063
|
+
|
|
3064
|
+
> PromptResponse prompt(sandboxId, promptRequest)
|
|
3065
|
+
|
|
3066
|
+
Prompt Sandbox
|
|
3067
|
+
|
|
3068
|
+
Queue a natural-language work item for an agent harness (Codex, Claude Code, pi, OpenCode, or Prime Agent) inside the sandbox. Observe progress with `GET /sandboxes/{sandboxId}/events`. A Sandbox runs many conversations in parallel. Set `new: true` to start a fresh one, `conversationId` to continue a specific one, or omit both to continue the most-recently-active conversation; the response returns the `conversationId`. See [Integrated agents](/integrated-agents).
|
|
3069
|
+
|
|
3070
|
+
### Example
|
|
3071
|
+
|
|
3072
|
+
```ts
|
|
3073
|
+
import {
|
|
3074
|
+
Configuration,
|
|
3075
|
+
BoatApi,
|
|
3076
|
+
} from '@boatdev/sdk';
|
|
3077
|
+
import type { PromptOperationRequest } from '@boatdev/sdk';
|
|
3078
|
+
|
|
3079
|
+
async function example() {
|
|
3080
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3081
|
+
const config = new Configuration({
|
|
3082
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3083
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3084
|
+
});
|
|
3085
|
+
const api = new BoatApi(config);
|
|
3086
|
+
|
|
3087
|
+
const body = {
|
|
3088
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
3089
|
+
sandboxId: sandboxId_example,
|
|
3090
|
+
// PromptRequest
|
|
3091
|
+
promptRequest: {"provider":"codex","model":"gpt-5.4","reasoningEffort":"medium","prompt":"Work on the selected repo, run tests, fix failures, commit the result, and report any hosted preview URL."},
|
|
3092
|
+
} satisfies PromptOperationRequest;
|
|
3093
|
+
|
|
3094
|
+
try {
|
|
3095
|
+
const data = await api.prompt(body);
|
|
3096
|
+
console.log(data);
|
|
3097
|
+
} catch (error) {
|
|
3098
|
+
console.error(error);
|
|
3099
|
+
}
|
|
3100
|
+
}
|
|
3101
|
+
|
|
3102
|
+
// Run the test
|
|
3103
|
+
example().catch(console.error);
|
|
3104
|
+
```
|
|
3105
|
+
|
|
3106
|
+
### Parameters
|
|
3107
|
+
|
|
3108
|
+
|
|
3109
|
+
| Name | Type | Description | Notes |
|
|
3110
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3111
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
3112
|
+
| **promptRequest** | [PromptRequest](PromptRequest.md) | | |
|
|
3113
|
+
|
|
3114
|
+
### Return type
|
|
3115
|
+
|
|
3116
|
+
[**PromptResponse**](PromptResponse.md)
|
|
3117
|
+
|
|
3118
|
+
### Authorization
|
|
3119
|
+
|
|
3120
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3121
|
+
|
|
3122
|
+
### HTTP request headers
|
|
3123
|
+
|
|
3124
|
+
- **Content-Type**: `application/json`
|
|
3125
|
+
- **Accept**: `application/json`
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
### HTTP response details
|
|
3129
|
+
| Status code | Description | Response headers |
|
|
3130
|
+
|-------------|-------------|------------------|
|
|
3131
|
+
| **202** | Prompt queued. | - |
|
|
3132
|
+
| **400** | Invalid request body or parameters. | - |
|
|
3133
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3134
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
3135
|
+
| **404** | Resource not found. | - |
|
|
3136
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
3137
|
+
|
|
3138
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3139
|
+
|
|
3140
|
+
|
|
3141
|
+
## promptRunStatus
|
|
3142
|
+
|
|
3143
|
+
> PromptRunResponse promptRunStatus(sandboxId, promptId)
|
|
3144
|
+
|
|
3145
|
+
Get prompt run status
|
|
3146
|
+
|
|
3147
|
+
Returns first-class status for a queued/running/finished prompt so clients do not infer completion from sandbox state and events.
|
|
3148
|
+
|
|
3149
|
+
### Example
|
|
3150
|
+
|
|
3151
|
+
```ts
|
|
3152
|
+
import {
|
|
3153
|
+
Configuration,
|
|
3154
|
+
BoatApi,
|
|
3155
|
+
} from '@boatdev/sdk';
|
|
3156
|
+
import type { PromptRunStatusRequest } from '@boatdev/sdk';
|
|
3157
|
+
|
|
3158
|
+
async function example() {
|
|
3159
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3160
|
+
const config = new Configuration({
|
|
3161
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3162
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3163
|
+
});
|
|
3164
|
+
const api = new BoatApi(config);
|
|
3165
|
+
|
|
3166
|
+
const body = {
|
|
3167
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
3168
|
+
sandboxId: sandboxId_example,
|
|
3169
|
+
// string
|
|
3170
|
+
promptId: promptId_example,
|
|
3171
|
+
} satisfies PromptRunStatusRequest;
|
|
3172
|
+
|
|
3173
|
+
try {
|
|
3174
|
+
const data = await api.promptRunStatus(body);
|
|
3175
|
+
console.log(data);
|
|
3176
|
+
} catch (error) {
|
|
3177
|
+
console.error(error);
|
|
3178
|
+
}
|
|
3179
|
+
}
|
|
3180
|
+
|
|
3181
|
+
// Run the test
|
|
3182
|
+
example().catch(console.error);
|
|
3183
|
+
```
|
|
3184
|
+
|
|
3185
|
+
### Parameters
|
|
3186
|
+
|
|
3187
|
+
|
|
3188
|
+
| Name | Type | Description | Notes |
|
|
3189
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3190
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
3191
|
+
| **promptId** | `string` | | [Defaults to `undefined`] |
|
|
3192
|
+
|
|
3193
|
+
### Return type
|
|
3194
|
+
|
|
3195
|
+
[**PromptRunResponse**](PromptRunResponse.md)
|
|
3196
|
+
|
|
3197
|
+
### Authorization
|
|
3198
|
+
|
|
3199
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3200
|
+
|
|
3201
|
+
### HTTP request headers
|
|
3202
|
+
|
|
3203
|
+
- **Content-Type**: Not defined
|
|
3204
|
+
- **Accept**: `application/json`
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
### HTTP response details
|
|
3208
|
+
| Status code | Description | Response headers |
|
|
3209
|
+
|-------------|-------------|------------------|
|
|
3210
|
+
| **200** | Prompt run status. | - |
|
|
3211
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3212
|
+
| **404** | Resource not found. | - |
|
|
3213
|
+
|
|
3214
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3215
|
+
|
|
3216
|
+
|
|
3217
|
+
## readFile
|
|
3218
|
+
|
|
3219
|
+
> FileReadResponse readFile(sandboxId, path, encoding)
|
|
3220
|
+
|
|
3221
|
+
Read a file from a sandbox
|
|
3222
|
+
|
|
3223
|
+
### Example
|
|
3224
|
+
|
|
3225
|
+
```ts
|
|
3226
|
+
import {
|
|
3227
|
+
Configuration,
|
|
3228
|
+
BoatApi,
|
|
3229
|
+
} from '@boatdev/sdk';
|
|
3230
|
+
import type { ReadFileRequest } from '@boatdev/sdk';
|
|
3231
|
+
|
|
3232
|
+
async function example() {
|
|
3233
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3234
|
+
const config = new Configuration({
|
|
3235
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3236
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3237
|
+
});
|
|
3238
|
+
const api = new BoatApi(config);
|
|
3239
|
+
|
|
3240
|
+
const body = {
|
|
3241
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
3242
|
+
sandboxId: sandboxId_example,
|
|
3243
|
+
// string
|
|
3244
|
+
path: path_example,
|
|
3245
|
+
// 'utf8' | 'base64' (optional)
|
|
3246
|
+
encoding: encoding_example,
|
|
3247
|
+
} satisfies ReadFileRequest;
|
|
3248
|
+
|
|
3249
|
+
try {
|
|
3250
|
+
const data = await api.readFile(body);
|
|
3251
|
+
console.log(data);
|
|
3252
|
+
} catch (error) {
|
|
3253
|
+
console.error(error);
|
|
3254
|
+
}
|
|
3255
|
+
}
|
|
3256
|
+
|
|
3257
|
+
// Run the test
|
|
3258
|
+
example().catch(console.error);
|
|
3259
|
+
```
|
|
3260
|
+
|
|
3261
|
+
### Parameters
|
|
3262
|
+
|
|
3263
|
+
|
|
3264
|
+
| Name | Type | Description | Notes |
|
|
3265
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3266
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
3267
|
+
| **path** | `string` | | [Defaults to `undefined`] |
|
|
3268
|
+
| **encoding** | `utf8`, `base64` | | [Optional] [Defaults to `'utf8'`] [Enum: utf8, base64] |
|
|
3269
|
+
|
|
3270
|
+
### Return type
|
|
3271
|
+
|
|
3272
|
+
[**FileReadResponse**](FileReadResponse.md)
|
|
3273
|
+
|
|
3274
|
+
### Authorization
|
|
3275
|
+
|
|
3276
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3277
|
+
|
|
3278
|
+
### HTTP request headers
|
|
3279
|
+
|
|
3280
|
+
- **Content-Type**: Not defined
|
|
3281
|
+
- **Accept**: `application/json`
|
|
3282
|
+
|
|
3283
|
+
|
|
3284
|
+
### HTTP response details
|
|
3285
|
+
| Status code | Description | Response headers |
|
|
3286
|
+
|-------------|-------------|------------------|
|
|
3287
|
+
| **200** | File contents. | - |
|
|
3288
|
+
| **400** | Invalid request body or parameters. | - |
|
|
3289
|
+
|
|
3290
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3291
|
+
|
|
3292
|
+
|
|
3293
|
+
## repos
|
|
3294
|
+
|
|
3295
|
+
> ReposResponse repos(sync, limit, cursor, sort, q, selected)
|
|
3296
|
+
|
|
3297
|
+
List GitHub repositories available to Boat
|
|
3298
|
+
|
|
3299
|
+
Returns GitHub repositories grouped by installation plus the current selected repositories for new Sandboxes.
|
|
3300
|
+
|
|
3301
|
+
### Example
|
|
3302
|
+
|
|
3303
|
+
```ts
|
|
3304
|
+
import {
|
|
3305
|
+
Configuration,
|
|
3306
|
+
BoatApi,
|
|
3307
|
+
} from '@boatdev/sdk';
|
|
3308
|
+
import type { ReposRequest } from '@boatdev/sdk';
|
|
3309
|
+
|
|
3310
|
+
async function example() {
|
|
3311
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3312
|
+
const config = new Configuration({
|
|
3313
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3314
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3315
|
+
});
|
|
3316
|
+
const api = new BoatApi(config);
|
|
3317
|
+
|
|
3318
|
+
const body = {
|
|
3319
|
+
// boolean | When true, sync from GitHub before returning repository groups. (optional)
|
|
3320
|
+
sync: true,
|
|
3321
|
+
// number | Maximum items to return. (optional)
|
|
3322
|
+
limit: 56,
|
|
3323
|
+
// string | Opaque pagination cursor returned as `pageInfo.nextCursor`. (optional)
|
|
3324
|
+
cursor: cursor_example,
|
|
3325
|
+
// 'asc' | 'desc' | Sort direction for cursor pagination. (optional)
|
|
3326
|
+
sort: sort_example,
|
|
3327
|
+
// string | Case-insensitive repository name/fullName filter. (optional)
|
|
3328
|
+
q: q_example,
|
|
3329
|
+
// boolean | Filter to selected or unselected repositories. (optional)
|
|
3330
|
+
selected: true,
|
|
3331
|
+
} satisfies ReposRequest;
|
|
3332
|
+
|
|
3333
|
+
try {
|
|
3334
|
+
const data = await api.repos(body);
|
|
3335
|
+
console.log(data);
|
|
3336
|
+
} catch (error) {
|
|
3337
|
+
console.error(error);
|
|
3338
|
+
}
|
|
3339
|
+
}
|
|
3340
|
+
|
|
3341
|
+
// Run the test
|
|
3342
|
+
example().catch(console.error);
|
|
3343
|
+
```
|
|
3344
|
+
|
|
3345
|
+
### Parameters
|
|
3346
|
+
|
|
3347
|
+
|
|
3348
|
+
| Name | Type | Description | Notes |
|
|
3349
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3350
|
+
| **sync** | `boolean` | When true, sync from GitHub before returning repository groups. | [Optional] [Defaults to `undefined`] |
|
|
3351
|
+
| **limit** | `number` | Maximum items to return. | [Optional] [Defaults to `100`] |
|
|
3352
|
+
| **cursor** | `string` | Opaque pagination cursor returned as `pageInfo.nextCursor`. | [Optional] [Defaults to `undefined`] |
|
|
3353
|
+
| **sort** | `asc`, `desc` | Sort direction for cursor pagination. | [Optional] [Defaults to `'desc'`] [Enum: asc, desc] |
|
|
3354
|
+
| **q** | `string` | Case-insensitive repository name/fullName filter. | [Optional] [Defaults to `undefined`] |
|
|
3355
|
+
| **selected** | `boolean` | Filter to selected or unselected repositories. | [Optional] [Defaults to `undefined`] |
|
|
3356
|
+
|
|
3357
|
+
### Return type
|
|
3358
|
+
|
|
3359
|
+
[**ReposResponse**](ReposResponse.md)
|
|
3360
|
+
|
|
3361
|
+
### Authorization
|
|
3362
|
+
|
|
3363
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3364
|
+
|
|
3365
|
+
### HTTP request headers
|
|
3366
|
+
|
|
3367
|
+
- **Content-Type**: Not defined
|
|
3368
|
+
- **Accept**: `application/json`
|
|
3369
|
+
|
|
3370
|
+
|
|
3371
|
+
### HTTP response details
|
|
3372
|
+
| Status code | Description | Response headers |
|
|
3373
|
+
|-------------|-------------|------------------|
|
|
3374
|
+
| **200** | Repository groups and current sandbox repository selection. | - |
|
|
3375
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3376
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
3377
|
+
|
|
3378
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3379
|
+
|
|
3380
|
+
|
|
3381
|
+
## resume
|
|
3382
|
+
|
|
3383
|
+
> SandboxActionResponse resume(sandboxId, resumeRequest)
|
|
3384
|
+
|
|
3385
|
+
Resume sandbox
|
|
3386
|
+
|
|
3387
|
+
### Example
|
|
3388
|
+
|
|
3389
|
+
```ts
|
|
3390
|
+
import {
|
|
3391
|
+
Configuration,
|
|
3392
|
+
BoatApi,
|
|
3393
|
+
} from '@boatdev/sdk';
|
|
3394
|
+
import type { ResumeOperationRequest } from '@boatdev/sdk';
|
|
3395
|
+
|
|
3396
|
+
async function example() {
|
|
3397
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3398
|
+
const config = new Configuration({
|
|
3399
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3400
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3401
|
+
});
|
|
3402
|
+
const api = new BoatApi(config);
|
|
3403
|
+
|
|
3404
|
+
const body = {
|
|
3405
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
3406
|
+
sandboxId: sandboxId_example,
|
|
3407
|
+
// ResumeRequest (optional)
|
|
3408
|
+
resumeRequest: ...,
|
|
3409
|
+
} satisfies ResumeOperationRequest;
|
|
3410
|
+
|
|
3411
|
+
try {
|
|
3412
|
+
const data = await api.resume(body);
|
|
3413
|
+
console.log(data);
|
|
3414
|
+
} catch (error) {
|
|
3415
|
+
console.error(error);
|
|
3416
|
+
}
|
|
3417
|
+
}
|
|
3418
|
+
|
|
3419
|
+
// Run the test
|
|
3420
|
+
example().catch(console.error);
|
|
3421
|
+
```
|
|
3422
|
+
|
|
3423
|
+
### Parameters
|
|
3424
|
+
|
|
3425
|
+
|
|
3426
|
+
| Name | Type | Description | Notes |
|
|
3427
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3428
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
3429
|
+
| **resumeRequest** | [ResumeRequest](ResumeRequest.md) | | [Optional] |
|
|
3430
|
+
|
|
3431
|
+
### Return type
|
|
3432
|
+
|
|
3433
|
+
[**SandboxActionResponse**](SandboxActionResponse.md)
|
|
3434
|
+
|
|
3435
|
+
### Authorization
|
|
3436
|
+
|
|
3437
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3438
|
+
|
|
3439
|
+
### HTTP request headers
|
|
3440
|
+
|
|
3441
|
+
- **Content-Type**: `application/json`
|
|
3442
|
+
- **Accept**: `application/json`
|
|
3443
|
+
|
|
3444
|
+
|
|
3445
|
+
### HTTP response details
|
|
3446
|
+
| Status code | Description | Response headers |
|
|
3447
|
+
|-------------|-------------|------------------|
|
|
3448
|
+
| **202** | Resume started. | - |
|
|
3449
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3450
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
3451
|
+
| **404** | Resource not found. | - |
|
|
3452
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
3453
|
+
| **429** | Machine start or concurrent-sandbox limit reached. Create, fork and resume each count as one machine start against your plan\'s start limits (see the Billing guide; `rate_limited`, naming the window you hit). A sandbox that would exceed your plan\'s concurrent-sandbox cap is refused with `limit_reached`, or `member_limit_reached` when an organization owner has capped you below the plan. | - |
|
|
3454
|
+
|
|
3455
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3456
|
+
|
|
3457
|
+
|
|
3458
|
+
## revokeApiKey
|
|
3459
|
+
|
|
3460
|
+
> ApiKeyRevokeResponse revokeApiKey(apiKeyId)
|
|
3461
|
+
|
|
3462
|
+
Revoke an API key
|
|
3463
|
+
|
|
3464
|
+
Revokes the key immediately. Requires a dashboard or CLI session.
|
|
3465
|
+
|
|
3466
|
+
### Example
|
|
3467
|
+
|
|
3468
|
+
```ts
|
|
3469
|
+
import {
|
|
3470
|
+
Configuration,
|
|
3471
|
+
BoatApi,
|
|
3472
|
+
} from '@boatdev/sdk';
|
|
3473
|
+
import type { RevokeApiKeyRequest } from '@boatdev/sdk';
|
|
3474
|
+
|
|
3475
|
+
async function example() {
|
|
3476
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3477
|
+
const config = new Configuration({
|
|
3478
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3479
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3480
|
+
});
|
|
3481
|
+
const api = new BoatApi(config);
|
|
3482
|
+
|
|
3483
|
+
const body = {
|
|
3484
|
+
// string
|
|
3485
|
+
apiKeyId: apiKeyId_example,
|
|
3486
|
+
} satisfies RevokeApiKeyRequest;
|
|
3487
|
+
|
|
3488
|
+
try {
|
|
3489
|
+
const data = await api.revokeApiKey(body);
|
|
3490
|
+
console.log(data);
|
|
3491
|
+
} catch (error) {
|
|
3492
|
+
console.error(error);
|
|
3493
|
+
}
|
|
3494
|
+
}
|
|
3495
|
+
|
|
3496
|
+
// Run the test
|
|
3497
|
+
example().catch(console.error);
|
|
3498
|
+
```
|
|
3499
|
+
|
|
3500
|
+
### Parameters
|
|
3501
|
+
|
|
3502
|
+
|
|
3503
|
+
| Name | Type | Description | Notes |
|
|
3504
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3505
|
+
| **apiKeyId** | `string` | | [Defaults to `undefined`] |
|
|
3506
|
+
|
|
3507
|
+
### Return type
|
|
3508
|
+
|
|
3509
|
+
[**ApiKeyRevokeResponse**](ApiKeyRevokeResponse.md)
|
|
3510
|
+
|
|
3511
|
+
### Authorization
|
|
3512
|
+
|
|
3513
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3514
|
+
|
|
3515
|
+
### HTTP request headers
|
|
3516
|
+
|
|
3517
|
+
- **Content-Type**: Not defined
|
|
3518
|
+
- **Accept**: `application/json`
|
|
3519
|
+
|
|
3520
|
+
|
|
3521
|
+
### HTTP response details
|
|
3522
|
+
| Status code | Description | Response headers |
|
|
3523
|
+
|-------------|-------------|------------------|
|
|
3524
|
+
| **200** | Key revoked. | - |
|
|
3525
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3526
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
3527
|
+
| **404** | Resource not found. | - |
|
|
3528
|
+
|
|
3529
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3530
|
+
|
|
3531
|
+
|
|
3532
|
+
## rotateApiKey
|
|
3533
|
+
|
|
3534
|
+
> ApiKeySecretResponse rotateApiKey(apiKeyId)
|
|
3535
|
+
|
|
3536
|
+
Rotate an API key
|
|
3537
|
+
|
|
3538
|
+
Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session.
|
|
3539
|
+
|
|
3540
|
+
### Example
|
|
3541
|
+
|
|
3542
|
+
```ts
|
|
3543
|
+
import {
|
|
3544
|
+
Configuration,
|
|
3545
|
+
BoatApi,
|
|
3546
|
+
} from '@boatdev/sdk';
|
|
3547
|
+
import type { RotateApiKeyRequest } from '@boatdev/sdk';
|
|
3548
|
+
|
|
3549
|
+
async function example() {
|
|
3550
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3551
|
+
const config = new Configuration({
|
|
3552
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3553
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3554
|
+
});
|
|
3555
|
+
const api = new BoatApi(config);
|
|
3556
|
+
|
|
3557
|
+
const body = {
|
|
3558
|
+
// string
|
|
3559
|
+
apiKeyId: apiKeyId_example,
|
|
3560
|
+
} satisfies RotateApiKeyRequest;
|
|
3561
|
+
|
|
3562
|
+
try {
|
|
3563
|
+
const data = await api.rotateApiKey(body);
|
|
3564
|
+
console.log(data);
|
|
3565
|
+
} catch (error) {
|
|
3566
|
+
console.error(error);
|
|
3567
|
+
}
|
|
3568
|
+
}
|
|
3569
|
+
|
|
3570
|
+
// Run the test
|
|
3571
|
+
example().catch(console.error);
|
|
3572
|
+
```
|
|
3573
|
+
|
|
3574
|
+
### Parameters
|
|
3575
|
+
|
|
3576
|
+
|
|
3577
|
+
| Name | Type | Description | Notes |
|
|
3578
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3579
|
+
| **apiKeyId** | `string` | | [Defaults to `undefined`] |
|
|
3580
|
+
|
|
3581
|
+
### Return type
|
|
3582
|
+
|
|
3583
|
+
[**ApiKeySecretResponse**](ApiKeySecretResponse.md)
|
|
3584
|
+
|
|
3585
|
+
### Authorization
|
|
3586
|
+
|
|
3587
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3588
|
+
|
|
3589
|
+
### HTTP request headers
|
|
3590
|
+
|
|
3591
|
+
- **Content-Type**: Not defined
|
|
3592
|
+
- **Accept**: `application/json`
|
|
3593
|
+
|
|
3594
|
+
|
|
3595
|
+
### HTTP response details
|
|
3596
|
+
| Status code | Description | Response headers |
|
|
3597
|
+
|-------------|-------------|------------------|
|
|
3598
|
+
| **200** | Rotated key metadata plus the one-time replacement secret. | - |
|
|
3599
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3600
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
3601
|
+
| **404** | Resource not found. | - |
|
|
3602
|
+
| **409** | The scoped API key has already expired and cannot be rotated. | - |
|
|
3603
|
+
|
|
3604
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
## rotateWebhookSigningSecret
|
|
3608
|
+
|
|
3609
|
+
> WebhookSecretResponse rotateWebhookSigningSecret(webhookId)
|
|
3610
|
+
|
|
3611
|
+
Rotate webhook signing secret
|
|
3612
|
+
|
|
3613
|
+
Replaces the endpoint\'s signing secret. The new secret is returned only in this response; briefly accept the old secret for attempts already in flight.
|
|
3614
|
+
|
|
3615
|
+
### Example
|
|
3616
|
+
|
|
3617
|
+
```ts
|
|
3618
|
+
import {
|
|
3619
|
+
Configuration,
|
|
3620
|
+
BoatApi,
|
|
3621
|
+
} from '@boatdev/sdk';
|
|
3622
|
+
import type { RotateWebhookSigningSecretRequest } from '@boatdev/sdk';
|
|
3623
|
+
|
|
3624
|
+
async function example() {
|
|
3625
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3626
|
+
const config = new Configuration({
|
|
3627
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3628
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3629
|
+
});
|
|
3630
|
+
const api = new BoatApi(config);
|
|
3631
|
+
|
|
3632
|
+
const body = {
|
|
3633
|
+
// string
|
|
3634
|
+
webhookId: webhookId_example,
|
|
3635
|
+
} satisfies RotateWebhookSigningSecretRequest;
|
|
3636
|
+
|
|
3637
|
+
try {
|
|
3638
|
+
const data = await api.rotateWebhookSigningSecret(body);
|
|
3639
|
+
console.log(data);
|
|
3640
|
+
} catch (error) {
|
|
3641
|
+
console.error(error);
|
|
3642
|
+
}
|
|
3643
|
+
}
|
|
3644
|
+
|
|
3645
|
+
// Run the test
|
|
3646
|
+
example().catch(console.error);
|
|
3647
|
+
```
|
|
3648
|
+
|
|
3649
|
+
### Parameters
|
|
3650
|
+
|
|
3651
|
+
|
|
3652
|
+
| Name | Type | Description | Notes |
|
|
3653
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3654
|
+
| **webhookId** | `string` | | [Defaults to `undefined`] |
|
|
3655
|
+
|
|
3656
|
+
### Return type
|
|
3657
|
+
|
|
3658
|
+
[**WebhookSecretResponse**](WebhookSecretResponse.md)
|
|
3659
|
+
|
|
3660
|
+
### Authorization
|
|
3661
|
+
|
|
3662
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3663
|
+
|
|
3664
|
+
### HTTP request headers
|
|
3665
|
+
|
|
3666
|
+
- **Content-Type**: Not defined
|
|
3667
|
+
- **Accept**: `application/json`
|
|
3668
|
+
|
|
3669
|
+
|
|
3670
|
+
### HTTP response details
|
|
3671
|
+
| Status code | Description | Response headers |
|
|
3672
|
+
|-------------|-------------|------------------|
|
|
3673
|
+
| **200** | Signing secret rotated. Store the new secret now. | - |
|
|
3674
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3675
|
+
| **404** | Resource not found. | - |
|
|
3676
|
+
|
|
3677
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3678
|
+
|
|
3679
|
+
|
|
3680
|
+
## sandboxes
|
|
3681
|
+
|
|
3682
|
+
> SandboxListResponse sandboxes(limit, cursor, sort, state)
|
|
3683
|
+
|
|
3684
|
+
List sandboxes
|
|
3685
|
+
|
|
3686
|
+
### Example
|
|
3687
|
+
|
|
3688
|
+
```ts
|
|
3689
|
+
import {
|
|
3690
|
+
Configuration,
|
|
3691
|
+
BoatApi,
|
|
3692
|
+
} from '@boatdev/sdk';
|
|
3693
|
+
import type { SandboxesRequest } from '@boatdev/sdk';
|
|
3694
|
+
|
|
3695
|
+
async function example() {
|
|
3696
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3697
|
+
const config = new Configuration({
|
|
3698
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3699
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3700
|
+
});
|
|
3701
|
+
const api = new BoatApi(config);
|
|
3702
|
+
|
|
3703
|
+
const body = {
|
|
3704
|
+
// number | Maximum items to return. (optional)
|
|
3705
|
+
limit: 56,
|
|
3706
|
+
// string | Opaque pagination cursor returned as `pageInfo.nextCursor`. (optional)
|
|
3707
|
+
cursor: cursor_example,
|
|
3708
|
+
// 'asc' | 'desc' | Sort direction for cursor pagination. (optional)
|
|
3709
|
+
sort: sort_example,
|
|
3710
|
+
// string | Comma-separated sandbox state filter, for example `ready,idle,running`. (optional)
|
|
3711
|
+
state: state_example,
|
|
3712
|
+
} satisfies SandboxesRequest;
|
|
3713
|
+
|
|
3714
|
+
try {
|
|
3715
|
+
const data = await api.sandboxes(body);
|
|
3716
|
+
console.log(data);
|
|
3717
|
+
} catch (error) {
|
|
3718
|
+
console.error(error);
|
|
3719
|
+
}
|
|
3720
|
+
}
|
|
3721
|
+
|
|
3722
|
+
// Run the test
|
|
3723
|
+
example().catch(console.error);
|
|
3724
|
+
```
|
|
3725
|
+
|
|
3726
|
+
### Parameters
|
|
3727
|
+
|
|
3728
|
+
|
|
3729
|
+
| Name | Type | Description | Notes |
|
|
3730
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3731
|
+
| **limit** | `number` | Maximum items to return. | [Optional] [Defaults to `100`] |
|
|
3732
|
+
| **cursor** | `string` | Opaque pagination cursor returned as `pageInfo.nextCursor`. | [Optional] [Defaults to `undefined`] |
|
|
3733
|
+
| **sort** | `asc`, `desc` | Sort direction for cursor pagination. | [Optional] [Defaults to `'desc'`] [Enum: asc, desc] |
|
|
3734
|
+
| **state** | `string` | Comma-separated sandbox state filter, for example `ready,idle,running`. | [Optional] [Defaults to `undefined`] |
|
|
3735
|
+
|
|
3736
|
+
### Return type
|
|
3737
|
+
|
|
3738
|
+
[**SandboxListResponse**](SandboxListResponse.md)
|
|
3739
|
+
|
|
3740
|
+
### Authorization
|
|
3741
|
+
|
|
3742
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3743
|
+
|
|
3744
|
+
### HTTP request headers
|
|
3745
|
+
|
|
3746
|
+
- **Content-Type**: Not defined
|
|
3747
|
+
- **Accept**: `application/json`
|
|
3748
|
+
|
|
3749
|
+
|
|
3750
|
+
### HTTP response details
|
|
3751
|
+
| Status code | Description | Response headers |
|
|
3752
|
+
|-------------|-------------|------------------|
|
|
3753
|
+
| **200** | Sandboxes owned by the authenticated Boat user. | - |
|
|
3754
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3755
|
+
|
|
3756
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3757
|
+
|
|
3758
|
+
|
|
3759
|
+
## saveNamedSnapshot
|
|
3760
|
+
|
|
3761
|
+
> NamedSnapshotSavingResponse saveNamedSnapshot(namedSnapshotSaveRequest)
|
|
3762
|
+
|
|
3763
|
+
Save a named snapshot
|
|
3764
|
+
|
|
3765
|
+
Freeze a sandbox\'s current state under a name (`boat snapshot <id> <name>` in the CLI). Answers `202` immediately with the snapshot in `saving`; a running sandbox takes a fresh capture first, which can run minutes. Poll `GET /named-snapshots/{name}` until the status settles at `ready` or `failed`. Reusing one of your existing names replaces that snapshot\'s artifact once the new save is ready.
|
|
3766
|
+
|
|
3767
|
+
### Example
|
|
3768
|
+
|
|
3769
|
+
```ts
|
|
3770
|
+
import {
|
|
3771
|
+
Configuration,
|
|
3772
|
+
BoatApi,
|
|
3773
|
+
} from '@boatdev/sdk';
|
|
3774
|
+
import type { SaveNamedSnapshotRequest } from '@boatdev/sdk';
|
|
3775
|
+
|
|
3776
|
+
async function example() {
|
|
3777
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3778
|
+
const config = new Configuration({
|
|
3779
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3780
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3781
|
+
});
|
|
3782
|
+
const api = new BoatApi(config);
|
|
3783
|
+
|
|
3784
|
+
const body = {
|
|
3785
|
+
// NamedSnapshotSaveRequest
|
|
3786
|
+
namedSnapshotSaveRequest: ...,
|
|
3787
|
+
} satisfies SaveNamedSnapshotRequest;
|
|
3788
|
+
|
|
3789
|
+
try {
|
|
3790
|
+
const data = await api.saveNamedSnapshot(body);
|
|
3791
|
+
console.log(data);
|
|
3792
|
+
} catch (error) {
|
|
3793
|
+
console.error(error);
|
|
3794
|
+
}
|
|
3795
|
+
}
|
|
3796
|
+
|
|
3797
|
+
// Run the test
|
|
3798
|
+
example().catch(console.error);
|
|
3799
|
+
```
|
|
3800
|
+
|
|
3801
|
+
### Parameters
|
|
3802
|
+
|
|
3803
|
+
|
|
3804
|
+
| Name | Type | Description | Notes |
|
|
3805
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3806
|
+
| **namedSnapshotSaveRequest** | [NamedSnapshotSaveRequest](NamedSnapshotSaveRequest.md) | | |
|
|
3807
|
+
|
|
3808
|
+
### Return type
|
|
3809
|
+
|
|
3810
|
+
[**NamedSnapshotSavingResponse**](NamedSnapshotSavingResponse.md)
|
|
3811
|
+
|
|
3812
|
+
### Authorization
|
|
3813
|
+
|
|
3814
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3815
|
+
|
|
3816
|
+
### HTTP request headers
|
|
3817
|
+
|
|
3818
|
+
- **Content-Type**: `application/json`
|
|
3819
|
+
- **Accept**: `application/json`
|
|
3820
|
+
|
|
3821
|
+
|
|
3822
|
+
### HTTP response details
|
|
3823
|
+
| Status code | Description | Response headers |
|
|
3824
|
+
|-------------|-------------|------------------|
|
|
3825
|
+
| **202** | Save accepted and running in the background. | - |
|
|
3826
|
+
| **400** | Invalid request body or parameters. | - |
|
|
3827
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3828
|
+
| **404** | Resource not found. | - |
|
|
3829
|
+
| **409** | `named_snapshot_limit` when you already keep the maximum of 10 named snapshots; remove one first. `save_in_progress` when a save under this name is already running; wait for it to settle rather than retrying immediately. | - |
|
|
3830
|
+
|
|
3831
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3832
|
+
|
|
3833
|
+
|
|
3834
|
+
## secrets
|
|
3835
|
+
|
|
3836
|
+
> SecretsResponse secrets()
|
|
3837
|
+
|
|
3838
|
+
Get Boat secrets setup
|
|
3839
|
+
|
|
3840
|
+
Returns the environment variables and secret files configured for sandboxes.
|
|
3841
|
+
|
|
3842
|
+
### Example
|
|
3843
|
+
|
|
3844
|
+
```ts
|
|
3845
|
+
import {
|
|
3846
|
+
Configuration,
|
|
3847
|
+
BoatApi,
|
|
3848
|
+
} from '@boatdev/sdk';
|
|
3849
|
+
import type { SecretsRequest } from '@boatdev/sdk';
|
|
3850
|
+
|
|
3851
|
+
async function example() {
|
|
3852
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3853
|
+
const config = new Configuration({
|
|
3854
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3855
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3856
|
+
});
|
|
3857
|
+
const api = new BoatApi(config);
|
|
3858
|
+
|
|
3859
|
+
try {
|
|
3860
|
+
const data = await api.secrets();
|
|
3861
|
+
console.log(data);
|
|
3862
|
+
} catch (error) {
|
|
3863
|
+
console.error(error);
|
|
3864
|
+
}
|
|
3865
|
+
}
|
|
3866
|
+
|
|
3867
|
+
// Run the test
|
|
3868
|
+
example().catch(console.error);
|
|
3869
|
+
```
|
|
3870
|
+
|
|
3871
|
+
### Parameters
|
|
3872
|
+
|
|
3873
|
+
This endpoint does not need any parameter.
|
|
3874
|
+
|
|
3875
|
+
### Return type
|
|
3876
|
+
|
|
3877
|
+
[**SecretsResponse**](SecretsResponse.md)
|
|
3878
|
+
|
|
3879
|
+
### Authorization
|
|
3880
|
+
|
|
3881
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3882
|
+
|
|
3883
|
+
### HTTP request headers
|
|
3884
|
+
|
|
3885
|
+
- **Content-Type**: Not defined
|
|
3886
|
+
- **Accept**: `application/json`
|
|
3887
|
+
|
|
3888
|
+
|
|
3889
|
+
### HTTP response details
|
|
3890
|
+
| Status code | Description | Response headers |
|
|
3891
|
+
|-------------|-------------|------------------|
|
|
3892
|
+
| **200** | Current secret setup metadata. | - |
|
|
3893
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3894
|
+
|
|
3895
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3896
|
+
|
|
3897
|
+
|
|
3898
|
+
## selectRepo
|
|
3899
|
+
|
|
3900
|
+
> RepoSelectionResponse selectRepo(repoSelectionRequest)
|
|
3901
|
+
|
|
3902
|
+
Select repository for sandboxes
|
|
3903
|
+
|
|
3904
|
+
Idempotently selects one repository for the sandbox environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.
|
|
3905
|
+
|
|
3906
|
+
### Example
|
|
3907
|
+
|
|
3908
|
+
```ts
|
|
3909
|
+
import {
|
|
3910
|
+
Configuration,
|
|
3911
|
+
BoatApi,
|
|
3912
|
+
} from '@boatdev/sdk';
|
|
3913
|
+
import type { SelectRepoRequest } from '@boatdev/sdk';
|
|
3914
|
+
|
|
3915
|
+
async function example() {
|
|
3916
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3917
|
+
const config = new Configuration({
|
|
3918
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3919
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3920
|
+
});
|
|
3921
|
+
const api = new BoatApi(config);
|
|
3922
|
+
|
|
3923
|
+
const body = {
|
|
3924
|
+
// RepoSelectionRequest
|
|
3925
|
+
repoSelectionRequest: ...,
|
|
3926
|
+
} satisfies SelectRepoRequest;
|
|
3927
|
+
|
|
3928
|
+
try {
|
|
3929
|
+
const data = await api.selectRepo(body);
|
|
3930
|
+
console.log(data);
|
|
3931
|
+
} catch (error) {
|
|
3932
|
+
console.error(error);
|
|
3933
|
+
}
|
|
3934
|
+
}
|
|
3935
|
+
|
|
3936
|
+
// Run the test
|
|
3937
|
+
example().catch(console.error);
|
|
3938
|
+
```
|
|
3939
|
+
|
|
3940
|
+
### Parameters
|
|
3941
|
+
|
|
3942
|
+
|
|
3943
|
+
| Name | Type | Description | Notes |
|
|
3944
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3945
|
+
| **repoSelectionRequest** | [RepoSelectionRequest](RepoSelectionRequest.md) | | |
|
|
3946
|
+
|
|
3947
|
+
### Return type
|
|
3948
|
+
|
|
3949
|
+
[**RepoSelectionResponse**](RepoSelectionResponse.md)
|
|
3950
|
+
|
|
3951
|
+
### Authorization
|
|
3952
|
+
|
|
3953
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3954
|
+
|
|
3955
|
+
### HTTP request headers
|
|
3956
|
+
|
|
3957
|
+
- **Content-Type**: `application/json`
|
|
3958
|
+
- **Accept**: `application/json`
|
|
3959
|
+
|
|
3960
|
+
|
|
3961
|
+
### HTTP response details
|
|
3962
|
+
| Status code | Description | Response headers |
|
|
3963
|
+
|-------------|-------------|------------------|
|
|
3964
|
+
| **200** | Updated repository selection. | - |
|
|
3965
|
+
| **400** | Invalid request body or parameters. | - |
|
|
3966
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3967
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
3968
|
+
|
|
3969
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3970
|
+
|
|
3971
|
+
|
|
3972
|
+
## setEnvironmentSecretFile
|
|
3973
|
+
|
|
3974
|
+
> EnvironmentItemChangeResponse setEnvironmentSecretFile(environmentId, setEnvironmentSecretFileRequest)
|
|
3975
|
+
|
|
3976
|
+
Write one secret file
|
|
3977
|
+
|
|
3978
|
+
Adds or replaces a single secret file by path. Mints a new immutable version.
|
|
3979
|
+
|
|
3980
|
+
### Example
|
|
3981
|
+
|
|
3982
|
+
```ts
|
|
3983
|
+
import {
|
|
3984
|
+
Configuration,
|
|
3985
|
+
BoatApi,
|
|
3986
|
+
} from '@boatdev/sdk';
|
|
3987
|
+
import type { SetEnvironmentSecretFileOperationRequest } from '@boatdev/sdk';
|
|
3988
|
+
|
|
3989
|
+
async function example() {
|
|
3990
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3991
|
+
const config = new Configuration({
|
|
3992
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3993
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3994
|
+
});
|
|
3995
|
+
const api = new BoatApi(config);
|
|
3996
|
+
|
|
3997
|
+
const body = {
|
|
3998
|
+
// string
|
|
3999
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
4000
|
+
// SetEnvironmentSecretFileRequest
|
|
4001
|
+
setEnvironmentSecretFileRequest: ...,
|
|
4002
|
+
} satisfies SetEnvironmentSecretFileOperationRequest;
|
|
4003
|
+
|
|
4004
|
+
try {
|
|
4005
|
+
const data = await api.setEnvironmentSecretFile(body);
|
|
4006
|
+
console.log(data);
|
|
4007
|
+
} catch (error) {
|
|
4008
|
+
console.error(error);
|
|
4009
|
+
}
|
|
4010
|
+
}
|
|
4011
|
+
|
|
4012
|
+
// Run the test
|
|
4013
|
+
example().catch(console.error);
|
|
4014
|
+
```
|
|
4015
|
+
|
|
4016
|
+
### Parameters
|
|
4017
|
+
|
|
4018
|
+
|
|
4019
|
+
| Name | Type | Description | Notes |
|
|
4020
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4021
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
4022
|
+
| **setEnvironmentSecretFileRequest** | [SetEnvironmentSecretFileRequest](SetEnvironmentSecretFileRequest.md) | | |
|
|
4023
|
+
|
|
4024
|
+
### Return type
|
|
4025
|
+
|
|
4026
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
4027
|
+
|
|
4028
|
+
### Authorization
|
|
4029
|
+
|
|
4030
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4031
|
+
|
|
4032
|
+
### HTTP request headers
|
|
4033
|
+
|
|
4034
|
+
- **Content-Type**: `application/json`
|
|
4035
|
+
- **Accept**: `application/json`
|
|
4036
|
+
|
|
4037
|
+
|
|
4038
|
+
### HTTP response details
|
|
4039
|
+
| Status code | Description | Response headers |
|
|
4040
|
+
|-------------|-------------|------------------|
|
|
4041
|
+
| **200** | New version minted. | - |
|
|
4042
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4043
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4044
|
+
| **404** | Resource not found. | - |
|
|
4045
|
+
|
|
4046
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4047
|
+
|
|
4048
|
+
|
|
4049
|
+
## setEnvironmentVar
|
|
4050
|
+
|
|
4051
|
+
> EnvironmentItemChangeResponse setEnvironmentVar(environmentId, key, setEnvironmentVarRequest)
|
|
4052
|
+
|
|
4053
|
+
Set one environment variable
|
|
4054
|
+
|
|
4055
|
+
Sets or replaces a single variable without reading or rewriting the rest. Mints a new immutable version.
|
|
4056
|
+
|
|
4057
|
+
### Example
|
|
4058
|
+
|
|
4059
|
+
```ts
|
|
4060
|
+
import {
|
|
4061
|
+
Configuration,
|
|
4062
|
+
BoatApi,
|
|
4063
|
+
} from '@boatdev/sdk';
|
|
4064
|
+
import type { SetEnvironmentVarOperationRequest } from '@boatdev/sdk';
|
|
4065
|
+
|
|
4066
|
+
async function example() {
|
|
4067
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4068
|
+
const config = new Configuration({
|
|
4069
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4070
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4071
|
+
});
|
|
4072
|
+
const api = new BoatApi(config);
|
|
4073
|
+
|
|
4074
|
+
const body = {
|
|
4075
|
+
// string
|
|
4076
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
4077
|
+
// string | Environment variable name.
|
|
4078
|
+
key: key_example,
|
|
4079
|
+
// SetEnvironmentVarRequest
|
|
4080
|
+
setEnvironmentVarRequest: ...,
|
|
4081
|
+
} satisfies SetEnvironmentVarOperationRequest;
|
|
4082
|
+
|
|
4083
|
+
try {
|
|
4084
|
+
const data = await api.setEnvironmentVar(body);
|
|
4085
|
+
console.log(data);
|
|
4086
|
+
} catch (error) {
|
|
4087
|
+
console.error(error);
|
|
4088
|
+
}
|
|
4089
|
+
}
|
|
4090
|
+
|
|
4091
|
+
// Run the test
|
|
4092
|
+
example().catch(console.error);
|
|
4093
|
+
```
|
|
4094
|
+
|
|
4095
|
+
### Parameters
|
|
4096
|
+
|
|
4097
|
+
|
|
4098
|
+
| Name | Type | Description | Notes |
|
|
4099
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4100
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
4101
|
+
| **key** | `string` | Environment variable name. | [Defaults to `undefined`] |
|
|
4102
|
+
| **setEnvironmentVarRequest** | [SetEnvironmentVarRequest](SetEnvironmentVarRequest.md) | | |
|
|
4103
|
+
|
|
4104
|
+
### Return type
|
|
4105
|
+
|
|
4106
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
4107
|
+
|
|
4108
|
+
### Authorization
|
|
4109
|
+
|
|
4110
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4111
|
+
|
|
4112
|
+
### HTTP request headers
|
|
4113
|
+
|
|
4114
|
+
- **Content-Type**: `application/json`
|
|
4115
|
+
- **Accept**: `application/json`
|
|
4116
|
+
|
|
4117
|
+
|
|
4118
|
+
### HTTP response details
|
|
4119
|
+
| Status code | Description | Response headers |
|
|
4120
|
+
|-------------|-------------|------------------|
|
|
4121
|
+
| **200** | New version minted. | - |
|
|
4122
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4123
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4124
|
+
| **404** | Resource not found. | - |
|
|
4125
|
+
|
|
4126
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4127
|
+
|
|
4128
|
+
|
|
4129
|
+
## sshKey
|
|
4130
|
+
|
|
4131
|
+
> SshKeyResponse sshKey(sandboxId, sshKeyRequest)
|
|
4132
|
+
|
|
4133
|
+
Configure sandbox SSH key
|
|
4134
|
+
|
|
4135
|
+
Adds an OpenSSH public key to the running sandbox so the caller can SSH as user `user`. The response carries `machineIp`, which is the host to connect to on port 22. This is also how you reach your own machine from inside a sandbox without the CLI: authorize the key, then open a reverse tunnel with stock OpenSSH, and a port on your machine answers at `127.0.0.1:<port>` inside the sandbox for as long as the ssh process runs. ```bash ssh -o ExitOnForwardFailure=yes -i ~/.ssh/id_ed25519 -N -R 7777:127.0.0.1:7777 user@<machineIp> ``` `boat forward <id> --reverse --local 7777` is the same tunnel with the key handling and redial done for you.
|
|
4136
|
+
|
|
4137
|
+
### Example
|
|
4138
|
+
|
|
4139
|
+
```ts
|
|
4140
|
+
import {
|
|
4141
|
+
Configuration,
|
|
4142
|
+
BoatApi,
|
|
4143
|
+
} from '@boatdev/sdk';
|
|
4144
|
+
import type { SshKeyOperationRequest } from '@boatdev/sdk';
|
|
4145
|
+
|
|
4146
|
+
async function example() {
|
|
4147
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4148
|
+
const config = new Configuration({
|
|
4149
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4150
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4151
|
+
});
|
|
4152
|
+
const api = new BoatApi(config);
|
|
4153
|
+
|
|
4154
|
+
const body = {
|
|
4155
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
4156
|
+
sandboxId: sandboxId_example,
|
|
4157
|
+
// SshKeyRequest
|
|
4158
|
+
sshKeyRequest: ...,
|
|
4159
|
+
} satisfies SshKeyOperationRequest;
|
|
4160
|
+
|
|
4161
|
+
try {
|
|
4162
|
+
const data = await api.sshKey(body);
|
|
4163
|
+
console.log(data);
|
|
4164
|
+
} catch (error) {
|
|
4165
|
+
console.error(error);
|
|
4166
|
+
}
|
|
4167
|
+
}
|
|
4168
|
+
|
|
4169
|
+
// Run the test
|
|
4170
|
+
example().catch(console.error);
|
|
4171
|
+
```
|
|
4172
|
+
|
|
4173
|
+
### Parameters
|
|
4174
|
+
|
|
4175
|
+
|
|
4176
|
+
| Name | Type | Description | Notes |
|
|
4177
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4178
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4179
|
+
| **sshKeyRequest** | [SshKeyRequest](SshKeyRequest.md) | | |
|
|
4180
|
+
|
|
4181
|
+
### Return type
|
|
4182
|
+
|
|
4183
|
+
[**SshKeyResponse**](SshKeyResponse.md)
|
|
4184
|
+
|
|
4185
|
+
### Authorization
|
|
4186
|
+
|
|
4187
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4188
|
+
|
|
4189
|
+
### HTTP request headers
|
|
4190
|
+
|
|
4191
|
+
- **Content-Type**: `application/json`
|
|
4192
|
+
- **Accept**: `application/json`
|
|
4193
|
+
|
|
4194
|
+
|
|
4195
|
+
### HTTP response details
|
|
4196
|
+
| Status code | Description | Response headers |
|
|
4197
|
+
|-------------|-------------|------------------|
|
|
4198
|
+
| **200** | SSH key setup result. | - |
|
|
4199
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4200
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4201
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
4202
|
+
| **404** | Resource not found. | - |
|
|
4203
|
+
|
|
4204
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4205
|
+
|
|
4206
|
+
|
|
4207
|
+
## steer
|
|
4208
|
+
|
|
4209
|
+
> SteerResponse steer(sandboxId, steerRequest, conversation)
|
|
4210
|
+
|
|
4211
|
+
Steer a running turn
|
|
4212
|
+
|
|
4213
|
+
Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
|
|
4214
|
+
|
|
4215
|
+
### Example
|
|
4216
|
+
|
|
4217
|
+
```ts
|
|
4218
|
+
import {
|
|
4219
|
+
Configuration,
|
|
4220
|
+
BoatApi,
|
|
4221
|
+
} from '@boatdev/sdk';
|
|
4222
|
+
import type { SteerOperationRequest } from '@boatdev/sdk';
|
|
4223
|
+
|
|
4224
|
+
async function example() {
|
|
4225
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4226
|
+
const config = new Configuration({
|
|
4227
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4228
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4229
|
+
});
|
|
4230
|
+
const api = new BoatApi(config);
|
|
4231
|
+
|
|
4232
|
+
const body = {
|
|
4233
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
4234
|
+
sandboxId: sandboxId_example,
|
|
4235
|
+
// SteerRequest
|
|
4236
|
+
steerRequest: {"message":"Also write /home/user/steered.txt containing the word STEERED, then finish."},
|
|
4237
|
+
// string | Conversation id to steer. Also accepted in the body. Omit to steer the sandbox\'s most-recently-active conversation. (optional)
|
|
4238
|
+
conversation: conversation_example,
|
|
4239
|
+
} satisfies SteerOperationRequest;
|
|
4240
|
+
|
|
4241
|
+
try {
|
|
4242
|
+
const data = await api.steer(body);
|
|
4243
|
+
console.log(data);
|
|
4244
|
+
} catch (error) {
|
|
4245
|
+
console.error(error);
|
|
4246
|
+
}
|
|
4247
|
+
}
|
|
4248
|
+
|
|
4249
|
+
// Run the test
|
|
4250
|
+
example().catch(console.error);
|
|
4251
|
+
```
|
|
4252
|
+
|
|
4253
|
+
### Parameters
|
|
4254
|
+
|
|
4255
|
+
|
|
4256
|
+
| Name | Type | Description | Notes |
|
|
4257
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4258
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4259
|
+
| **steerRequest** | [SteerRequest](SteerRequest.md) | | |
|
|
4260
|
+
| **conversation** | `string` | Conversation id to steer. Also accepted in the body. Omit to steer the sandbox\'s most-recently-active conversation. | [Optional] [Defaults to `undefined`] |
|
|
4261
|
+
|
|
4262
|
+
### Return type
|
|
4263
|
+
|
|
4264
|
+
[**SteerResponse**](SteerResponse.md)
|
|
4265
|
+
|
|
4266
|
+
### Authorization
|
|
4267
|
+
|
|
4268
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4269
|
+
|
|
4270
|
+
### HTTP request headers
|
|
4271
|
+
|
|
4272
|
+
- **Content-Type**: `application/json`
|
|
4273
|
+
- **Accept**: `application/json`
|
|
4274
|
+
|
|
4275
|
+
|
|
4276
|
+
### HTTP response details
|
|
4277
|
+
| Status code | Description | Response headers |
|
|
4278
|
+
|-------------|-------------|------------------|
|
|
4279
|
+
| **200** | Message delivered to the running turn. | - |
|
|
4280
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4281
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4282
|
+
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
4283
|
+
| **404** | Resource not found. | - |
|
|
4284
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
4285
|
+
|
|
4286
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4287
|
+
|
|
4288
|
+
|
|
4289
|
+
## stop
|
|
4290
|
+
|
|
4291
|
+
> SandboxActionResponse stop(sandboxId, stopRequest)
|
|
4292
|
+
|
|
4293
|
+
Stop and archive sandbox
|
|
4294
|
+
|
|
4295
|
+
Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. Set `force: true` to stop anyway, accepting the loss of everything written since the last successful snapshot. This is irreversible; only reach for it after a stop has already failed.
|
|
4296
|
+
|
|
4297
|
+
### Example
|
|
4298
|
+
|
|
4299
|
+
```ts
|
|
4300
|
+
import {
|
|
4301
|
+
Configuration,
|
|
4302
|
+
BoatApi,
|
|
4303
|
+
} from '@boatdev/sdk';
|
|
4304
|
+
import type { StopOperationRequest } from '@boatdev/sdk';
|
|
4305
|
+
|
|
4306
|
+
async function example() {
|
|
4307
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4308
|
+
const config = new Configuration({
|
|
4309
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4310
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4311
|
+
});
|
|
4312
|
+
const api = new BoatApi(config);
|
|
4313
|
+
|
|
4314
|
+
const body = {
|
|
4315
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
4316
|
+
sandboxId: sandboxId_example,
|
|
4317
|
+
// StopRequest (optional)
|
|
4318
|
+
stopRequest: ...,
|
|
4319
|
+
} satisfies StopOperationRequest;
|
|
4320
|
+
|
|
4321
|
+
try {
|
|
4322
|
+
const data = await api.stop(body);
|
|
4323
|
+
console.log(data);
|
|
4324
|
+
} catch (error) {
|
|
4325
|
+
console.error(error);
|
|
4326
|
+
}
|
|
4327
|
+
}
|
|
4328
|
+
|
|
4329
|
+
// Run the test
|
|
4330
|
+
example().catch(console.error);
|
|
4331
|
+
```
|
|
4332
|
+
|
|
4333
|
+
### Parameters
|
|
4334
|
+
|
|
4335
|
+
|
|
4336
|
+
| Name | Type | Description | Notes |
|
|
4337
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4338
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4339
|
+
| **stopRequest** | [StopRequest](StopRequest.md) | | [Optional] |
|
|
4340
|
+
|
|
4341
|
+
### Return type
|
|
4342
|
+
|
|
4343
|
+
[**SandboxActionResponse**](SandboxActionResponse.md)
|
|
4344
|
+
|
|
4345
|
+
### Authorization
|
|
4346
|
+
|
|
4347
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4348
|
+
|
|
4349
|
+
### HTTP request headers
|
|
4350
|
+
|
|
4351
|
+
- **Content-Type**: `application/json`
|
|
4352
|
+
- **Accept**: `application/json`
|
|
4353
|
+
|
|
4354
|
+
|
|
4355
|
+
### HTTP response details
|
|
4356
|
+
| Status code | Description | Response headers |
|
|
4357
|
+
|-------------|-------------|------------------|
|
|
4358
|
+
| **202** | Boat archival started or already in progress. | - |
|
|
4359
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4360
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4361
|
+
| **404** | Resource not found. | - |
|
|
4362
|
+
|
|
4363
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4364
|
+
|
|
4365
|
+
|
|
4366
|
+
## update
|
|
4367
|
+
|
|
4368
|
+
> SandboxInfoResponse update(sandboxId, updateSandboxRequest)
|
|
4369
|
+
|
|
4370
|
+
Update sandbox
|
|
4371
|
+
|
|
4372
|
+
### Example
|
|
4373
|
+
|
|
4374
|
+
```ts
|
|
4375
|
+
import {
|
|
4376
|
+
Configuration,
|
|
4377
|
+
BoatApi,
|
|
4378
|
+
} from '@boatdev/sdk';
|
|
4379
|
+
import type { UpdateRequest } from '@boatdev/sdk';
|
|
4380
|
+
|
|
4381
|
+
async function example() {
|
|
4382
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4383
|
+
const config = new Configuration({
|
|
4384
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4385
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4386
|
+
});
|
|
4387
|
+
const api = new BoatApi(config);
|
|
4388
|
+
|
|
4389
|
+
const body = {
|
|
4390
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
4391
|
+
sandboxId: sandboxId_example,
|
|
4392
|
+
// UpdateSandboxRequest
|
|
4393
|
+
updateSandboxRequest: ...,
|
|
4394
|
+
} satisfies UpdateRequest;
|
|
4395
|
+
|
|
4396
|
+
try {
|
|
4397
|
+
const data = await api.update(body);
|
|
4398
|
+
console.log(data);
|
|
4399
|
+
} catch (error) {
|
|
4400
|
+
console.error(error);
|
|
4401
|
+
}
|
|
4402
|
+
}
|
|
4403
|
+
|
|
4404
|
+
// Run the test
|
|
4405
|
+
example().catch(console.error);
|
|
4406
|
+
```
|
|
4407
|
+
|
|
4408
|
+
### Parameters
|
|
4409
|
+
|
|
4410
|
+
|
|
4411
|
+
| Name | Type | Description | Notes |
|
|
4412
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4413
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4414
|
+
| **updateSandboxRequest** | [UpdateSandboxRequest](UpdateSandboxRequest.md) | | |
|
|
4415
|
+
|
|
4416
|
+
### Return type
|
|
4417
|
+
|
|
4418
|
+
[**SandboxInfoResponse**](SandboxInfoResponse.md)
|
|
4419
|
+
|
|
4420
|
+
### Authorization
|
|
4421
|
+
|
|
4422
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4423
|
+
|
|
4424
|
+
### HTTP request headers
|
|
4425
|
+
|
|
4426
|
+
- **Content-Type**: `application/json`
|
|
4427
|
+
- **Accept**: `application/json`
|
|
4428
|
+
|
|
4429
|
+
|
|
4430
|
+
### HTTP response details
|
|
4431
|
+
| Status code | Description | Response headers |
|
|
4432
|
+
|-------------|-------------|------------------|
|
|
4433
|
+
| **200** | Updated sandbox details. | - |
|
|
4434
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4435
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4436
|
+
| **404** | Resource not found. | - |
|
|
4437
|
+
|
|
4438
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4439
|
+
|
|
4440
|
+
|
|
4441
|
+
## updateDataRetention
|
|
4442
|
+
|
|
4443
|
+
> DataRetentionPolicyResponse updateDataRetention(dataRetentionUpdateRequest)
|
|
4444
|
+
|
|
4445
|
+
Update account data-retention policy
|
|
4446
|
+
|
|
4447
|
+
Requires an interactive sandbox session; API keys and legacy permanent tokens are refused. Enabling requires the exact confirmation phrase `delete archived sandbox data`. Disabling affects future archives only and cannot cancel deletion operations already accepted.
|
|
4448
|
+
|
|
4449
|
+
### Example
|
|
4450
|
+
|
|
4451
|
+
```ts
|
|
4452
|
+
import {
|
|
4453
|
+
Configuration,
|
|
4454
|
+
BoatApi,
|
|
4455
|
+
} from '@boatdev/sdk';
|
|
4456
|
+
import type { UpdateDataRetentionRequest } from '@boatdev/sdk';
|
|
4457
|
+
|
|
4458
|
+
async function example() {
|
|
4459
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4460
|
+
const config = new Configuration({
|
|
4461
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4462
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4463
|
+
});
|
|
4464
|
+
const api = new BoatApi(config);
|
|
4465
|
+
|
|
4466
|
+
const body = {
|
|
4467
|
+
// DataRetentionUpdateRequest
|
|
4468
|
+
dataRetentionUpdateRequest: ...,
|
|
4469
|
+
} satisfies UpdateDataRetentionRequest;
|
|
4470
|
+
|
|
4471
|
+
try {
|
|
4472
|
+
const data = await api.updateDataRetention(body);
|
|
4473
|
+
console.log(data);
|
|
4474
|
+
} catch (error) {
|
|
4475
|
+
console.error(error);
|
|
4476
|
+
}
|
|
4477
|
+
}
|
|
4478
|
+
|
|
4479
|
+
// Run the test
|
|
4480
|
+
example().catch(console.error);
|
|
4481
|
+
```
|
|
4482
|
+
|
|
4483
|
+
### Parameters
|
|
4484
|
+
|
|
4485
|
+
|
|
4486
|
+
| Name | Type | Description | Notes |
|
|
4487
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4488
|
+
| **dataRetentionUpdateRequest** | [DataRetentionUpdateRequest](DataRetentionUpdateRequest.md) | | |
|
|
4489
|
+
|
|
4490
|
+
### Return type
|
|
4491
|
+
|
|
4492
|
+
[**DataRetentionPolicyResponse**](DataRetentionPolicyResponse.md)
|
|
4493
|
+
|
|
4494
|
+
### Authorization
|
|
4495
|
+
|
|
4496
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4497
|
+
|
|
4498
|
+
### HTTP request headers
|
|
4499
|
+
|
|
4500
|
+
- **Content-Type**: `application/json`
|
|
4501
|
+
- **Accept**: `application/json`
|
|
4502
|
+
|
|
4503
|
+
|
|
4504
|
+
### HTTP response details
|
|
4505
|
+
| Status code | Description | Response headers |
|
|
4506
|
+
|-------------|-------------|------------------|
|
|
4507
|
+
| **200** | Updated retention policy. Responses are never cached. | - |
|
|
4508
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4509
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4510
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
4511
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
4512
|
+
|
|
4513
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4514
|
+
|
|
4515
|
+
|
|
4516
|
+
## updateEnvironment
|
|
4517
|
+
|
|
4518
|
+
> SandboxEnvironmentResponse updateEnvironment(environmentId, updateSandboxEnvironmentRequest)
|
|
4519
|
+
|
|
4520
|
+
Update a sandbox environment
|
|
4521
|
+
|
|
4522
|
+
Rename, set as default, and/or edit flags and contents. Any flag or content change mints a new immutable version; existing sandboxes stay on their pinned version until you call upgrade.
|
|
4523
|
+
|
|
4524
|
+
### Example
|
|
4525
|
+
|
|
4526
|
+
```ts
|
|
4527
|
+
import {
|
|
4528
|
+
Configuration,
|
|
4529
|
+
BoatApi,
|
|
4530
|
+
} from '@boatdev/sdk';
|
|
4531
|
+
import type { UpdateEnvironmentRequest } from '@boatdev/sdk';
|
|
4532
|
+
|
|
4533
|
+
async function example() {
|
|
4534
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4535
|
+
const config = new Configuration({
|
|
4536
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4537
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4538
|
+
});
|
|
4539
|
+
const api = new BoatApi(config);
|
|
4540
|
+
|
|
4541
|
+
const body = {
|
|
4542
|
+
// string | Environment id returned by `GET /environments`.
|
|
4543
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
4544
|
+
// UpdateSandboxEnvironmentRequest
|
|
4545
|
+
updateSandboxEnvironmentRequest: ...,
|
|
4546
|
+
} satisfies UpdateEnvironmentRequest;
|
|
4547
|
+
|
|
4548
|
+
try {
|
|
4549
|
+
const data = await api.updateEnvironment(body);
|
|
4550
|
+
console.log(data);
|
|
4551
|
+
} catch (error) {
|
|
4552
|
+
console.error(error);
|
|
4553
|
+
}
|
|
4554
|
+
}
|
|
4555
|
+
|
|
4556
|
+
// Run the test
|
|
4557
|
+
example().catch(console.error);
|
|
4558
|
+
```
|
|
4559
|
+
|
|
4560
|
+
### Parameters
|
|
4561
|
+
|
|
4562
|
+
|
|
4563
|
+
| Name | Type | Description | Notes |
|
|
4564
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4565
|
+
| **environmentId** | `string` | Environment id returned by `GET /environments`. | [Defaults to `undefined`] |
|
|
4566
|
+
| **updateSandboxEnvironmentRequest** | [UpdateSandboxEnvironmentRequest](UpdateSandboxEnvironmentRequest.md) | | |
|
|
4567
|
+
|
|
4568
|
+
### Return type
|
|
4569
|
+
|
|
4570
|
+
[**SandboxEnvironmentResponse**](SandboxEnvironmentResponse.md)
|
|
4571
|
+
|
|
4572
|
+
### Authorization
|
|
4573
|
+
|
|
4574
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4575
|
+
|
|
4576
|
+
### HTTP request headers
|
|
4577
|
+
|
|
4578
|
+
- **Content-Type**: `application/json`
|
|
4579
|
+
- **Accept**: `application/json`
|
|
4580
|
+
|
|
4581
|
+
|
|
4582
|
+
### HTTP response details
|
|
4583
|
+
| Status code | Description | Response headers |
|
|
4584
|
+
|-------------|-------------|------------------|
|
|
4585
|
+
| **200** | Updated environment. | - |
|
|
4586
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4587
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4588
|
+
| **404** | Resource not found. | - |
|
|
4589
|
+
|
|
4590
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4591
|
+
|
|
4592
|
+
|
|
4593
|
+
## updateSecrets
|
|
4594
|
+
|
|
4595
|
+
> SecretsResponse updateSecrets(secretsUpdateRequest)
|
|
4596
|
+
|
|
4597
|
+
Update Boat secrets setup
|
|
4598
|
+
|
|
4599
|
+
### Example
|
|
4600
|
+
|
|
4601
|
+
```ts
|
|
4602
|
+
import {
|
|
4603
|
+
Configuration,
|
|
4604
|
+
BoatApi,
|
|
4605
|
+
} from '@boatdev/sdk';
|
|
4606
|
+
import type { UpdateSecretsRequest } from '@boatdev/sdk';
|
|
4607
|
+
|
|
4608
|
+
async function example() {
|
|
4609
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4610
|
+
const config = new Configuration({
|
|
4611
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4612
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4613
|
+
});
|
|
4614
|
+
const api = new BoatApi(config);
|
|
4615
|
+
|
|
4616
|
+
const body = {
|
|
4617
|
+
// SecretsUpdateRequest
|
|
4618
|
+
secretsUpdateRequest: ...,
|
|
4619
|
+
} satisfies UpdateSecretsRequest;
|
|
4620
|
+
|
|
4621
|
+
try {
|
|
4622
|
+
const data = await api.updateSecrets(body);
|
|
4623
|
+
console.log(data);
|
|
4624
|
+
} catch (error) {
|
|
4625
|
+
console.error(error);
|
|
4626
|
+
}
|
|
4627
|
+
}
|
|
4628
|
+
|
|
4629
|
+
// Run the test
|
|
4630
|
+
example().catch(console.error);
|
|
4631
|
+
```
|
|
4632
|
+
|
|
4633
|
+
### Parameters
|
|
4634
|
+
|
|
4635
|
+
|
|
4636
|
+
| Name | Type | Description | Notes |
|
|
4637
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4638
|
+
| **secretsUpdateRequest** | [SecretsUpdateRequest](SecretsUpdateRequest.md) | | |
|
|
4639
|
+
|
|
4640
|
+
### Return type
|
|
4641
|
+
|
|
4642
|
+
[**SecretsResponse**](SecretsResponse.md)
|
|
4643
|
+
|
|
4644
|
+
### Authorization
|
|
4645
|
+
|
|
4646
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4647
|
+
|
|
4648
|
+
### HTTP request headers
|
|
4649
|
+
|
|
4650
|
+
- **Content-Type**: `application/json`
|
|
4651
|
+
- **Accept**: `application/json`
|
|
4652
|
+
|
|
4653
|
+
|
|
4654
|
+
### HTTP response details
|
|
4655
|
+
| Status code | Description | Response headers |
|
|
4656
|
+
|-------------|-------------|------------------|
|
|
4657
|
+
| **200** | Updated secret setup metadata. | - |
|
|
4658
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4659
|
+
|
|
4660
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4661
|
+
|
|
4662
|
+
|
|
4663
|
+
## updateWebhook
|
|
4664
|
+
|
|
4665
|
+
> WebhookResponse updateWebhook(webhookId, webhookUpdateRequest)
|
|
4666
|
+
|
|
4667
|
+
Update webhook
|
|
4668
|
+
|
|
4669
|
+
Updates the name, endpoint URL, or subscribed events without changing the signing secret.
|
|
4670
|
+
|
|
4671
|
+
### Example
|
|
4672
|
+
|
|
4673
|
+
```ts
|
|
4674
|
+
import {
|
|
4675
|
+
Configuration,
|
|
4676
|
+
BoatApi,
|
|
4677
|
+
} from '@boatdev/sdk';
|
|
4678
|
+
import type { UpdateWebhookRequest } from '@boatdev/sdk';
|
|
4679
|
+
|
|
4680
|
+
async function example() {
|
|
4681
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4682
|
+
const config = new Configuration({
|
|
4683
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4684
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4685
|
+
});
|
|
4686
|
+
const api = new BoatApi(config);
|
|
4687
|
+
|
|
4688
|
+
const body = {
|
|
4689
|
+
// string
|
|
4690
|
+
webhookId: webhookId_example,
|
|
4691
|
+
// WebhookUpdateRequest
|
|
4692
|
+
webhookUpdateRequest: ...,
|
|
4693
|
+
} satisfies UpdateWebhookRequest;
|
|
4694
|
+
|
|
4695
|
+
try {
|
|
4696
|
+
const data = await api.updateWebhook(body);
|
|
4697
|
+
console.log(data);
|
|
4698
|
+
} catch (error) {
|
|
4699
|
+
console.error(error);
|
|
4700
|
+
}
|
|
4701
|
+
}
|
|
4702
|
+
|
|
4703
|
+
// Run the test
|
|
4704
|
+
example().catch(console.error);
|
|
4705
|
+
```
|
|
4706
|
+
|
|
4707
|
+
### Parameters
|
|
4708
|
+
|
|
4709
|
+
|
|
4710
|
+
| Name | Type | Description | Notes |
|
|
4711
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4712
|
+
| **webhookId** | `string` | | [Defaults to `undefined`] |
|
|
4713
|
+
| **webhookUpdateRequest** | [WebhookUpdateRequest](WebhookUpdateRequest.md) | | |
|
|
4714
|
+
|
|
4715
|
+
### Return type
|
|
4716
|
+
|
|
4717
|
+
[**WebhookResponse**](WebhookResponse.md)
|
|
4718
|
+
|
|
4719
|
+
### Authorization
|
|
4720
|
+
|
|
4721
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4722
|
+
|
|
4723
|
+
### HTTP request headers
|
|
4724
|
+
|
|
4725
|
+
- **Content-Type**: `application/json`
|
|
4726
|
+
- **Accept**: `application/json`
|
|
4727
|
+
|
|
4728
|
+
|
|
4729
|
+
### HTTP response details
|
|
4730
|
+
| Status code | Description | Response headers |
|
|
4731
|
+
|-------------|-------------|------------------|
|
|
4732
|
+
| **200** | Updated webhook metadata. | - |
|
|
4733
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4734
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4735
|
+
| **404** | Resource not found. | - |
|
|
4736
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
4737
|
+
|
|
4738
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4739
|
+
|
|
4740
|
+
|
|
4741
|
+
## upgradeEnvironment
|
|
4742
|
+
|
|
4743
|
+
> UpgradeSandboxEnvironmentResponse upgradeEnvironment(environmentId, upgradeSandboxEnvironmentRequest)
|
|
4744
|
+
|
|
4745
|
+
Upgrade sandboxes to an environment\'s latest version
|
|
4746
|
+
|
|
4747
|
+
Repoints the caller\'s active sandboxes from an older version of this environment to its latest version, scrubbing any owner secrets the new version drops and hot-pushing the new config.
|
|
4748
|
+
|
|
4749
|
+
### Example
|
|
4750
|
+
|
|
4751
|
+
```ts
|
|
4752
|
+
import {
|
|
4753
|
+
Configuration,
|
|
4754
|
+
BoatApi,
|
|
4755
|
+
} from '@boatdev/sdk';
|
|
4756
|
+
import type { UpgradeEnvironmentRequest } from '@boatdev/sdk';
|
|
4757
|
+
|
|
4758
|
+
async function example() {
|
|
4759
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4760
|
+
const config = new Configuration({
|
|
4761
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4762
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4763
|
+
});
|
|
4764
|
+
const api = new BoatApi(config);
|
|
4765
|
+
|
|
4766
|
+
const body = {
|
|
4767
|
+
// string
|
|
4768
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
4769
|
+
// UpgradeSandboxEnvironmentRequest (optional)
|
|
4770
|
+
upgradeSandboxEnvironmentRequest: ...,
|
|
4771
|
+
} satisfies UpgradeEnvironmentRequest;
|
|
4772
|
+
|
|
4773
|
+
try {
|
|
4774
|
+
const data = await api.upgradeEnvironment(body);
|
|
4775
|
+
console.log(data);
|
|
4776
|
+
} catch (error) {
|
|
4777
|
+
console.error(error);
|
|
4778
|
+
}
|
|
4779
|
+
}
|
|
4780
|
+
|
|
4781
|
+
// Run the test
|
|
4782
|
+
example().catch(console.error);
|
|
4783
|
+
```
|
|
4784
|
+
|
|
4785
|
+
### Parameters
|
|
4786
|
+
|
|
4787
|
+
|
|
4788
|
+
| Name | Type | Description | Notes |
|
|
4789
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4790
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
4791
|
+
| **upgradeSandboxEnvironmentRequest** | [UpgradeSandboxEnvironmentRequest](UpgradeSandboxEnvironmentRequest.md) | | [Optional] |
|
|
4792
|
+
|
|
4793
|
+
### Return type
|
|
4794
|
+
|
|
4795
|
+
[**UpgradeSandboxEnvironmentResponse**](UpgradeSandboxEnvironmentResponse.md)
|
|
4796
|
+
|
|
4797
|
+
### Authorization
|
|
4798
|
+
|
|
4799
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4800
|
+
|
|
4801
|
+
### HTTP request headers
|
|
4802
|
+
|
|
4803
|
+
- **Content-Type**: `application/json`
|
|
4804
|
+
- **Accept**: `application/json`
|
|
4805
|
+
|
|
4806
|
+
|
|
4807
|
+
### HTTP response details
|
|
4808
|
+
| Status code | Description | Response headers |
|
|
4809
|
+
|-------------|-------------|------------------|
|
|
4810
|
+
| **200** | Upgrade result counts. | - |
|
|
4811
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4812
|
+
| **404** | Resource not found. | - |
|
|
4813
|
+
|
|
4814
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4815
|
+
|
|
4816
|
+
|
|
4817
|
+
## usage
|
|
4818
|
+
|
|
4819
|
+
> SandboxUsageResponse usage(sandboxId, since, until)
|
|
4820
|
+
|
|
4821
|
+
Get boat usage
|
|
4822
|
+
|
|
4823
|
+
Machine time one sandbox consumed, and what it costs, so you can bill your own users per sandbox. Same meter as `GET /limits`: billable seconds with the sandbox type\'s multiplier applied, paused past a refused stop, never counting time stopped. Narrow it to a billing period with `since` and `until`; a period boundary that falls inside a running stretch splits that stretch pro rata. Works while the sandbox runs and after it stops.
|
|
4824
|
+
|
|
4825
|
+
### Example
|
|
4826
|
+
|
|
4827
|
+
```ts
|
|
4828
|
+
import {
|
|
4829
|
+
Configuration,
|
|
4830
|
+
BoatApi,
|
|
4831
|
+
} from '@boatdev/sdk';
|
|
4832
|
+
import type { UsageRequest } from '@boatdev/sdk';
|
|
4833
|
+
|
|
4834
|
+
async function example() {
|
|
4835
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4836
|
+
const config = new Configuration({
|
|
4837
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4838
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4839
|
+
});
|
|
4840
|
+
const api = new BoatApi(config);
|
|
4841
|
+
|
|
4842
|
+
const body = {
|
|
4843
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
4844
|
+
sandboxId: sandboxId_example,
|
|
4845
|
+
// string | Count from this time, ISO 8601 or Unix epoch seconds. Default is the sandbox\'s creation. (optional)
|
|
4846
|
+
since: 2026-09-01T00:00:00Z,
|
|
4847
|
+
// string | Count up to this time, ISO 8601 or Unix epoch seconds. Default is now. (optional)
|
|
4848
|
+
until: 2026-10-01T00:00:00Z,
|
|
4849
|
+
} satisfies UsageRequest;
|
|
4850
|
+
|
|
4851
|
+
try {
|
|
4852
|
+
const data = await api.usage(body);
|
|
4853
|
+
console.log(data);
|
|
4854
|
+
} catch (error) {
|
|
4855
|
+
console.error(error);
|
|
4856
|
+
}
|
|
4857
|
+
}
|
|
4858
|
+
|
|
4859
|
+
// Run the test
|
|
4860
|
+
example().catch(console.error);
|
|
4861
|
+
```
|
|
4862
|
+
|
|
4863
|
+
### Parameters
|
|
4864
|
+
|
|
4865
|
+
|
|
4866
|
+
| Name | Type | Description | Notes |
|
|
4867
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4868
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4869
|
+
| **since** | `string` | Count from this time, ISO 8601 or Unix epoch seconds. Default is the sandbox\'s creation. | [Optional] [Defaults to `undefined`] |
|
|
4870
|
+
| **until** | `string` | Count up to this time, ISO 8601 or Unix epoch seconds. Default is now. | [Optional] [Defaults to `undefined`] |
|
|
4871
|
+
|
|
4872
|
+
### Return type
|
|
4873
|
+
|
|
4874
|
+
[**SandboxUsageResponse**](SandboxUsageResponse.md)
|
|
4875
|
+
|
|
4876
|
+
### Authorization
|
|
4877
|
+
|
|
4878
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4879
|
+
|
|
4880
|
+
### HTTP request headers
|
|
4881
|
+
|
|
4882
|
+
- **Content-Type**: Not defined
|
|
4883
|
+
- **Accept**: `application/json`
|
|
4884
|
+
|
|
4885
|
+
|
|
4886
|
+
### HTTP response details
|
|
4887
|
+
| Status code | Description | Response headers |
|
|
4888
|
+
|-------------|-------------|------------------|
|
|
4889
|
+
| **200** | Billable machine time for the sandbox inside the window. | - |
|
|
4890
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4891
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4892
|
+
| **404** | Resource not found. | - |
|
|
4893
|
+
|
|
4894
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4895
|
+
|
|
4896
|
+
|
|
4897
|
+
## writeFile
|
|
4898
|
+
|
|
4899
|
+
> FileWriteResponse writeFile(sandboxId, fileWriteRequest)
|
|
4900
|
+
|
|
4901
|
+
Write a file in a sandbox
|
|
4902
|
+
|
|
4903
|
+
### Example
|
|
4904
|
+
|
|
4905
|
+
```ts
|
|
4906
|
+
import {
|
|
4907
|
+
Configuration,
|
|
4908
|
+
BoatApi,
|
|
4909
|
+
} from '@boatdev/sdk';
|
|
4910
|
+
import type { WriteFileRequest } from '@boatdev/sdk';
|
|
4911
|
+
|
|
4912
|
+
async function example() {
|
|
4913
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4914
|
+
const config = new Configuration({
|
|
4915
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4916
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4917
|
+
});
|
|
4918
|
+
const api = new BoatApi(config);
|
|
4919
|
+
|
|
4920
|
+
const body = {
|
|
4921
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
4922
|
+
sandboxId: sandboxId_example,
|
|
4923
|
+
// FileWriteRequest
|
|
4924
|
+
fileWriteRequest: ...,
|
|
4925
|
+
} satisfies WriteFileRequest;
|
|
4926
|
+
|
|
4927
|
+
try {
|
|
4928
|
+
const data = await api.writeFile(body);
|
|
4929
|
+
console.log(data);
|
|
4930
|
+
} catch (error) {
|
|
4931
|
+
console.error(error);
|
|
4932
|
+
}
|
|
4933
|
+
}
|
|
4934
|
+
|
|
4935
|
+
// Run the test
|
|
4936
|
+
example().catch(console.error);
|
|
4937
|
+
```
|
|
4938
|
+
|
|
4939
|
+
### Parameters
|
|
4940
|
+
|
|
4941
|
+
|
|
4942
|
+
| Name | Type | Description | Notes |
|
|
4943
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4944
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4945
|
+
| **fileWriteRequest** | [FileWriteRequest](FileWriteRequest.md) | | |
|
|
4946
|
+
|
|
4947
|
+
### Return type
|
|
4948
|
+
|
|
4949
|
+
[**FileWriteResponse**](FileWriteResponse.md)
|
|
4950
|
+
|
|
4951
|
+
### Authorization
|
|
4952
|
+
|
|
4953
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4954
|
+
|
|
4955
|
+
### HTTP request headers
|
|
4956
|
+
|
|
4957
|
+
- **Content-Type**: `application/json`
|
|
4958
|
+
- **Accept**: `application/json`
|
|
4959
|
+
|
|
4960
|
+
|
|
4961
|
+
### HTTP response details
|
|
4962
|
+
| Status code | Description | Response headers |
|
|
4963
|
+
|-------------|-------------|------------------|
|
|
4964
|
+
| **200** | File written. | - |
|
|
4965
|
+
| **400** | Invalid request body or parameters. | - |
|
|
4966
|
+
|
|
4967
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|