# `Twilio.Conversations.V1.Service.Conversation.ParticipantService`
[🔗](https://github.com/jeffhuen/twilio_elixir/blob/main/lib/twilio/conversations/v1/service/conversation/participant_service.ex#L2)

A Service Participant resource represents a member of the conversation within a specific service.

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

# `create`

```elixir
@spec create(Twilio.Client.t(), String.t(), String.t(), map(), keyword()) ::
  {:ok, Twilio.Resources.Conversations.V1.Service.Conversation.Participant.t()}
  | {:ok, map(), map()}
  | :ok
  | {:error, Twilio.Error.t()}
```

Add a new participant to the conversation in a specific service

Operation: `CreateServiceConversationParticipant` | Tags: ConversationsV1Participant

## Optional Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `Attributes` | string | An optional string metadata field you can use to store any data you wish. The string value must contain structurally valid JSON if specified.  **Note** that if the attributes are not set `{}` will be returned. |
| `DateCreated` | string (date-time) | The date on which this resource was created. |
| `DateUpdated` | string (date-time) | The date on which this resource was last updated. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `Identity` | string | A unique string identifier for the conversation participant as [Conversation User](https://www.twilio.com/docs/conversations/api/user-resource). This parameter is non-null if (and only if) the participant is using the [Conversation SDK](https://www.twilio.com/docs/conversations/sdk-overview) to communicate. Limited to 256 characters. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `MessagingBinding.Address` | string | The address of the participant's device, e.g. a phone or WhatsApp number. Together with the Proxy address, this determines a participant uniquely. This field (with `proxy_address`) is only null when the participant is interacting from an SDK endpoint (see the `identity` field). |
| `MessagingBinding.ProjectedAddress` | string | The address of the Twilio phone number that is used in Group MMS. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `MessagingBinding.ProxyAddress` | string | The address of the Twilio phone number (or WhatsApp number) that the participant is in contact with. This field, together with participant address, is only null when the participant is interacting from an SDK endpoint (see the `identity` field). |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `RoleSid` | string | The SID of a conversation-level [Role](https://www.twilio.com/docs/conversations/api/role-resource) to assign to the participant. |

# `delete`

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

Remove a participant from the conversation

Operation: `DeleteServiceConversationParticipant` | Tags: ConversationsV1Participant

# `fetch`

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

Fetch a participant of the conversation

Operation: `FetchServiceConversationParticipant` | Tags: ConversationsV1Participant

# `list`

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

Retrieve a list of all participants of the conversation

Operation: `ListServiceConversationParticipant` | Tags: ConversationsV1Participant

# `stream`

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

Stream: Retrieve a list of all participants of the conversation (lazy auto-pagination).

# `update`

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

Update an existing participant in the conversation

Operation: `UpdateServiceConversationParticipant` | Tags: ConversationsV1Participant

## Optional Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `Attributes` | string | An optional string metadata field you can use to store any data you wish. The string value must contain structurally valid JSON if specified.  **Note** that if the attributes are not set `{}` will be returned. |
| `DateCreated` | string (date-time) | The date on which this resource was created. |
| `DateUpdated` | string (date-time) | The date on which this resource was last updated. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `Identity` | string | A unique string identifier for the conversation participant as [Conversation User](https://www.twilio.com/docs/conversations/api/user-resource). This parameter is non-null if (and only if) the participant is using the [Conversation SDK](https://www.twilio.com/docs/conversations/sdk-overview) to communicate. Limited to 256 characters. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `LastReadMessageIndex` | integer | Index of last “read” message in the [Conversation](https://www.twilio.com/docs/conversations/api/conversation-resource) for the Participant. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `LastReadTimestamp` | string | Timestamp of last “read” message in the [Conversation](https://www.twilio.com/docs/conversations/api/conversation-resource) for the Participant. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `MessagingBinding.ProjectedAddress` | string | The address of the Twilio phone number that is used in Group MMS. 'null' value will remove it. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `MessagingBinding.ProxyAddress` | string | The address of the Twilio phone number that the participant is in contact with. 'null' value will remove it. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `RoleSid` | string | The SID of a conversation-level [Role](https://www.twilio.com/docs/conversations/api/role-resource) to assign to the participant. |

---

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