EDA.API.AutoMod (EDA v0.3.0)

Copy Markdown View Source

REST API endpoints for Discord Auto Moderation rules.

All functions return {:ok, result} or {:error, reason}.

Summary

Functions

Creates an Auto Moderation rule in a guild.

Deletes an Auto Moderation rule.

Gets a single Auto Moderation rule by ID.

Lists all Auto Moderation rules for a guild.

Modifies an Auto Moderation rule.

Functions

create(guild_id, params)

@spec create(String.t() | integer(), map()) ::
  {:ok, EDA.AutoMod.t()} | {:error, term()}

Creates an Auto Moderation rule in a guild.

Parameters

  • guild_id - The guild ID
  • params - Map with:
    • :name - Rule name (required, max 100 chars)
    • :event_type - Event type (required, 1 = message_send, 2 = member_update)
    • :trigger_type - Trigger type (required, see EDA.AutoMod)
    • :trigger_metadata - Trigger metadata map (optional, varies by trigger type)
    • :actions - List of action maps (required)
    • :enabled - Whether the rule is enabled (optional, default false)
    • :exempt_roles - List of exempt role IDs (optional, max 20)
    • :exempt_channels - List of exempt channel IDs (optional, max 50)

Returns an EDA.AutoMod struct.

delete_rule(guild_id, rule_id)

@spec delete_rule(String.t() | integer(), String.t() | integer()) ::
  :ok | {:error, term()}

Deletes an Auto Moderation rule.

get_rule(guild_id, rule_id)

@spec get_rule(String.t() | integer(), String.t() | integer()) ::
  {:ok, EDA.AutoMod.t()} | {:error, term()}

Gets a single Auto Moderation rule by ID.

Returns an EDA.AutoMod struct.

list(guild_id)

@spec list(String.t() | integer()) :: {:ok, [EDA.AutoMod.t()]} | {:error, term()}

Lists all Auto Moderation rules for a guild.

Returns a list of EDA.AutoMod structs.

modify(guild_id, rule_id, params)

@spec modify(String.t() | integer(), String.t() | integer(), map()) ::
  {:ok, EDA.AutoMod.t()} | {:error, term()}

Modifies an Auto Moderation rule.

Accepts the same parameters as create/2 (all optional). Returns an EDA.AutoMod struct.