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.
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');