# Workflows

> SDK methods for the Workflows module, accessed via `soat.workflows`. See the [Workflows module docs](/docs/modules/workflows) for permissions and data model, and each method's REST page for the full request/response schema.

# Workflows

SDK methods for the Workflows module, accessed via `soat.workflows`. See the [Workflows module docs](/docs/modules/workflows) for permissions and data model, and each method's REST page for the full request/response schema.

### `soat.workflows.listWorkflows()`

List workflows

- Method: `GET`
- Path: `/api/v1/workflows`

```ts
await soat.workflows.listWorkflows({
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/workflows/list-workflows)

### `soat.workflows.createWorkflow()`

Create a workflow

- Method: `POST`
- Path: `/api/v1/workflows`

```ts
await soat.workflows.createWorkflow({
  body: { name, states, transitions, /* + optional */ },
});
```

→ [Request & response schema](/docs/api/workflows/create-workflow)

### `soat.workflows.getWorkflow()`

Get a workflow

- Method: `GET`
- Path: `/api/v1/workflows/{workflow_id}`

```ts
await soat.workflows.getWorkflow({
  path: { workflow_id },
});
```

→ [Request & response schema](/docs/api/workflows/get-workflow)

### `soat.workflows.updateWorkflow()`

Update a workflow

- Method: `PATCH`
- Path: `/api/v1/workflows/{workflow_id}`

```ts
await soat.workflows.updateWorkflow({
  path: { workflow_id },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/workflows/update-workflow)

### `soat.workflows.deleteWorkflow()`

Delete a workflow

- Method: `DELETE`
- Path: `/api/v1/workflows/{workflow_id}`

```ts
await soat.workflows.deleteWorkflow({
  path: { workflow_id },
});
```

→ [Request & response schema](/docs/api/workflows/delete-workflow)

### `soat.workflows.listWorkflowVersions()`

List a workflow's versions

- Method: `GET`
- Path: `/api/v1/workflows/{workflow_id}/versions`

```ts
await soat.workflows.listWorkflowVersions({
  path: { workflow_id },
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/workflows/list-workflow-versions)

### `soat.workflows.getWorkflowVersion()`

Fetch an archived workflow version

- Method: `GET`
- Path: `/api/v1/workflows/{workflow_id}/versions/{version}`

```ts
await soat.workflows.getWorkflowVersion({
  path: { workflow_id, version },
});
```

→ [Request & response schema](/docs/api/workflows/get-workflow-version)

### `soat.workflows.restoreWorkflowVersion()`

Restore an archived workflow state machine

- Method: `POST`
- Path: `/api/v1/workflows/{workflow_id}/versions/{version}/restore`

```ts
await soat.workflows.restoreWorkflowVersion({
  path: { workflow_id, version },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/workflows/restore-workflow-version)
