# Workflows Client

Bases: `BaseRestClient`

The workflows client is a client for managing workflows programmatically within Hatchet.

Note that workflows are the declaration, _not_ the individual runs. If you're looking for runs, use the `RunsClient` instead.

Methods:

| Name              | Description                                                                                   |
| ----------------- | --------------------------------------------------------------------------------------------- |
| `aio_delete`      | Permanently delete a workflow.                                                                |
| `aio_get`         | Get a workflow by its ID.                                                                     |
| `aio_get_version` | Get a workflow version by the workflow ID and an optional version.                            |
| `aio_list`        | List all workflows in the tenant determined by the client config that match optional filters. |
| `delete`          | Permanently delete a workflow.                                                                |
| `get`             | Get a workflow by its ID.                                                                     |
| `get_version`     | Get a workflow version by the workflow ID and an optional version.                            |
| `list`            | List all workflows in the tenant determined by the client config that match optional filters. |

### Functions

#### `aio_delete`

Permanently delete a workflow.

**DANGEROUS: This will delete a workflow and all of its data**

Parameters:

| Name          | Type  | Description                       | Default    |
| ------------- | ----- | --------------------------------- | ---------- |
| `workflow_id` | `str` | The ID of the workflow to delete. | _required_ |

Returns:

| Type   | Description |
| ------ | ----------- |
| `None` | None        |

#### `aio_get`

Get a workflow by its ID.

Parameters:

| Name          | Type  | Description                         | Default    |
| ------------- | ----- | ----------------------------------- | ---------- |
| `workflow_id` | `str` | The ID of the workflow to retrieve. | _required_ |

Returns:

| Type       | Description   |
| ---------- | ------------- |
| `Workflow` | The workflow. |

#### `aio_get_version`

Get a workflow version by the workflow ID and an optional version.

Parameters:

| Name          | Type          | Description                                                                       | Default    |
| ------------- | ------------- | --------------------------------------------------------------------------------- | ---------- |
| `workflow_id` | `str`         | The ID of the workflow to retrieve the version for.                               | _required_ |
| `version`     | `str \| None` | The version of the workflow to retrieve. If None, the latest version is returned. | `None`     |

Returns:

| Type              | Description           |
| ----------------- | --------------------- |
| `WorkflowVersion` | The workflow version. |

#### `aio_list`

List all workflows in the tenant determined by the client config that match optional filters.

Parameters:

| Name            | Type          | Description                            | Default |
| --------------- | ------------- | -------------------------------------- | ------- |
| `workflow_name` | `str \| None` | The name of the workflow to filter by. | `None`  |
| `limit`         | `int \| None` | The maximum number of items to return. | `None`  |
| `offset`        | `int \| None` | The offset to start the list from.     | `None`  |

Returns:

| Type           | Description          |
| -------------- | -------------------- |
| `WorkflowList` | A list of workflows. |

#### `delete`

Permanently delete a workflow.

**DANGEROUS: This will delete a workflow and all of its data**

Parameters:

| Name          | Type  | Description                       | Default    |
| ------------- | ----- | --------------------------------- | ---------- |
| `workflow_id` | `str` | The ID of the workflow to delete. | _required_ |

Returns:

| Type   | Description |
| ------ | ----------- |
| `None` | None        |

#### `get`

Get a workflow by its ID.

Parameters:

| Name          | Type  | Description                         | Default    |
| ------------- | ----- | ----------------------------------- | ---------- |
| `workflow_id` | `str` | The ID of the workflow to retrieve. | _required_ |

Returns:

| Type       | Description   |
| ---------- | ------------- |
| `Workflow` | The workflow. |

#### `get_version`

Get a workflow version by the workflow ID and an optional version.

Parameters:

| Name          | Type          | Description                                                                       | Default    |
| ------------- | ------------- | --------------------------------------------------------------------------------- | ---------- |
| `workflow_id` | `str`         | The ID of the workflow to retrieve the version for.                               | _required_ |
| `version`     | `str \| None` | The version of the workflow to retrieve. If None, the latest version is returned. | `None`     |

Returns:

| Type              | Description           |
| ----------------- | --------------------- |
| `WorkflowVersion` | The workflow version. |

#### `list`

List all workflows in the tenant determined by the client config that match optional filters.

Parameters:

| Name            | Type          | Description                            | Default |
| --------------- | ------------- | -------------------------------------- | ------- |
| `workflow_name` | `str \| None` | The name of the workflow to filter by. | `None`  |
| `limit`         | `int \| None` | The maximum number of items to return. | `None`  |
| `offset`        | `int \| None` | The offset to start the list from.     | `None`  |

Returns:

| Type           | Description          |
| -------------- | -------------------- |
| `WorkflowList` | A list of workflows. |
