Current section

Files

Jump to
exkeycdn lib zone_behaviour.ex
Raw

lib/zone_behaviour.ex

defmodule ExKeyCDN.ZoneBehaviour do
@moduledoc """
Zone Behaviour
"""
@doc """
List
"""
@callback list() ::
[
{:limits, [{:rate_limit_remaining, binary()}, {:rate_limit, binary}]},
{:zones, list(ExKeyCDN.Zone)}
]
| {:error, binary | ExKeyCDN.ErrorResponse.t()}
@doc """
Returns zone based on id
"""
@callback view(integer) ::
[
{:limits, [{:rate_limit_remaining, binary()}, {:rate_limit, binary}]},
{:zone, ExKeyCDN.Zone}
]
| {:error, binary | ExKeyCDN.ErrorResponse.t()}
@doc """
Add
"""
@callback add(ExKeyCDN.Zone) ::
[
{:limits, [{:rate_limit_remaining, binary()}, {:rate_limit, binary}]},
{:zone, ExKeyCDN.Zone}
]
| {:error, binary | ExKeyCDN.ErrorResponse.t()}
@doc """
Edit
"""
@callback edit(integer, map) ::
[
{:limits, [{:rate_limit_remaining, binary()}, {:rate_limit, binary}]},
{:zone, ExKeyCDN.Zone}
]
| {:error, binary | ExKeyCDN.ErrorResponse.t()}
@doc """
Delete
"""
@callback delete(integer()) ::
[
{:limits, [{:rate_limit_remaining, binary()}, {:rate_limit, binary}]},
{:zone, :deleted}
]
| {:error, binary | ExKeyCDN.ErrorResponse.t()}
@doc """
Purge Cache
"""
@callback purge_cache(integer()) ::
[
{:limits, [{:rate_limit_remaining, binary()}, {:rate_limit, binary}]},
{:zone, :cache_purged}
]
| {:error, binary | ExKeyCDN.ErrorResponse.t()}
@doc """
Purge URL
"""
@callback purge_url(integer(), list) ::
[
{:limits, [{:rate_limit_remaining, binary()}, {:rate_limit, binary}]},
{:zone, :url_purged}
]
| {:error, binary | ExKeyCDN.ErrorResponse.t()}
end