# API Reference

The pyinfra API is designed like this:

- A set of classes storing state
    - `pyinfra.api.State`
    - `pyinfra.api.Inventory`
    - `pyinfra.api.Host`
    - `pyinfra.api.Config`
- A set of modules that implement functionality:
    - `operation.py` & `operations.py`
    - `ssh.py`
    - `facts.py`

Core API

- pyinfra.api.attrs module
- pyinfra.api.config module
- pyinfra.api.connect module
- pyinfra.api.connectors package
- pyinfra.api.connectors.local module
- pyinfra.api.connectors.ssh module
- pyinfra.api.deploy module
- pyinfra.api.exceptions module
- pyinfra.api.facts module
- pyinfra.api.host module
- pyinfra.api.inventory module
- pyinfra.api.operation module
- pyinfra.api.operations module
- pyinfra.api.state module
- pyinfra.api.util module
- pyinfra.hook module
- pyinfra.local module
- pyinfra.pseudo_modules module