Skip to content

Types

All types are in the Lingo.Type namespace. Each has a new/1 constructor that takes a map (typically from an API response) and returns a struct, or nil for nil input.

Guild

Lingo.Type.Guild

FieldType
idsnowflake
namestring
iconstring | nil
splashstring | nil
discovery_splashstring | nil
ownerboolean
owner_idsnowflake
permissionsstring
afk_channel_idsnowflake | nil
afk_timeoutinteger
widget_enabledboolean
widget_channel_idsnowflake | nil
verification_level:none | :low | :medium | :high | :very_high
default_message_notifications:all_messages | :only_mentions
explicit_content_filter:disabled | :members_without_roles | :all_members
roles[Role]
emojis[Emoji]
features[string]
mfa_level:none | :elevated
application_idsnowflake | nil
system_channel_idsnowflake | nil
system_channel_flagsinteger
rules_channel_idsnowflake | nil
max_presencesinteger | nil
max_membersinteger
vanity_url_codestring | nil
descriptionstring | nil
bannerstring | nil
premium_tier:none | :tier_1 | :tier_2 | :tier_3
premium_subscription_countinteger
preferred_localestring
public_updates_channel_idsnowflake | nil
nsfw_level:default | :explicit | :safe | :age_restricted
stickers[Sticker]
channels[Channel]
members[Member]
member_countinteger
largeboolean
unavailableboolean

Channel

Lingo.Type.Channel

FieldType
idsnowflake
typesee below
guild_idsnowflake | nil
positioninteger
permission_overwrites[Overwrite]
namestring
topicstring | nil
nsfwboolean
last_message_idsnowflake | nil
bitrateinteger
user_limitinteger
rate_limit_per_userinteger
recipientslist
iconstring | nil
owner_idsnowflake | nil
parent_idsnowflake | nil
last_pin_timestampstring | nil
rtc_regionstring | nil
video_quality_modeinteger
message_countinteger
member_countinteger
thread_metadatamap | nil
flagsinteger

Channel types: :guild_text, :dm, :guild_voice, :group_dm, :guild_category, :guild_announcement, :announcement_thread, :public_thread, :private_thread, :guild_stage_voice, :guild_directory, :guild_forum, :guild_media.

Overwrite

Lingo.Type.Overwrite

FieldType
idsnowflake
type:role | :member
allowstring (bitfield)
denystring (bitfield)

User

Lingo.Type.User

FieldType
idsnowflake
usernamestring
discriminatorstring
global_namestring | nil
avatarstring | nil
botboolean
systemboolean
mfa_enabledboolean
bannerstring | nil
accent_colorinteger | nil
localestring | nil
flagsinteger
premium_typeinteger
public_flagsinteger

Member

Lingo.Type.Member

FieldType
userUser | nil
nickstring | nil
avatarstring | nil
roles[snowflake]
joined_atstring
premium_sincestring | nil
deafboolean
muteboolean
flagsinteger
pendingboolean
permissionsstring | nil
communication_disabled_untilstring | nil

Message

Lingo.Type.Message

FieldType
idsnowflake
channel_idsnowflake
guild_idsnowflake | nil
authorUser | nil
memberMember | nil
contentstring
timestampstring
edited_timestampstring | nil
ttsboolean
mention_everyoneboolean
mentionslist
mention_roles[snowflake]
attachments[Attachment]
embedslist
reactions[Reaction]
pinnedboolean
webhook_idsnowflake | nil
typeinteger
flagsinteger
referenced_messageMessage | nil
threadChannel | nil
componentslist

Attachment

Lingo.Type.Attachment

FieldType
idsnowflake
filenamestring
descriptionstring | nil
content_typestring | nil
sizeinteger
urlstring
proxy_urlstring
heightinteger | nil
widthinteger | nil

Role

Lingo.Type.Role

FieldType
idsnowflake
namestring
colorinteger
hoistboolean
iconstring | nil
unicode_emojistring | nil
positioninteger
permissionsstring (bitfield)
managedboolean
mentionableboolean
tagsmap | nil
flagsinteger

Emoji

Lingo.Type.Emoji

FieldType
idsnowflake | nil
namestring
roles[snowflake]
userUser | nil
require_colonsboolean
managedboolean
animatedboolean
availableboolean

Lingo.Type.Emoji.format/1 returns the string representation: unicode char for standard, <:name:id> or <a:name:id> for custom.

Interaction

Lingo.Type.Interaction

FieldType
idsnowflake
application_idsnowflake
type:ping | :application_command | :message_component | :autocomplete | :modal_submit
datamap
guild_idsnowflake | nil
channelmap | nil
channel_idsnowflake | nil
memberMember | nil
userUser | nil
tokenstring
messageMessage | nil
app_permissionsstring
localestring
guild_localestring | nil
entitlementslist

Lingo.Type.Interaction.author/1 returns the user, preferring member.user and falling back to user.

Other Types

VoiceState

Fields: guild_id, channel_id, user_id, member, session_id, deaf, mute, self_deaf, self_mute, self_stream, self_video, suppress, request_to_speak_timestamp.

Presence

Fields: user, guild_id, status (:online | :idle | :dnd | :offline), activities, client_status.

Activity

Fields: name, type (:playing | :streaming | :listening | :watching | :custom | :competing), url, created_at, application_id, details, state.

ReactionEvent

Fields: user_id, channel_id, message_id, guild_id, emoji, member, message_author_id, burst, burst_colors, type.

Invite

Fields: type, code, guild, channel, inviter, target_type, target_user, approximate_presence_count, approximate_member_count, expires_at, uses, max_uses, max_age, temporary, created_at, flags.

Ban

Fields: reason, user.

Webhook

Fields: id, type (:incoming | :channel_follower | :application), guild_id, channel_id, user, name, avatar, token, application_id, url.

Entitlement

Fields: id, sku_id, application_id, user_id, guild_id, type, deleted, starts_at, ends_at, consumed, subscription_id.

ScheduledEvent

Fields: id, guild_id, channel_id, creator_id, name, description, scheduled_start_time, scheduled_end_time, privacy_level, status, entity_type, entity_id, entity_metadata, creator, user_count, image.

StageInstance

Fields: id, guild_id, channel_id, topic, privacy_level, guild_scheduled_event_id.

AutoModerationRule

Fields: id, guild_id, name, creator_id, event_type, trigger_type, trigger_metadata, actions, enabled, exempt_roles, exempt_channels.

Sticker

Fields: id, pack_id, name, description, tags, type, format_type, available, guild_id, user, sort_value.

GuildTemplate

Fields: code, name, description, usage_count, creator_id, creator, created_at, updated_at, source_guild_id, serialized_source_guild, is_dirty.

ApplicationCommand

Fields: id, type, application_id, guild_id, name, description, options, default_member_permissions, nsfw, version, integration_types, contexts.

CommandOption

Fields: type, name, description, required, choices, options, channel_types, min_value, max_value, min_length, max_length, autocomplete.

Snowflake

Lingo.Type.Snowflake.timestamp/1 converts a snowflake string to a DateTime. Lingo.Type.Snowflake.from_timestamp/1 creates a snowflake from a DateTime.

Embed

Fields: title, type, description, url, timestamp, color, footer, image, thumbnail, video, provider, author, fields.