# Elastic Search

Kubemq aws-elasticsearch target connector allows services using kubemq server to access aws elasticsearch service.

## Prerequisites

The following required to run the aws-elasticsearch target connector:

* kubemq cluster
* aws account with elasticsearch active service -elastic service with an active domain
* kubemq-source deployment

## Configuration

aws-elasticsearch target connector configuration properties:

| Properties Key   | Required | Description                       | Example                        |
| ---------------- | -------- | --------------------------------- | ------------------------------ |
| aws\_key         | yes      | aws key                           | aws key supplied by aws        |
| aws\_secret\_key | yes      | aws secret key                    | aws secret key supplied by aws |
| token            | no       | aws token ("default" empty string | aws token                      |

Example:

```yaml
bindings:
  - name: kubemq-query-aws-elasticsearch
    source:
      kind: kubemq.query
      name: kubemq-query
      properties:
        address: "kubemq-cluster:50000"
        client_id: "kubemq-query-aws-elasticsearch-connector"
        auth_token: ""
        channel: "query.aws.elasticsearch"
        group:   ""
        auto_reconnect: "true"
        reconnect_interval_seconds: "1"
        max_reconnects: "0"
    target:
      kind: aws.elasticsearch
      name: aws-elasticsearch
      properties:
        aws_key: "id"
        aws_secret_key: 'json'
        token: ""
```

## Usage

### Sign Message

Sign Message :

| Metadata Key | Required           | Description                             | Possible values                        |
| ------------ | ------------------ | --------------------------------------- | -------------------------------------- |
| method       | yes                | type of HTTP method                     | "GET", "POST","PUT","DELETE","OPTIONS" |
| region       | yes                | aws region associated with domain       | "region"                               |
| json         | yes (unless "GET") | json body to send with the http request | "list"                                 |
| domain       | yes                | elastic domain to assign the request    | "list"                                 |
| index        | yes                | name of the elastic index               | "list"                                 |
| endpoint     | yes                | aws domain end point                    | "list"                                 |
| service      | no(Default "es"    | type of service                         | "list"                                 |
| id           | yes                | Message ID                              | "list"                                 |

Example:

```javascript
{
  "metadata": {
    "method": "GET",
    "region": "us-west-2",
    "domain": "https://my-domain-12345asdfg.us-west-2.es.amazonaws.com",
    "index": "myindex",
    "endpoint": "https://my-domain-12345asdfg.us-west-2.es.amazonaws.com/my/end_point",
    "service": "es",
    "id": "123124"
  },
  "data": null
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kubemq.io/configuration/connectors/kubemq-targets/aws/elasticsearch.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
