# `Polarex.Events`
[🔗](https://github.com/giusdp/polarex/blob/main/lib/polarex/operations/events.ex#L1)

Provides API endpoints related to events

# `events_get`

```elixir
@spec events_get(id :: String.t(), opts :: keyword()) ::
  {:ok, map() | Polarex.UserEvent.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}
```

Get Event

Get an event by ID.

**Scopes**: `events:read` `events:write`

# `events_ingest`

```elixir
@spec events_ingest(body :: Polarex.EventsIngest.t(), opts :: keyword()) ::
  {:ok, Polarex.EventsIngestResponse.t()}
  | {:error, Polarex.HTTPValidationError.t()}
```

Ingest Events

Ingest batch of events.

**Scopes**: `events:write`

## Request Body

**Content Types**: `application/json`

# `events_list`

```elixir
@spec events_list(opts :: keyword()) ::
  {:ok,
   Polarex.ListResourceEvent.t()
   | Polarex.ListResourceWithCursorPaginationEvent.t()}
  | {:error, Polarex.HTTPValidationError.t()}
```

List Events

List events.

**Scopes**: `events:read` `events:write`

## Options

  * `filter`: Filter events following filter clauses. JSON string following the same schema a meter filter clause. 
  * `start_timestamp`: Filter events after this timestamp.
  * `end_timestamp`: Filter events before this timestamp.
  * `organization_id`: Filter by organization ID.
  * `customer_id`: Filter by customer ID.
  * `external_customer_id`: Filter by external customer ID.
  * `meter_id`: Filter by a meter filter clause.
  * `name`: Filter by event name.
  * `source`: Filter by event source.
  * `query`: Query to filter events.
  * `parent_id`: When combined with depth, use this event as the anchor instead of root events.
  * `depth`: Fetch descendants up to this depth. When set: 0=root events only, 1=roots+children, etc. Max 5. When not set, returns all events.
  * `page`: Page number, defaults to 1.
  * `limit`: Size of a page, defaults to 10. Maximum is 100.
  * `sorting`: Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign `-` before the criteria name to sort by descending order.
  * `metadata`: Filter by metadata key-value pairs. It uses the `deepObject` style, e.g. `?metadata[key]=value`.

# `events_list_names`

```elixir
@spec events_list_names(opts :: keyword()) ::
  {:ok, Polarex.ListResourceEventName.t()}
  | {:error, Polarex.HTTPValidationError.t()}
```

List Event Names

List event names.

**Scopes**: `events:read` `events:write`

## Options

  * `organization_id`: Filter by organization ID.
  * `customer_id`: Filter by customer ID.
  * `external_customer_id`: Filter by external customer ID.
  * `source`: Filter by event source.
  * `query`: Query to filter event names.
  * `page`: Page number, defaults to 1.
  * `limit`: Size of a page, defaults to 10. Maximum is 100.
  * `sorting`: Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign `-` before the criteria name to sort by descending order.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
