> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encord.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Beta.workflow v3.tasks

Native tasks, targets and assignment metadata.

## Target Objects

```python theme={"dark"}
@dataclass(frozen=True)
class Target()
```

Target identity and scope, without labels, media or subset contents.

## DataUnitTarget Objects

```python theme={"dark"}
@dataclass(frozen=True)
class DataUnitTarget(Target)
```

An entire data unit, including a data group.

## DataUnitSliceTarget Objects

```python theme={"dark"}
@dataclass(frozen=True)
class DataUnitSliceTarget(Target)
```

A named slice of one data unit; range contents are not embedded.

## DatasetTarget Objects

```python theme={"dark"}
@dataclass(frozen=True)
class DatasetTarget(Target)
```

A whole dataset, without a single data-unit identifier.

## DataGroupSubsetTarget Objects

```python theme={"dark"}
@dataclass(frozen=True)
class DataGroupSubsetTarget(Target)
```

A named subset of a data group; member contents are not embedded.

## DatasetSubsetTarget Objects

```python theme={"dark"}
@dataclass(frozen=True)
class DatasetSubsetTarget(Target)
```

A named dataset subset; member contents are not embedded.

## UnknownTarget Objects

```python theme={"dark"}
@dataclass(frozen=True)
class UnknownTarget(Target)
```

An unfamiliar target type; specialized access may require an SDK upgrade.

## Assignment Objects

```python theme={"dark"}
@dataclass(frozen=True)
class Assignment()
```

User assignment information, separate from task lifecycle.

## Task Objects

```python theme={"dark"}
@dataclass(frozen=True)
class Task()
```

One operation on a target at a stage, identified separately from the target.

## ExternalTask Objects

```python theme={"dark"}
@dataclass(frozen=True)
class ExternalTask(Task)
```

A task at an External stage.

#### submit

```python theme={"dark"}
def submit(*,
           pathway_id: Optional[Union[UUID, str]] = None,
           pathway_name: Optional[str] = None) -> None
```

Submit an entered External task, optionally selecting an outgoing pathway.

Select an outgoing pathway by ID or exact, case-sensitive name, not both.
With neither supplied, the stage must have exactly one outgoing pathway.
Requires project management access. Success returns None and leaves this
snapshot unchanged. A stale task raises StaleTaskError.
Requests are not replayed after sending; a transport failure may leave
the outcome uncertain. Backend validation determines action eligibility.

## ManualTask Objects

```python theme={"dark"}
@dataclass(frozen=True)
class ManualTask(Task)
```

A task supporting manual assignment and release.

#### assign

```python theme={"dark"}
def assign(assignee: str) -> None
```

Assign this task to an eligible user by email, leaving this snapshot unchanged.

#### release

```python theme={"dark"}
def release() -> None
```

Release this task's current assignment and claim without completing or moving it.

Requires project management access and acts on the current assignment, not this snapshot's holder.
Releasing an unassigned task succeeds and clears any claim.
Success leaves this snapshot unchanged.

## AnnotationTask Objects

```python theme={"dark"}
@dataclass(frozen=True)
class AnnotationTask(ManualTask)
```

A task at an Annotation stage.

#### submit

```python theme={"dark"}
def submit(*,
           pathway_id: Optional[Union[UUID, str]] = None,
           pathway_name: Optional[str] = None,
           comment: Optional[str] = None) -> None
```

Submit saved work through an outgoing pathway, leaving this snapshot unchanged.

Select by ID or exact name, or omit both when the stage has exactly one outgoing pathway.
Backend validation and permissions apply. Sent requests are not replayed.

## ReviewTask Objects

```python theme={"dark"}
@dataclass(frozen=True)
class ReviewTask(ManualTask)
```

A task at a Review stage.

#### submit

```python theme={"dark"}
def submit(*,
           pathway_id: Optional[Union[UUID, str]] = None,
           pathway_name: Optional[str] = None,
           comment: Optional[str] = None) -> None
```

Submit through an outgoing pathway without changing individual label decisions.

Native permissions and pathway rules apply. Success returns None and leaves
this snapshot unchanged. Sent requests are not replayed.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.