## Action


One store-writing step in a [Plan](Plan.md#tether.Plan).


Usage

``` python
Action(
    op,
    key="",
    kind="",
    target="",
    detail="",
    params=dict(),
)
```


## Parameter Attributes


`op: str`  
[pin](testing.ObjectBackend.md#tether.testing.ObjectBackend.pin), `record`, [fork](testing.ObjectBackend.md#tether.testing.ObjectBackend.fork), `defer-fork`, `reuse`, `adopt`, [trunk](RepoConfig.md#tether.RepoConfig.trunk), `refuse`, [unpin](testing.ObjectBackend.md#tether.testing.ObjectBackend.unpin), `keep-pin`, `delete-branch`, `keep-branch`, `forget-working-ref`, `delete-listing`, `fast-forward`, [merge](testing.ObjectBackend.md#tether.testing.ObjectBackend.merge), [add](testing.ObjectDiff.md#tether.testing.ObjectDiff.add), `update`, `remove`, `upsert`, `repin`, `refork`, or `vcs-commit`.

`key: str = ``""`  
Object key the action concerns (empty for repository-level steps).

`kind: str = ``""`  
Backend kind.

`target: str = ``""`  
Native ref / branch / file the action creates, deletes, or points at.

`detail: str = ``""`  
Human-readable explanation.

`params: dict[str, Any] = dict()`  
Machine-readable inputs (state, pin id, source, …) used by apply.
