# Workspaces

## Create

`client.Admin.Workspaces.New(ctx, body) (*AdminWorkspaceNewResponse, error)`

**post** `/compute/v1/admin/workspaces`

Create a workspace

### Parameters

- `body AdminWorkspaceNewParams`

  - `DataRetention param.Field[AdminWorkspaceNewParamsDataRetention]`

    How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

    - `Unit AdminWorkspaceNewParamsDataRetentionUnit`

      Time unit for retention duration

      - `const AdminWorkspaceNewParamsDataRetentionUnitHours AdminWorkspaceNewParamsDataRetentionUnit = "hours"`

      - `const AdminWorkspaceNewParamsDataRetentionUnitDays AdminWorkspaceNewParamsDataRetentionUnit = "days"`

    - `Value int64`

      Duration value. Maximum retention is 14 days (or 336 hours).

  - `Name param.Field[string]`

    Workspace name

### Returns

- `type AdminWorkspaceNewResponse struct{…}`

  - `ID string`

    Workspace ID

  - `ArchivedAt Time`

  - `CreatedAt Time`

  - `DataRetention AdminWorkspaceNewResponseDataRetention`

    How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

    - `Unit AdminWorkspaceNewResponseDataRetentionUnit`

      Time unit for retention duration

      - `const AdminWorkspaceNewResponseDataRetentionUnitHours AdminWorkspaceNewResponseDataRetentionUnit = "hours"`

      - `const AdminWorkspaceNewResponseDataRetentionUnitDays AdminWorkspaceNewResponseDataRetentionUnit = "days"`

    - `Value int64`

      Duration value. Maximum retention is 14 days (or 336 hours).

  - `IsDefault bool`

    Whether this is the default workspace

  - `Name string`

    Workspace name

  - `UpdatedAt Time`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  workspace, err := client.Admin.Workspaces.New(context.TODO(), boltzapi.AdminWorkspaceNewParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", workspace.ID)
}
```

## List

`client.Admin.Workspaces.List(ctx, query) (*CursorPage[AdminWorkspaceListResponse], error)`

**get** `/compute/v1/admin/workspaces`

List workspaces

### Parameters

- `query AdminWorkspaceListParams`

  - `AfterID param.Field[string]`

    Return results after this ID

  - `BeforeID param.Field[string]`

    Return results before this ID

  - `Limit param.Field[int64]`

    Max items to return

### Returns

- `type AdminWorkspaceListResponse struct{…}`

  - `ID string`

    Workspace ID

  - `ArchivedAt Time`

  - `CreatedAt Time`

  - `DataRetention AdminWorkspaceListResponseDataRetention`

    How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

    - `Unit AdminWorkspaceListResponseDataRetentionUnit`

      Time unit for retention duration

      - `const AdminWorkspaceListResponseDataRetentionUnitHours AdminWorkspaceListResponseDataRetentionUnit = "hours"`

      - `const AdminWorkspaceListResponseDataRetentionUnitDays AdminWorkspaceListResponseDataRetentionUnit = "days"`

    - `Value int64`

      Duration value. Maximum retention is 14 days (or 336 hours).

  - `IsDefault bool`

    Whether this is the default workspace

  - `Name string`

    Workspace name

  - `UpdatedAt Time`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.Admin.Workspaces.List(context.TODO(), boltzapi.AdminWorkspaceListParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

## Retrieve

`client.Admin.Workspaces.Get(ctx, workspaceID) (*AdminWorkspaceGetResponse, error)`

**get** `/compute/v1/admin/workspaces/{workspace_id}`

Get a workspace

### Parameters

- `workspaceID string`

### Returns

- `type AdminWorkspaceGetResponse struct{…}`

  - `ID string`

    Workspace ID

  - `ArchivedAt Time`

  - `CreatedAt Time`

  - `DataRetention AdminWorkspaceGetResponseDataRetention`

    How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

    - `Unit AdminWorkspaceGetResponseDataRetentionUnit`

      Time unit for retention duration

      - `const AdminWorkspaceGetResponseDataRetentionUnitHours AdminWorkspaceGetResponseDataRetentionUnit = "hours"`

      - `const AdminWorkspaceGetResponseDataRetentionUnitDays AdminWorkspaceGetResponseDataRetentionUnit = "days"`

    - `Value int64`

      Duration value. Maximum retention is 14 days (or 336 hours).

  - `IsDefault bool`

    Whether this is the default workspace

  - `Name string`

    Workspace name

  - `UpdatedAt Time`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  workspace, err := client.Admin.Workspaces.Get(context.TODO(), "workspace_id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", workspace.ID)
}
```

## Update

`client.Admin.Workspaces.Update(ctx, workspaceID, body) (*AdminWorkspaceUpdateResponse, error)`

**post** `/compute/v1/admin/workspaces/{workspace_id}`

Update a workspace

### Parameters

- `workspaceID string`

- `body AdminWorkspaceUpdateParams`

  - `DataRetention param.Field[AdminWorkspaceUpdateParamsDataRetention]`

    How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

    - `Unit AdminWorkspaceUpdateParamsDataRetentionUnit`

      Time unit for retention duration

      - `const AdminWorkspaceUpdateParamsDataRetentionUnitHours AdminWorkspaceUpdateParamsDataRetentionUnit = "hours"`

      - `const AdminWorkspaceUpdateParamsDataRetentionUnitDays AdminWorkspaceUpdateParamsDataRetentionUnit = "days"`

    - `Value int64`

      Duration value. Maximum retention is 14 days (or 336 hours).

  - `Name param.Field[string]`

### Returns

- `type AdminWorkspaceUpdateResponse struct{…}`

  - `ID string`

    Workspace ID

  - `ArchivedAt Time`

  - `CreatedAt Time`

  - `DataRetention AdminWorkspaceUpdateResponseDataRetention`

    How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

    - `Unit AdminWorkspaceUpdateResponseDataRetentionUnit`

      Time unit for retention duration

      - `const AdminWorkspaceUpdateResponseDataRetentionUnitHours AdminWorkspaceUpdateResponseDataRetentionUnit = "hours"`

      - `const AdminWorkspaceUpdateResponseDataRetentionUnitDays AdminWorkspaceUpdateResponseDataRetentionUnit = "days"`

    - `Value int64`

      Duration value. Maximum retention is 14 days (or 336 hours).

  - `IsDefault bool`

    Whether this is the default workspace

  - `Name string`

    Workspace name

  - `UpdatedAt Time`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  workspace, err := client.Admin.Workspaces.Update(
    context.TODO(),
    "workspace_id",
    boltzapi.AdminWorkspaceUpdateParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", workspace.ID)
}
```

## Archive

`client.Admin.Workspaces.Archive(ctx, workspaceID) (*AdminWorkspaceArchiveResponse, error)`

**post** `/compute/v1/admin/workspaces/{workspace_id}/archive`

Archives a workspace and deactivates all its API keys. This action is irreversible.

### Parameters

- `workspaceID string`

### Returns

- `type AdminWorkspaceArchiveResponse struct{…}`

  - `ID string`

    Workspace ID

  - `ArchivedAt Time`

  - `CreatedAt Time`

  - `DataRetention AdminWorkspaceArchiveResponseDataRetention`

    How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

    - `Unit AdminWorkspaceArchiveResponseDataRetentionUnit`

      Time unit for retention duration

      - `const AdminWorkspaceArchiveResponseDataRetentionUnitHours AdminWorkspaceArchiveResponseDataRetentionUnit = "hours"`

      - `const AdminWorkspaceArchiveResponseDataRetentionUnitDays AdminWorkspaceArchiveResponseDataRetentionUnit = "days"`

    - `Value int64`

      Duration value. Maximum retention is 14 days (or 336 hours).

  - `IsDefault bool`

    Whether this is the default workspace

  - `Name string`

    Workspace name

  - `UpdatedAt Time`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.Admin.Workspaces.Archive(context.TODO(), "workspace_id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```
