defmodule ExAws.Behaviour do @moduledoc """ A behaviour definition for the core operations of ExAws """ @callback request(ExAws.Operation.t()) :: {:ok, term} | {:error, term} @callback request(ExAws.Operation.t(), Keyword.t()) :: {:ok, term} | {:error, term} @callback request!(ExAws.Operation.t()) :: term | no_return @callback request!(ExAws.Operation.t(), Keyword.t()) :: term | no_return @callback stream!(ExAws.Operation.t()) :: Enumerable.t() @callback stream!(ExAws.Operation.t(), Keyword.t()) :: Enumerable.t() end