---
title: "サンドボックス"
hideTitleOnPage: true
---


## サンドボックス

Daytona のサンドボックスを表します。

**プロパティ**:

- `autoArchiveInterval?` _number_ - 自動アーカイブの間隔（分）
    
    ##### 実装
    
    ```ts
    SandboxDto.autoArchiveInterval
    ```
- `autoDeleteInterval?` _number_ - 自動削除の間隔（分）
    
    ##### 実装
    
    ```ts
    SandboxDto.autoDeleteInterval
    ```
- `autoStopInterval?` _number_ - 自動停止の間隔（分）
    
    ##### 実装
    
    ```ts
    SandboxDto.autoStopInterval
    ```
- `backupCreatedAt?` _string_ - バックアップの作成時刻
    
    ##### 実装
    
    ```ts
    SandboxDto.backupCreatedAt
    ```
- `backupState?` _SandboxBackupStateEnum_ - サンドボックスのバックアップの現在の状態
    
    ##### 実装
    
    ```ts
    SandboxDto.backupState
    ```
- `buildInfo?` _BuildInfo_ - 動的ビルドから作成された場合のサンドボックスのビルド情報
    
    ##### 実装
    
    ```ts
    SandboxDto.buildInfo
    ```
- `computerUse` _ComputerUse_ - デスクトップ自動化のためのコンピューター使用操作インターフェース
- `cpu` _number_ - サンドボックスに割り当てられた CPU 数
    
    ##### 実装
    
    ```ts
    SandboxDto.cpu
    ```
- `createdAt?` _string_ - サンドボックスの作成時刻
    
    ##### 実装
    
    ```ts
    SandboxDto.createdAt
    ```
- `disk` _number_ - サンドボックスに割り当てられたディスク容量（GiB）
    
    ##### 実装
    
    ```ts
    SandboxDto.disk
    ```
- `env` _Record\<string, string\>_ - サンドボックスで設定される環境変数
    
    ##### 実装
    
    ```ts
    SandboxDto.env
    ```
- `errorReason?` _string_ - サンドボックスがエラー状態の場合のエラーメッセージ
    
    ##### 実装
    
    ```ts
    SandboxDto.errorReason
    ```
- `fs` _FileSystem_ - ファイルシステム操作インターフェース
- `git` _Git_ - Git 操作インターフェース
- `gpu` _number_ - サンドボックスに割り当てられた GPU 数
    
    ##### 実装
    
    ```ts
    SandboxDto.gpu
    ```
- `id` _string_ - サンドボックスの一意の識別子
    
    ##### 実装
    
    ```ts
    SandboxDto.id
    ```
- `labels` _Record\<string, string\>_ - サンドボックスに付与されたカスタムラベル
    
    ##### 実装
    
    ```ts
    SandboxDto.labels
    ```
- `memory` _number_ - サンドボックスに割り当てられたメモリ容量（GiB）
    
    ##### 実装
    
    ```ts
    SandboxDto.memory
    ```
- `networkAllowList?` _string_ - サンドボックスで許可される CIDR ネットワークアドレスのカンマ区切りリスト
    
    ##### 実装
    
    ```ts
    SandboxDto.networkAllowList
    ```
- `networkBlockAll` _boolean_ - サンドボックスのネットワークアクセスをすべてブロックするかどうか
    
    ##### 実装
    
    ```ts
    SandboxDto.networkBlockAll
    ```
- `organizationId` _string_ - サンドボックスの組織 ID
    
    ##### 実装
    
    ```ts
    SandboxDto.organizationId
    ```
- `process` _Process_ - プロセス実行インターフェース
- `public` _boolean_ - サンドボックスが公開アクセス可能かどうか
    
    ##### 実装
    
    ```ts
    SandboxDto.public
    ```
- `runnerDomain?` _string_ - サンドボックスのランナーのドメイン名
    
    ##### 実装
    
    ```ts
    SandboxDto.runnerDomain
    ```
- `snapshot?` _string_ - サンドボックスの作成に使用された Daytona のスナップショット
    
    ##### 実装
    
    ```ts
    SandboxDto.snapshot
    ```
- `state?` _SandboxState_ - サンドボックスの現在の状態（例: "started", "stopped"）
    
    ##### 実装
    
    ```ts
    SandboxDto.state
    ```
- `target` _string_ - サンドボックスが実行されるランナーのターゲット（リージョン）
    
    ##### 実装
    
    ```ts
    SandboxDto.target
    ```
- `updatedAt?` _string_ - サンドボックスの最終更新時刻
    
    ##### 実装
    
    ```ts
    SandboxDto.updatedAt
    ```
- `user` _string_ - サンドボックスで実行中の OS ユーザー
    
    ##### 実装
    
    ```ts
    SandboxDto.user
    ```
- `volumes?` _SandboxVolume\[\]_ - サンドボックスに接続されたボリューム
    
    ##### 実装
    
    ```ts
    SandboxDto.volumes
    ```
    




### 実装

- `Sandbox`

### コンストラクター

#### new Sandbox()

```ts
new Sandbox(
   sandboxDto: Sandbox, 
   clientConfig: Configuration, 
   sandboxApi: SandboxApi, 
   toolboxApi: ToolboxApi, 
   codeToolbox: SandboxCodeToolbox): Sandbox
```

新しい Sandbox インスタンスを作成します。

**パラメーター**:

- `sandboxDto` _Sandbox_ - API の Sandbox インスタンス
- `clientConfig` _Configuration_
- `sandboxApi` _SandboxApi_ - サンドボックス操作用の API クライアント
- `toolboxApi` _ToolboxApi_ - ツールボックス操作用の API クライアント
- `codeToolbox` _SandboxCodeToolbox_ - 言語別ツールボックス実装


**戻り値**:

- `Sandbox`

### メソッド

#### archive()

```ts
archive(): Promise<void>
```

サンドボックスをアーカイブし、非アクティブ化して状態を保持します。サンドボックスをアーカイブすると、
ファイルシステム全体の状態はコスト効率の高いオブジェクトストレージに移され、長期間利用可能な状態を維持できます。
アーカイブ状態と停止状態の違いは、サイズに応じてアーカイブ済みサンドボックスの起動により時間がかかる点です。
アーカイブ前にサンドボックスは停止している必要があります。

**戻り値**:

- `Promise<void>`

***

#### createLspServer()

```ts
createLspServer(languageId: string, pathToProject: string): Promise<LspServer>
```

新しい Language Server Protocol (LSP) サーバーインスタンスを作成します。

LSP サーバーはコード補完、診断などの言語機能を提供します。

**パラメーター**:

- `languageId` _string_ - 言語サーバーの種類（例: "typescript"）
- `pathToProject` _string_ - プロジェクトのルートディレクトリへのパス。相対パスはユーザーの
    ルートディレクトリを基準に解決されます。


**戻り値**:

- `Promise<LspServer>` - 指定言語向けに構成された新規 LSP サーバーインスタンス

**例:**

```ts
const lsp = await sandbox.createLspServer('typescript', 'workspace/project');
```

***

#### delete()

```ts
delete(timeout: number): Promise<void>
```

サンドボックスを削除します。

**パラメーター**:

- `timeout` _number = 60_


**戻り値**:

- `Promise<void>`

***

#### getPreviewLink()

```ts
getPreviewLink(port: number): Promise<PortPreviewUrl>
```

指定したポートのプレビューリンクを取得します。ポートが閉じている場合は自動的に開きます。
プライベートなサンドボックスでは、URL へのアクセスを許可するトークンが含まれます。

**パラメーター**:

- `port` _number_ - プレビューリンクを開くポート


**戻り値**:

- `Promise<PortPreviewUrl>` - プレビューリンクのレスポンスオブジェクト。`url`
    と `token`（プライベートサンドボックスにアクセスするため）を含みます。

**例:**

```ts
const previewLink = await sandbox.getPreviewLink(3000);
console.log(`Preview URL: ${previewLink.url}`);
console.log(`Token: ${previewLink.token}`);
```

***

#### getUserRootDir()

```ts
getUserRootDir(): Promise<string>
```

サンドボックス内の、ログイン中ユーザーのルートディレクトリパスを取得します。

**戻り値**:

- `Promise<string>` - ログイン中ユーザーのサンドボックスのルートディレクトリへの絶対パス

**例:**

```ts
const rootDir = await sandbox.getUserRootDir();
console.log(`Sandbox root: ${rootDir}`);
```

***

#### refreshData()

```ts
refreshData(): Promise<void>
```

API からサンドボックスのデータを再取得して更新します。

**戻り値**:

- `Promise<void>`

**例:**

```ts
await sandbox.refreshData();
console.log(`Sandbox ${sandbox.id}:`);
console.log(`State: ${sandbox.state}`);
console.log(`Resources: ${sandbox.cpu} CPU, ${sandbox.memory} GiB RAM`);
```

***

#### setAutoArchiveInterval()

```ts
setAutoArchiveInterval(interval: number): Promise<void>
```

サンドボックスの自動アーカイブ間隔を設定します。

指定した時間連続して停止状態が続いた場合、自動的にアーカイブされます。

**パラメーター**:

- `interval` _number_ - 連続停止から自動アーカイブまでの分数。
    最大間隔にするには 0 を指定します。デフォルトは 7 日です。


**戻り値**:

- `Promise<void>`

**スロー**:

- `DaytonaError` - interval が非負の整数でない場合

**例:**

```ts
// 1 時間後に自動アーカイブ
await sandbox.setAutoArchiveInterval(60);
// 最大間隔を使用
await sandbox.setAutoArchiveInterval(0);
```

***

#### setAutoDeleteInterval()

```ts
setAutoDeleteInterval(interval: number): Promise<void>
```

サンドボックス（Daytonaが管理する隔離された一時的なコンピュート環境）の自動削除間隔を設定します。

指定した間隔のあいだ連続して停止状態が続くと、サンドボックスは自動的に削除されます。

**パラメータ**:

- `interval` _number_ - 連続停止後に自動削除されるまでの分数。
    自動削除を無効化するには負の値を設定します。停止と同時に即時削除するには 0 を設定します。
    既定では自動削除は無効です。


**戻り値**:

- `Promise<void>`

**例:**

```ts
// 1時間後に自動削除
await sandbox.setAutoDeleteInterval(60);
// 停止と同時に即時削除
await sandbox.setAutoDeleteInterval(0);
// 自動削除を無効化
await sandbox.setAutoDeleteInterval(-1);
```

***

#### setAutostopInterval()

```ts
setAutostopInterval(interval: number): Promise<void>
```

サンドボックスの自動停止間隔を設定します。

指定した間隔のあいだアイドル（新しいイベントなし）が続くと、サンドボックスは自動的に停止します。
イベントには、SDK を通じたサンドボックスへの状態変更や各種インタラクションが含まれます。
Sandbox Previews を用いたインタラクションは含まれません。

**パラメータ**:

- `interval` _number_ - 自動停止までの非アクティブ時間（分）。
    自動停止を無効化するには 0 を設定します。既定は 15 分です。


**戻り値**:

- `Promise<void>`

**スロー**:

- `DaytonaError` - interval が非負の整数でない場合

**例:**

```ts
// 1時間後に自動停止
await sandbox.setAutostopInterval(60);
// 自動停止を無効化
await sandbox.setAutostopInterval(0);
```

***

#### setLabels()

```ts
setLabels(labels: Record<string, string>): Promise<Record<string, string>>
```

サンドボックスにラベルを設定します。

ラベルは、サンドボックスの整理や識別に使用できるキーと値のペアです。

**パラメータ**:

- `labels` _Record\<string, string\>_ - サンドボックスのラベルを表すキーと値のペアの辞書


**戻り値**:

- `Promise<Record<string, string>>`

**例:**

```ts
// サンドボックスのラベルを設定
await sandbox.setLabels({
  project: 'my-project',
  environment: 'development',
  team: 'backend'
});
```

***

#### start()

```ts
start(timeout?: number): Promise<void>
```

サンドボックスを起動します。

このメソッドはサンドボックスを起動し、準備完了になるまで待機します。

**パラメータ**:

- `timeout?` _number = 60_ - 待機する最大時間（秒）。0 はタイムアウトなしを意味します。
    既定は 60 秒のタイムアウトです。


**戻り値**:

- `Promise<void>`

**スロー**:

- `DaytonaError` - サンドボックスの起動に失敗した場合、またはタイムアウトした場合

**例:**

```ts
const sandbox = await daytona.getCurrentSandbox('my-sandbox');
await sandbox.start(40);  // 最大 40 秒待機
console.log('Sandbox started successfully');
```

***

#### stop()

```ts
stop(timeout?: number): Promise<void>
```

サンドボックスを停止します。

このメソッドはサンドボックスを停止し、完全に停止するまで待機します。

**パラメータ**:

- `timeout?` _number = 60_ - 待機する最大時間（秒）。0 はタイムアウトなしを意味します。
    既定は 60 秒のタイムアウトです。


**戻り値**:

- `Promise<void>`

**例:**

```ts
const sandbox = await daytona.getCurrentSandbox('my-sandbox');
await sandbox.stop();
console.log('Sandbox stopped successfully');
```

***

#### waitUntilStarted()

```ts
waitUntilStarted(timeout?: number): Promise<void>
```

サンドボックスが 'started' 状態に到達するまで待機します。

このメソッドは、サンドボックスが 'started' 状態に到達するか
エラーが発生するまでステータスをポーリングします。

**パラメータ**:

- `timeout?` _number = 60_ - 待機する最大時間（秒）。0 はタイムアウトなしを意味します。
    既定は 60 秒です。


**戻り値**:

- `Promise<void>`

**スロー**:

- `DaytonaError` - サンドボックスがエラー状態になった場合、またはタイムアウト内に起動できなかった場合

***

#### waitUntilStopped()

```ts
waitUntilStopped(timeout?: number): Promise<void>
```

サンドボックスが 'stopped' 状態に到達するまで待機します。

このメソッドは、サンドボックスが 'stopped' 状態に到達するか
エラーが発生するまでステータスをポーリングします。

**パラメータ**:

- `timeout?` _number = 60_ - 待機する最大時間（秒）。0 はタイムアウトなしを意味します。
    既定は 60 秒です。


**戻り値**:

- `Promise<void>`

**スロー**:

- `DaytonaError` - サンドボックスがタイムアウト内に停止できなかった場合
## SandboxCodeToolbox

コードツールボックスが実装すべきメソッドを定義するインターフェース

### Methods

#### getRunCommand()

```ts
getRunCommand(code: string, params?: CodeRunParams): string
```

与えられたコードを実行するためのコマンドを生成します

**Parameters**:

- `code` _string_
- `params?` _CodeRunParams_


**Returns**:

- `string`

