# `Twilio.Events.V1.SinkService`
[🔗](https://github.com/jeffhuen/twilio_elixir/blob/main/lib/twilio/events/v1/sink_service.ex#L2)

Sink destination to send events to

Operations: `list`, `create`, `fetch`, `update`, `delete`

# `create`

```elixir
@spec create(Twilio.Client.t(), map(), keyword()) ::
  {:ok, Twilio.Resources.Events.V1.Sink.t()}
  | {:ok, map(), map()}
  | :ok
  | {:error, Twilio.Error.t()}
```

Create a new Sink

Operation: `CreateSink` | Tags: EventsV1Sink

## Required Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `Description` | string | A human readable description for the Sink **This value should not contain PII.** |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `SinkConfiguration` | string | The information required for Twilio to connect to the provided Sink encoded as JSON. |
| `SinkType` | string |  Values: `kinesis`, `webhook`, `segment`, `email` |

# `delete`

```elixir
@spec delete(Twilio.Client.t(), String.t(), keyword()) ::
  {:ok, map()} | {:ok, map(), map()} | :ok | {:error, Twilio.Error.t()}
```

Delete a specific Sink.

Operation: `DeleteSink` | Tags: EventsV1Sink

# `fetch`

```elixir
@spec fetch(Twilio.Client.t(), String.t(), keyword()) ::
  {:ok, Twilio.Resources.Events.V1.Sink.t()}
  | {:ok, map(), map()}
  | :ok
  | {:error, Twilio.Error.t()}
```

Fetch a specific Sink.

Operation: `FetchSink` | Tags: EventsV1Sink

# `list`

```elixir
@spec list(Twilio.Client.t(), map(), keyword()) ::
  {:ok, Twilio.Page.t()}
  | {:ok, map(), map()}
  | :ok
  | {:error, Twilio.Error.t()}
```

Retrieve a paginated list of Sinks belonging to the account used to make the request.

Operation: `ListSink` | Tags: EventsV1Sink

## Query Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `InUse` | boolean | A boolean query parameter filtering the results to return sinks used/not used by a subscription. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `Status` | string | A String query parameter filtering the results by status `initialized`, `validating`, `active` or `failed`. |

# `stream`

```elixir
@spec stream(Twilio.Client.t(), map(), keyword()) :: Enumerable.t()
```

Stream: Retrieve a paginated list of Sinks belonging to the account used to make the request. (lazy auto-pagination).

# `update`

```elixir
@spec update(Twilio.Client.t(), String.t(), map(), keyword()) ::
  {:ok, Twilio.Resources.Events.V1.Sink.t()}
  | {:ok, map(), map()}
  | :ok
  | {:error, Twilio.Error.t()}
```

Update a specific Sink

Operation: `UpdateSink` | Tags: EventsV1Sink

## Required Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `Description` | string | A human readable description for the Sink **This value should not contain PII.** |

---

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