Packages

Webhook delivery, monitoring, and management API. All endpoints under `/v1` require authentication via `Authorization: Bearer <api_key>` header unless marked as **Public**.

Current section

Files

Jump to
hooksniff lib hooksniff resources api_keys.ex
Raw

lib/hooksniff/resources/api_keys.ex

defmodule HookSniff.ApiKeys do
@moduledoc "API key management — list, create, delete, rotate."
alias HookSniff.Client
@doc "List API keys"
@spec list(HookSniff.t()) :: {:ok, map()} | {:error, term()}
def list(client), do: Client.request(:get, "/api/v1/api-keys", nil, client)
@doc "Create a new API key"
@spec create(HookSniff.t(), map()) :: {:ok, map()} | {:error, term()}
def create(client, params), do: Client.request(:post, "/api/v1/api-keys", params, client)
@doc "Delete an API key"
@spec delete(HookSniff.t(), String.t()) :: {:ok, map()} | {:error, term()}
def delete(client, id), do: Client.request(:delete, "/api/v1/api-keys/#{id}", nil, client)
@doc "Rotate an API key"
@spec rotate(HookSniff.t(), String.t()) :: {:ok, map()} | {:error, term()}
def rotate(client, id), do: Client.request(:post, "/api/v1/api-keys/#{id}/rotate", %{}, client)
end