defmodule Auth0.Management.Emails do alias Auth0.Config alias Auth0.Management.Emails.Provider @type config :: Config.t() @type error :: {:error, integer, term} | {:error, term} @doc """ Retrieve details of the email provider configuration in your tenant. A list of fields to include or exclude may also be specified. ## see https://auth0.com/docs/api/management/v2/emails/get-provider """ @spec get_provider(map(), config) :: {:ok, map()} | error def get_provider(%{} = params, %Config{} = config) do Provider.Get.execute(params, config) end @doc """ Update an email provider. The credentials object requires different properties depending on the email provider (which is specified using the name property): ## see https://auth0.com/docs/api/management/v2/emails/patch-provider """ @spec update_provider(map(), config) :: {:ok, map()} | error def update_provider(%{} = params, %Config{} = config) do Provider.Patch.execute(params, config) end @doc """ Create an email provider. The credentials object requires different properties depending on the email provider (which is specified using the name property): ## see https://auth0.com/docs/api/management/v2/emails/post-provider """ @spec configure_provider(map(), config) :: {:ok, map()} | error def configure_provider(%{} = params, %Config{} = config) do Provider.Configure.execute(params, config) end end