- DESCRIPTION
- METHODS
  - `api()`
- SEE ALSO

# DESCRIPTION

All of the Elasticsearch APIs are defined in this role. The example given below is the definition for the "index()" in Elasticsearch::Client::Direct method:

        'index' => {
            body => {
                desc     => 'The document',
                required => 1
            },
            doc    => '/api/index_/',
            method => 'PUT',
            path   => '{index}/{type}/{id|blank}',
            qs     => [
                'consistency', 'op_type',     'parent',  'percolate',
                'refresh',     'replication', 'routing', 'timeout',
                'timestamp',   'ttl',         'version', 'version_type'
            ],
        },

These definitions can be used by different Elasticsearch::Role::Client implementations to provide distinct user interfaces.

# METHODS

## `api()`

        $defn = $api->api($name);

The only method in this class is the `api()` method which takes the name of the action and returns its definition. Actions in the `indices` or `cluster` namespace use the namespace as a prefix, eg:

        $defn = $e->api('indices.create');
        $defn = $e->api('cluster.node_stats');

# SEE ALSO

- Elasticsearch::Util::API::Path

- Elasticsearch::Util::API::QS

- Elasticsearch::Client::Direct