# API Reference

This page provides an auto-generated summary of intake-esm’s API.
For more details and examples, refer to the relevant chapters in the main part of the documentation.

## ESM Datastore (`intake.open_esm_datastore`)

```{eval-rst}
.. autoclass:: intake_esm.core.esm_datastore
    :members:
    :noindex:
    :special-members: __getitem__, __contains__, __len__
```

## ESM DataSource

```{eval-rst}
.. autoclass:: intake_esm.source.ESMDataSource
    :members:
    :noindex:
    :special-members: __init__
```

## ESM Catalog

```{eval-rst}
.. autoclass:: intake_esm.cat.ESMCatalogModel
    :members:
    :noindex:
    :special-members: __init__
```

## Query Model

```{eval-rst}
.. autoclass:: intake_esm.cat.QueryModel
    :members:
    :noindex:
    :special-members: __init__
```

## Derived Variable Registry

```{eval-rst}
.. autoclass:: intake_esm.derived.DerivedVariableRegistry
    :members:
    :noindex:
    :special-members: __init__
```

## Derived Variable

```{eval-rst}
.. autoclass:: intake_esm.derived.DerivedVariable
    :members:
    :noindex:
    :special-members: __init__
```

## Frames Model

```{eval-rst}
.. autoclass:: intake_esm.cat.FramesModel
    :members:
    :noindex:
    :special-members: __init__
```

## Options for dataset attributes

```{eval-rst}
.. autoclass:: intake_esm.utils.set_options
    :noindex:
```
