# `Twilio.Sip.CredentialLists.Credentials`

API calls: `create`, `delete`, `list`, `retrieve`, `update`.

# `create`

```elixir
@spec create(String.t(), map() | keyword(), keyword()) ::
  {:ok, Twilio.Schemas.SipCredential.t()} | {:error, Infusion.Runtime.Error.t()}
```

Create a new credential resource.

`POST /2010-04-01/Accounts/{AccountSid}/SIP/CredentialLists/{CredentialListSid}/Credentials.json`

## Path parameters

  * `credential_list_sid` (required) - The unique id that identifies the credential list to include the created credential.

`{AccountSid}` in the path is the `:account_sid` setting; pass `account_sid: "..."` as an option to use another.

## Parameters

  * `password` (required) - The password that the username will use when authenticating SIP requests. The password must be a minimum of 12 characters, contain at least 1 digit, and have mixed case. (eg `IWasAtSignal2018`)
  * `username` (required) - The username that will be passed when authenticating SIP requests. The username should be sent in response to Twilio's challenge of the initial INVITE. It can be up to 32 characters long.

# `create!`

```elixir
@spec create!(String.t(), map() | keyword(), keyword()) ::
  Twilio.Schemas.SipCredential.t()
```

Like `create/3`, but returns the result or raises `Infusion.Runtime.Error`.

# `delete`

```elixir
@spec delete(String.t(), String.t(), keyword()) ::
  {:ok, nil} | {:error, Infusion.Runtime.Error.t()}
```

Delete a credential resource.

`DELETE /2010-04-01/Accounts/{AccountSid}/SIP/CredentialLists/{CredentialListSid}/Credentials/{Sid}.json`

## Path parameters

  * `credential_list_sid` (required) - The unique id that identifies the credential list that contains the desired credentials.
  * `sid` (required) - The unique id that identifies the resource to delete.

`{AccountSid}` in the path is the `:account_sid` setting; pass `account_sid: "..."` as an option to use another.

# `delete!`

```elixir
@spec delete!(String.t(), String.t(), keyword()) :: nil
```

Like `delete/3`, but returns the result or raises `Infusion.Runtime.Error`.

# `list`

```elixir
@spec list(String.t(), map() | keyword(), keyword()) ::
  {:ok, Twilio.Schemas.SipCredentialListsCredentialsListResponse.t()}
  | {:error, Infusion.Runtime.Error.t()}
```

Retrieve a list of credentials.

`GET /2010-04-01/Accounts/{AccountSid}/SIP/CredentialLists/{CredentialListSid}/Credentials.json`

## Path parameters

  * `credential_list_sid` (required) - The unique id that identifies the credential list that contains the desired credentials.

`{AccountSid}` in the path is the `:account_sid` setting; pass `account_sid: "..."` as an option to use another.

## Parameters

  * `page_size` - How many resources to return in each list page. The default is 50, and the maximum is 1000.
  * `page` - The page index. This value is simply for client state.
  * `page_token` - The page token. This is provided by the API.

To read every item across all pages, use `list_all`.

# `list!`

```elixir
@spec list!(String.t(), map() | keyword(), keyword()) ::
  Twilio.Schemas.SipCredentialListsCredentialsListResponse.t()
```

Like `list/3`, but returns the result or raises `Infusion.Runtime.Error`.

# `list_all`

```elixir
@spec list_all(String.t(), map() | keyword(), keyword()) ::
  {:ok, Enumerable.t()} | {:error, Infusion.Runtime.Error.t()}
```

Like `list/3`, but returns every item, from every page: a lazy stream of `Twilio.Schemas.SipCredential.t()` that fetches pages as it is read.

The first page is fetched right away, so its errors are returned; a later page that fails raises `Infusion.Runtime.Error`. Stopping early (`Enum.take/2`) fetches no more pages.

# `list_all!`

```elixir
@spec list_all!(String.t(), map() | keyword(), keyword()) :: Enumerable.t()
```

Like `list_all/3`, but returns the stream or raises `Infusion.Runtime.Error`.

# `retrieve`

```elixir
@spec retrieve(String.t(), String.t(), keyword()) ::
  {:ok, Twilio.Schemas.SipCredential.t()} | {:error, Infusion.Runtime.Error.t()}
```

Fetch a single credential.

`GET /2010-04-01/Accounts/{AccountSid}/SIP/CredentialLists/{CredentialListSid}/Credentials/{Sid}.json`

## Path parameters

  * `credential_list_sid` (required) - The unique id that identifies the credential list that contains the desired credential.
  * `sid` (required) - The unique id that identifies the resource to fetch.

`{AccountSid}` in the path is the `:account_sid` setting; pass `account_sid: "..."` as an option to use another.

# `retrieve!`

```elixir
@spec retrieve!(String.t(), String.t(), keyword()) :: Twilio.Schemas.SipCredential.t()
```

Like `retrieve/3`, but returns the result or raises `Infusion.Runtime.Error`.

# `update`

```elixir
@spec update(String.t(), String.t(), map() | keyword(), keyword()) ::
  {:ok, Twilio.Schemas.SipCredential.t()} | {:error, Infusion.Runtime.Error.t()}
```

Update a credential resource.

`POST /2010-04-01/Accounts/{AccountSid}/SIP/CredentialLists/{CredentialListSid}/Credentials/{Sid}.json`

## Path parameters

  * `credential_list_sid` (required) - The unique id that identifies the credential list that includes this credential.
  * `sid` (required) - The unique id that identifies the resource to update.

`{AccountSid}` in the path is the `:account_sid` setting; pass `account_sid: "..."` as an option to use another.

## Parameters

  * `password` - The password that the username will use when authenticating SIP requests. The password must be a minimum of 12 characters, contain at least 1 digit, and have mixed case. (eg `IWasAtSignal2018`)

# `update!`

```elixir
@spec update!(String.t(), String.t(), map() | keyword(), keyword()) ::
  Twilio.Schemas.SipCredential.t()
```

Like `update/4`, but returns the result or raises `Infusion.Runtime.Error`.

---

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