# Daytona (/docs/ruby-sdk/daytona)

## Daytona [#daytona]

Daytona class for Daytona SDK.

### Constructors [#constructors]

#### new Daytona() [#new-daytona]

```ruby
def initialize(config = Config.new)

```

**Parameters**:

- `config` _Daytona:Config_ - Configuration options. Defaults to Daytona::Config.new

**Returns**:

- `Daytona` - a new instance of Daytona

### Methods [#methods]

#### config() [#config]

```ruby
def config()

```

**Returns**:

- `Daytona:Config`

#### api_client() [#api_client]

```ruby
def api_client()

```

**Returns**:

- `DaytonaApiClient`

#### sandbox_api() [#sandbox_api]

```ruby
def sandbox_api()

```

**Returns**:

- `DaytonaApiClient:SandboxApi`

#### volume() [#volume]

```ruby
def volume()

```

**Returns**:

- `Daytona:VolumeService`

#### secret() [#secret]

```ruby
def secret()

```

**Returns**:

- `Daytona:SecretService`

#### warm_pool() [#warm_pool]

```ruby
def warm_pool()

```

**Returns**:

- `Daytona:WarmPoolService`

#### object_storage_api() [#object_storage_api]

```ruby
def object_storage_api()

```

**Returns**:

- `DaytonaApiClient:ObjectStorageApi`

#### snapshots_api() [#snapshots_api]

```ruby
def snapshots_api()

```

**Returns**:

- `DaytonaApiClient:SnapshotsApi`

#### snapshot() [#snapshot]

```ruby
def snapshot()

```

**Returns**:

- `Daytona:SnapshotService`

#### close() [#close]

```ruby
def close()

```

Shuts down OTel providers, flushing any pending telemetry data.

**Returns**:

- `void`

#### create() [#create]

```ruby
def create(params = nil, on_snapshot_create_logs: nil)

```

Creates a sandbox with the specified parameters

**Parameters**:

- `params` _Daytona:CreateSandboxFromSnapshotParams, Daytona:CreateSandboxFromImageParams, Nil_ - Sandbox creation parameters

**Returns**:

- `Daytona:Sandbox` - The created sandbox

**Raises**:

- `Daytona:Sdk:Error` - If auto_stop_interval, auto_pause_interval, auto_archive_interval, or ttl_minutes is negative,
if queue_timeout is not a positive integer, or if auto_stop_interval and auto_pause_interval are both non-zero

#### delete() [#delete]

```ruby
def delete(sandbox, wait: false)

```

Deletes a Sandbox.

**Parameters**:

- `sandbox` _Daytona:Sandbox_ -
- `wait` _Boolean_ - When +true+, block until the Sandbox is destroyed.

**Returns**:

- `void`

#### get() [#get]

```ruby
def get(id)

```

Gets a Sandbox by its ID.

**Parameters**:

- `id` _String_ -

**Returns**:

- `Daytona:Sandbox`

**Raises**:

- `Daytona:Sdk:Error` -

#### list() [#list]

```ruby
def list(query = nil)

```

Iterates over Sandboxes matching the given query.

**Parameters**:

- `query` _Daytona:ListSandboxesQuery, nil_ - Optional filters, sorting, and per-page size.

**Returns**:

- `Enumerator\<Daytona:Sandbox\>`

**Raises**:

- `Daytona:Sdk:Error` -

**Examples:**

```ruby
daytona.list(Daytona::ListSandboxesQuery.new(labels: { 'env' => 'dev' })).each do |sandbox|
  puts sandbox.id
end

```

#### start() [#start]

```ruby
def start(sandbox, timeout = Sandbox::DEFAULT_TIMEOUT)

```

Starts a Sandbox and waits for it to be ready.

**Parameters**:

- `sandbox` _Daytona:Sandbox_ -
- `timeout` _Numeric_ - Maximum wait time in seconds (defaults to 60 s).

**Returns**:

- `void`

#### stop() [#stop]

```ruby
def stop(sandbox, timeout = Sandbox::DEFAULT_TIMEOUT)

```

Stops a Sandbox and waits for it to be stopped.

**Parameters**:

- `sandbox` _Daytona:Sandbox_ -
- `timeout` _Numeric_ - Maximum wait time in seconds (defaults to 60 s).

**Returns**:

- `void`
