# `Twilio.Memory.V1.Store.Profile.IdentifierService`
[🔗](https://github.com/jeffhuen/twilio_elixir/blob/main/lib/twilio/memory/v1/store/profile/identifier_service.ex#L2)

Service for Identifier API operations.

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

# `create`

```elixir
@spec create(Twilio.Client.t(), String.t(), String.t(), map(), keyword()) ::
  {:ok, Twilio.Resources.Memory.V1.Store.Profile.Identifier.t()}
  | {:ok, map(), map()}
  | :ok
  | {:error, Twilio.Error.t()}
```

# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
Asynchronously attach a new identifier value to a profile. When multiple values exist for an `idType`, ordering, limits, and uniqueness checks are enforced by the corresponding identifier settings `limitPolicy` and  reflect any normalization. If the identifier already exists and points to another profile, resolution rules or merge processes may apply. Use the identifier specific endpoint to inspect, update, or remove existing values.

Operation: `CreateProfileIdentifier` | Tags: Identifiers

# `delete`

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

# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
Asynchronously remove stored values for the identifier type. The optional `removeAll` query parameter allows bulk removal; otherwise the service selects a single value to delete using the identifier settings `limitPolicy`.

Operation: `DeleteProfileIdentifier` | Tags: Identifiers

## Query Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `removeAll` | boolean | When true, removes every stored value for the identifier type in a single operation. Defaults to false. |

# `fetch`

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

# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
Retrieve all stored values for a specific identifier type on a profile. Values are normalized according to the configured identifier settings and returned in the order determined by its `limitPolicy`.

Operation: `FetchProfileIdentifier` | Tags: Identifiers

# `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()}
```

# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
Retrieve all identifier types linked to a profile along with their stored values. Use this to audit which external keys (phone, email, externalId, etc.) are currently associated. Values are returned in the order enforced by each identifier settings `limitPolicy` and reflect any normalization applied by the service.

Operation: `ListProfileIdentifiers` | Tags: Identifiers

# `stream`

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

Stream: Retrieve all identifier types linked to a profile along with their stored values. Use this to audit which external keys (phone, email, externalId, etc.) are currently associated. Values are returned in the order enforced by each identifier settings `limitPolicy` and reflect any normalization applied by the service. (lazy auto-pagination).

---

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