---
name: "Search::Elasticsearch::Client::1_0::Role::API"
section: "3pm"
platform: "linux"
package: "libsearch-elasticsearch-client-1-0-perl"
version: "6.81-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Search::Elasticsearch::Client::1_0::Role::API"
---

# Search::Elasticsearch::Client::1\_0::Role::API(3pm)

This class contains the spec for the Elasticsearch APIs

## NAME

Search::Elasticsearch::Client::1\_0::Role::API - This class contains the spec for the Elasticsearch APIs

## VERSION

version 6.81

## DESCRIPTION

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

```
    'index' => {
        body   => { required => 1 },
        doc    => "docs-index_",
        method => "POST",
        parts  => {
            id    => {},
            index => { required => 1 },
            type  => { required => 1 }
        },
        paths => [
            [   { id => 2, index => 0, type => 1 }, "{index}",
                "{type}", "{id}"
            ],
            [ { index => 0, type => 1 }, "{index}", "{type}" ],
        ],
        qs => {
            filter_path            => "list",
            op_type                => "enum",
            parent                 => "string",
            pipeline               => "string",
            refresh                => "enum",
            routing                => "string",
            timeout                => "time",
            timestamp              => "time",
            ttl                    => "time",
            version                => "number",
            version_type           => "enum",
            wait_for_active_shards => "string",
        },
    },
```

These definitions can be used by different Search::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

- •

  Search::Elasticsearch::Role::API

- •

  Search::Elasticsearch::Client::1\_0::Direct

## AUTHOR

Enrico Zimuel \<enrico.zimuel@elastic.co\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2020 by Elasticsearch BV.

This is free software, licensed under:

```
  The Apache License, Version 2.0, January 2004
```
