# CloudWatch Events

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

## Prerequisites

The following required to run the aws-cloudwatch-events target connector:

* kubemq cluster
* aws account with cloudwatch-events active service (IAM Permission under EventBridge)
* kubemq-source deployment

## Configuration

cloudwatch-events 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 |
| region           | yes      | region                            | aws region                     |
| token            | no       | aws token ("default" empty string | aws token                      |

Example:

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

## Usage

### Put Target

Put Target:

| Metadata Key | Required | Description                         | Possible values                                   |
| ------------ | -------- | ----------------------------------- | ------------------------------------------------- |
| method       | yes      | type of method                      | "put\_targets"                                    |
| rule         | yes      | aws existing rule name              | "string"                                          |
| data         | yes      | Key value pair of target ARN and ID | `{"my_arn_id":"arn:aws:test:number:function:id"}` |

Example:

```javascript
{
  "metadata": {
    "method": "put_targets",
    "rule": "my_rule"
  },
  "data": "eyJteV9hcm5faWQiOiJhcm46YXdzOnRlc3Q6bnVtYmVyOmZ1bmN0aW9uOmlkIn0"
}
```

### List Event Buses

List Event Buses:

| Metadata Key | Required | Description           | Possible values |
| ------------ | -------- | --------------------- | --------------- |
| method       | yes      | type of method        | "list\_buses"   |
| limit        | no       | limit of return buses | "int"           |

Example:

```javascript
{
  "metadata": {
    "method": "list_buses",
    "limit": "1"
  },
  "data": null
}
```

### Send Event

Send Event:

| Metadata Key | Required | Description                          | Possible values                 |
| ------------ | -------- | ------------------------------------ | ------------------------------- |
| method       | yes      | type of method                       | "send\_event"                   |
| detail       | no       | general details on the event         | "string"                        |
| detail\_type | no       | event type                           | "string"                        |
| source       | no       | aws source to assign the message to  | "string"                        |
| data         | yes      | aws resources to assign the event to | slice of strings ("arn:string") |

Example:

```javascript
{
  "metadata": {
    "method": "send_event",
    "detail": "{ some detail }",
    "detail_type": "appRequestSubmitted",
    "source": "kubemq_testing"
  },
  "data": "WyJhcm46YXdzOnNpdGU6cmVnaW9uOmlkOmZ1bmN0aW9uOm15LWZ1bmN0aXNvbnMiXQ=="
}
```


---

# 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/cloudwatch-events.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.
