# `Twilio.Flex.V1.ChannelService`
[🔗](https://github.com/jeffhuen/twilio_elixir/blob/main/lib/twilio/flex/v1/channel_service.ex#L2)

Flex chat channels

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

# `create`

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

Operation: `CreateChannel` | Tags: FlexV1Channel

## Required Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `ChatFriendlyName` | string | The chat channel's friendly name. |
| `ChatUserFriendlyName` | string | The chat participant's friendly name. |
| `FlexFlowSid` | string | The SID of the Flex Flow. |
| `Identity` | string | The `identity` value that uniquely identifies the new resource's chat User. |
## Optional Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `ChatUniqueName` | string | The chat channel's unique name. |
| `LongLived` | boolean | Whether to create the channel as long-lived. |
| `PreEngagementData` | string | The pre-engagement data. |
| `Target` | string | The Target Contact Identity, for example the phone number of an SMS. |
| `TaskAttributes` | string | The Task attributes to be added for the TaskRouter Task. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `TaskSid` | string | The SID of the TaskRouter Task. Only valid when integration type is `task`. `null` for integration types `studio` & `external` |

# `delete`

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

Operation: `DeleteChannel` | Tags: FlexV1Channel

# `fetch`

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

Operation: `FetchChannel` | Tags: FlexV1Channel

# `list`

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

Operation: `ListChannel` | Tags: FlexV1Channel

# `stream`

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

Stream:  (lazy auto-pagination).

---

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