# API Reference

## Discover


```{module} kasa
```

```{eval-rst}
.. autoclass:: Discover
    :members:
```

## Device


```{eval-rst}
.. autoclass:: Device
    :members:
    :undoc-members:
```


## Device Config


```{eval-rst}
.. autoclass:: Credentials
    :members:
    :undoc-members:
    :noindex:
```


```{eval-rst}
.. autoclass:: DeviceConfig
    :members:
    :undoc-members:
```


```{eval-rst}
.. autoclass:: DeviceFamily
    :members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: DeviceConnectionParameters
    :members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: DeviceEncryptionType
    :members:
    :undoc-members:
```

## Modules and Features

```{eval-rst}
.. autoclass:: Module
    :noindex:
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: Feature
    :noindex:
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. automodule:: kasa.interfaces
    :noindex:
    :members:
    :inherited-members:
    :undoc-members:
```

## Protocols and transports

```{eval-rst}
.. autoclass:: kasa.protocols.BaseProtocol
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.protocols.IotProtocol
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.protocols.SmartProtocol
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.transports.BaseTransport
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.transports.XorTransport
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.transports.KlapTransport
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.transports.KlapTransportV2
    :members:
    :inherited-members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.transports.AesTransport
    :members:
    :inherited-members:
    :undoc-members:
```

## Errors and exceptions

```{eval-rst}
.. autoclass:: kasa.exceptions.KasaException
    :members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.exceptions.DeviceError
    :members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.exceptions.AuthenticationError
    :members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.exceptions.UnsupportedDeviceError
    :members:
    :undoc-members:
```

```{eval-rst}
.. autoclass:: kasa.exceptions.TimeoutError
    :members:
    :undoc-members: