Packages

Elixir implementation of the Agent-to-Agent (A2A) protocol. Exposes ADK agents as A2A-compatible HTTP endpoints and consumes remote A2A agents as local ADK agents.

Current section

Files

Jump to
a2a_elixir_sdk lib a2a_ex push_config_store.ex
Raw

lib/a2a_ex/push_config_store.ex

defmodule A2AEx.PushConfigStore do
@moduledoc """
Behaviour for managing push notification configurations for tasks.
Each task can have multiple push configs, keyed by config ID.
"""
@type store :: GenServer.server()
@doc "Save a push config for a task. Assigns an ID if not set. Returns the saved config."
@callback save(store(), String.t(), A2AEx.PushConfig.t()) ::
{:ok, A2AEx.PushConfig.t()} | {:error, term()}
@doc "Get a push config by task ID and config ID."
@callback get(store(), String.t(), String.t()) ::
{:ok, A2AEx.PushConfig.t()} | {:error, :not_found}
@doc "List all push configs for a task."
@callback list(store(), String.t()) :: {:ok, [A2AEx.PushConfig.t()]}
@doc "Delete a push config by task ID and config ID."
@callback delete(store(), String.t(), String.t()) :: :ok
end