# `Twilio.Sip.IpAccessControlLists.IpAddresses`

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

# `create`

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

Create a new IpAddress resource.

`POST /2010-04-01/Accounts/{AccountSid}/SIP/IpAccessControlLists/{IpAccessControlListSid}/IpAddresses.json`

## Path parameters

  * `ip_access_control_list_sid` (required) - The IpAccessControlList Sid with which to associate the created IpAddress resource.

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

## Parameters

  * `cidr_prefix_length` - An integer representing the length of the CIDR prefix to use with this IP address when accepting traffic. By default the entire IP address is used.
  * `friendly_name` (required) - A human readable descriptive text for this resource, up to 255 characters long.
  * `ip_address` (required) - An IP address in dotted decimal notation from which you want to accept traffic. Any SIP requests from this IP address will be allowed by Twilio. IPv4 only supported today.

# `create!`

```elixir
@spec create!(String.t(), map() | keyword(), keyword()) ::
  Twilio.Schemas.SipIpAddress.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 an IpAddress resource.

`DELETE /2010-04-01/Accounts/{AccountSid}/SIP/IpAccessControlLists/{IpAccessControlListSid}/IpAddresses/{Sid}.json`

## Path parameters

  * `ip_access_control_list_sid` (required) - The IpAccessControlList Sid that identifies the IpAddress resources to delete.
  * `sid` (required) - A 34 character string that uniquely 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.SipIpAccessControlListsIpAddressesListResponse.t()}
  | {:error, Infusion.Runtime.Error.t()}
```

Read multiple IpAddress resources.

`GET /2010-04-01/Accounts/{AccountSid}/SIP/IpAccessControlLists/{IpAccessControlListSid}/IpAddresses.json`

## Path parameters

  * `ip_access_control_list_sid` (required) - The IpAccessControlList Sid that identifies the IpAddress resources to read.

`{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.SipIpAccessControlListsIpAddressesListResponse.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.SipIpAddress.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.SipIpAddress.t()} | {:error, Infusion.Runtime.Error.t()}
```

Read one IpAddress resource.

`GET /2010-04-01/Accounts/{AccountSid}/SIP/IpAccessControlLists/{IpAccessControlListSid}/IpAddresses/{Sid}.json`

## Path parameters

  * `ip_access_control_list_sid` (required) - The IpAccessControlList Sid that identifies the IpAddress resources to fetch.
  * `sid` (required) - A 34 character string that uniquely identifies the IpAddress 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.SipIpAddress.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.SipIpAddress.t()} | {:error, Infusion.Runtime.Error.t()}
```

Update an IpAddress resource.

`POST /2010-04-01/Accounts/{AccountSid}/SIP/IpAccessControlLists/{IpAccessControlListSid}/IpAddresses/{Sid}.json`

## Path parameters

  * `ip_access_control_list_sid` (required) - The IpAccessControlList Sid that identifies the IpAddress resources to update.
  * `sid` (required) - A 34 character string that identifies the IpAddress resource to update.

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

## Parameters

  * `cidr_prefix_length` - An integer representing the length of the CIDR prefix to use with this IP address when accepting traffic. By default the entire IP address is used.
  * `friendly_name` - A human readable descriptive text for this resource, up to 255 characters long.
  * `ip_address` - An IP address in dotted decimal notation from which you want to accept traffic. Any SIP requests from this IP address will be allowed by Twilio. IPv4 only supported today.

# `update!`

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

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

---

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