grom/guild

Types

pub type Ban {
  Ban(reason: option.Option(String), user: user.User)
}

Constructors

pub type BannerFormat {
  PngBanner
  JpegBanner
  WebpBanner
  GifBanner
}

Constructors

  • PngBanner
  • JpegBanner
  • WebpBanner
  • GifBanner
pub type BulkBanResponse {
  BulkBanResponse(
    banned_users_ids: List(String),
    failed_users_ids: List(String),
  )
}

Constructors

  • BulkBanResponse(
      banned_users_ids: List(String),
      failed_users_ids: List(String),
    )
pub type CreateSoundboardSound {
  CreateSoundboardSound(
    name: String,
    sound: soundboard.Data,
    volume: option.Option(Float),
    emoji_id: option.Option(String),
    emoji_name: option.Option(String),
  )
}

Constructors

pub type CreateSticker {
  CreateSticker(
    name: String,
    description: String,
    tags: String,
    file: sticker.File,
  )
}

Constructors

  • CreateSticker(
      name: String,
      description: String,
      tags: String,
      file: sticker.File,
    )
pub type DefaultMessageNotificationSetting {
  NotifyForAllMessages
  NotifyOnlyForMentions
}

Constructors

  • NotifyForAllMessages
  • NotifyOnlyForMentions
pub type ExplicitContentFilterSetting {
  ExplicitContentFilterDisabled
  ExplicitContentFilterForMembersWithoutRoles
  ExplicitContentFilterForAllMembers
}

Constructors

  • ExplicitContentFilterDisabled
  • ExplicitContentFilterForMembersWithoutRoles
  • ExplicitContentFilterForAllMembers
pub type Feature {
  HasAnimatedBanner
  HasAnimatedIcon
  UsesOldPermissionConfigurationBehavior
  UsesAutoModeration
  HasBanner
  IsCommunity
  EnabledMonetization
  HasRoleSubscriptionPromotionPage
  IsDeveloperSupportServer
  IsDiscoverable
  IsFeaturable
  HasInvitesDisabled
  CanSetInviteSplash
  HasMemberVerificationGateEnabled
  HasMoreSoundboardSounds
  HasMoreStickers
  CanCreateAnnouncementChannels
  IsPartnered
  CanBePreviewed
  HasRaidAlertsDisabled
  CanSetRoleIcons
  HasRoleSubscriptionsAvailableForPurchase
  HasRoleSubscriptionsEnabled
  CreatedSoundboardSounds
  HasTicketedEventsEnabled
  CanSetVanityUrl
  IsVerified
  CanSet384KbpsBitrate
  HasWelcomeScreenEnabled
  CanHaveGuestInvites
  CanSetEnhancedRoleColors
  UnknownFeature
}

Constructors

  • HasAnimatedBanner
  • HasAnimatedIcon
  • UsesOldPermissionConfigurationBehavior
  • UsesAutoModeration
  • HasBanner
  • IsCommunity
  • EnabledMonetization
  • HasRoleSubscriptionPromotionPage
  • IsDeveloperSupportServer
  • IsDiscoverable
  • IsFeaturable
  • HasInvitesDisabled
  • CanSetInviteSplash
  • HasMemberVerificationGateEnabled
  • HasMoreSoundboardSounds
  • HasMoreStickers
  • CanCreateAnnouncementChannels
  • IsPartnered
  • CanBePreviewed
  • HasRaidAlertsDisabled
  • CanSetRoleIcons
  • HasRoleSubscriptionsAvailableForPurchase
  • HasRoleSubscriptionsEnabled
  • CreatedSoundboardSounds
  • HasTicketedEventsEnabled
  • CanSetVanityUrl
  • IsVerified
  • CanSet384KbpsBitrate
  • HasWelcomeScreenEnabled
  • CanHaveGuestInvites
  • CanSetEnhancedRoleColors
  • UnknownFeature

    Workaround for undocumented guild features.

pub type Guild {
  Guild(
    id: String,
    name: String,
    icon: option.Option(String),
    icon_hash: option.Option(String),
    splash: option.Option(String),
    discovery_splash: option.Option(String),
    is_current_user_owner: option.Option(Bool),
    owner_id: String,
    current_user_permissions: option.Option(String),
    afk_channel_id: option.Option(String),
    afk_timeout: Int,
    is_widget_enabled: option.Option(Bool),
    widget_channel_id: option.Option(String),
    verification_level: VerificationLevel,
    default_message_notification_setting: DefaultMessageNotificationSetting,
    explicit_content_filter_setting: ExplicitContentFilterSetting,
    roles: List(role.Role),
    emojis: List(emoji.Emoji),
    features: List(Feature),
    mfa_level: MfaLevel,
    application_id: option.Option(String),
    system_channel_id: option.Option(String),
    system_channel_flags: List(SystemChannelFlag),
    rules_channel_id: option.Option(String),
    max_presences: option.Option(Int),
    max_members: option.Option(Int),
    vanity_url_code: option.Option(String),
    description: option.Option(String),
    banner_hash: option.Option(String),
    premium_tier: PremiumTier,
    premium_subscription_count: option.Option(Int),
    preferred_locale: String,
    public_updates_channel_id: option.Option(String),
    max_video_channel_users: option.Option(Int),
    max_stage_video_channel_users: option.Option(Int),
    approximate_member_count: option.Option(Int),
    approximate_presence_count: option.Option(Int),
    welcome_screen: option.Option(WelcomeScreen),
    nsfw_level: NsfwLevel,
    stickers: option.Option(List(sticker.Sticker)),
    is_premium_progress_bar_enabled: Bool,
    safety_alerts_channel_id: option.Option(String),
    incidents_data: option.Option(IncidentsData),
  )
}

Constructors

pub type IconFormat {
  PngIcon
  JpegIcon
  WebpIcon
  GifIcon
}

Constructors

  • PngIcon
  • JpegIcon
  • WebpIcon
  • GifIcon
pub type IncidentsData {
  IncidentsData(
    invites_disabled_until: option.Option(timestamp.Timestamp),
    dms_disabled_until: option.Option(timestamp.Timestamp),
    dms_spam_disabled_at: option.Option(timestamp.Timestamp),
    raid_detected_at: option.Option(timestamp.Timestamp),
  )
}

Constructors

pub type MfaLevel {
  NoMfaRequired
  MfaRequired
}

Constructors

  • NoMfaRequired
  • MfaRequired
pub type Modify {
  Modify(
    name: option.Option(String),
    verification_level: option.Option(VerificationLevel),
    default_message_notification_setting: option.Option(
      DefaultMessageNotificationSetting,
    ),
    explicit_content_filter_setting: option.Option(
      ExplicitContentFilterSetting,
    ),
    afk_channel_id: modification.Modification(String),
    afk_timeout: option.Option(Int),
    icon: modification.Modification(image.Data),
    owner_id: option.Option(String),
    splash: modification.Modification(image.Data),
    discovery_splash: modification.Modification(image.Data),
    banner: modification.Modification(image.Data),
    system_channel_id: modification.Modification(String),
    system_channel_flags: option.Option(List(SystemChannelFlag)),
    rules_channel_id: modification.Modification(String),
    public_updates_channel_id: modification.Modification(String),
    preferred_locale: modification.Modification(String),
    features: option.Option(List(Feature)),
    description: modification.Modification(String),
    is_premium_progress_bar_enabled: option.Option(Bool),
    safety_alerts_channel_id: modification.Modification(String),
  )
}

Constructors

pub type ModifyIncidentActions {
  ModifyIncidentActions(
    invites_disabled_until: modification.Modification(
      timestamp.Timestamp,
    ),
    dms_disabled_until: modification.Modification(
      timestamp.Timestamp,
    ),
  )
}

Constructors

pub type ModifySoundboardSound {
  ModifySoundboardSound(
    name: option.Option(String),
    volume: modification.Modification(Float),
    emoji_id: modification.Modification(String),
    emoji_name: modification.Modification(String),
  )
}

Constructors

pub type ModifySticker {
  ModifySticker(
    name: option.Option(String),
    description: modification.Modification(String),
    tags: option.Option(String),
  )
}

Constructors

pub type ModifyWelcomeScreen {
  ModifyWelcomeScreen(
    is_enabled: option.Option(Bool),
    welcome_channels: modification.Modification(
      List(WelcomeChannel),
    ),
    description: modification.Modification(String),
  )
}

Constructors

pub type NsfwLevel {
  NsfwLevelDefault
  NsfwExplicit
  NsfwSafe
  NsfwAgeRestricted
}

Constructors

  • NsfwLevelDefault
  • NsfwExplicit
  • NsfwSafe
  • NsfwAgeRestricted
pub type PremiumTier {
  NoPremiumTier
  PremiumTier1
  PremiumTier2
  PremiumTier3
}

Constructors

  • NoPremiumTier
  • PremiumTier1
  • PremiumTier2
  • PremiumTier3
pub type Preview {
  Preview(
    id: String,
    name: String,
    icon_hash: option.Option(String),
    splash_hash: option.Option(String),
    discovery_splash_hash: option.Option(String),
    emojis: List(emoji.Emoji),
    features: List(Feature),
    approximate_member_count: Int,
    approximate_presence_count: Int,
    description: option.Option(String),
    stickers: List(sticker.Sticker),
  )
}

Constructors

pub type Prune {
  Prune(
    days: Int,
    compute_pruned_count: Bool,
    include_role_ids: List(String),
  )
}

Constructors

  • Prune(
      days: Int,
      compute_pruned_count: Bool,
      include_role_ids: List(String),
    )
pub type PruneResponse {
  PruneResponse(pruned_count: option.Option(Int))
}

Constructors

pub type ReceivedThreads {
  ReceivedThreads(
    threads: List(thread.Thread),
    current_members: List(thread.Member),
  )
}

Constructors

pub type RoleToMove {
  RoleToMove(id: String, position: option.Option(Int))
}

Constructors

pub type SplashFormat {
  PngSplash
  JpegSplash
  WebpSplash
}

Constructors

  • PngSplash
  • JpegSplash
  • WebpSplash
pub type SystemChannelFlag {
  SuppressJoinNotifications
  SuppressPremiumSubscriptionNotifications
  SuppressGuildReminderNotifications
  SuppressJoinNotificationReplies
  SuppressRoleSubscriptionPurchaseNotifications
  SuppressRoleSubscriptionPurchaseNotificationReplies
}

Constructors

  • SuppressJoinNotifications
  • SuppressPremiumSubscriptionNotifications
  • SuppressGuildReminderNotifications
  • SuppressJoinNotificationReplies
  • SuppressRoleSubscriptionPurchaseNotifications
  • SuppressRoleSubscriptionPurchaseNotificationReplies
pub type TagBadgeFormat {
  PngTagBadge
  JpegTagBadge
  WebpTagBadge
}

Constructors

  • PngTagBadge
  • JpegTagBadge
  • WebpTagBadge
pub type Template {
  Template(
    code: String,
    name: String,
    description: option.Option(String),
    usage_count: Int,
    creator_id: String,
    creator: user.User,
    created_at: timestamp.Timestamp,
    updated_at: timestamp.Timestamp,
    source_guild_id: String,
    is_dirty: option.Option(Bool),
  )
}

Constructors

pub type UnavailableGuild {
  UnavailableGuild(id: String, unavailable: Bool)
}

Constructors

  • UnavailableGuild(id: String, unavailable: Bool)
pub type VanityInvite {
  VanityInvite(code: option.Option(String), uses: Int)
}

Constructors

pub type VerificationLevel {
  NoVerification
  LowVerification
  MediumVerification
  HighVerification
  VeryHighVerification
}

Constructors

  • NoVerification
  • LowVerification
  • MediumVerification
  • HighVerification
  • VeryHighVerification
pub type WelcomeChannel {
  WelcomeChannel(
    channel_id: String,
    description: String,
    emoji_id: option.Option(String),
    emoji_name: option.Option(String),
  )
}

Constructors

pub type WelcomeScreen {
  WelcomeScreen(
    description: option.Option(String),
    welcome_channels: List(WelcomeChannel),
  )
}

Constructors

Values

pub fn banner_request(
  id id: String,
  banner banner: String,
  format format: BannerFormat,
) -> request.Request(String)

If format == GifBanner and the banner isn’t animated, will fallback to static WEBP. You can request animated WEBPs too, in which case, if it isn’t animated, it will fallback to static WEBP.

pub fn begin_prune(
  client: grom.Client,
  in guild_id: String,
  using prune: Prune,
  because reason: option.Option(String),
) -> Result(PruneResponse, grom.Error)
pub fn bulk_ban(
  client: grom.Client,
  in guild_id: String,
  users user_ids: List(String),
  delete_messages_since delete_message_duration: option.Option(
    duration.Duration,
  ),
  because reason: option.Option(String),
) -> Result(BulkBanResponse, grom.Error)
pub fn create_ban(
  client: grom.Client,
  in guild_id: String,
  for user_id: String,
  delete_messages_since delete_message_duration: option.Option(
    duration.Duration,
  ),
  because reason: option.Option(String),
) -> Result(Nil, grom.Error)
pub fn create_emoji(
  client: grom.Client,
  in guild_id: String,
  named name: String,
  bytes image: image.Data,
  allowed_roles roles: List(String),
  because reason: option.Option(String),
) -> Result(emoji.Emoji, grom.Error)
pub fn create_soundboard_sound(
  client: grom.Client,
  in guild_id: String,
  using create: CreateSoundboardSound,
  because reason: option.Option(String),
) -> Result(soundboard.Sound, grom.Error)
pub fn create_sticker(
  client: grom.Client,
  in guild_id: String,
  using create: CreateSticker,
  because reason: option.Option(String),
) -> Result(sticker.Sticker, grom.Error)
pub fn delete(
  client: grom.Client,
  id guild_id: String,
) -> Result(Nil, grom.Error)
pub fn delete_emoji(
  client: grom.Client,
  from guild_id: String,
  id emoji_id: String,
  because reason: option.Option(String),
) -> Result(Nil, grom.Error)
pub fn delete_soundboard_sound(
  client: grom.Client,
  in guild_id: String,
  id sound_id: String,
  because reason: option.Option(String),
) -> Result(Nil, grom.Error)
pub fn delete_sticker(
  client: grom.Client,
  from guild_id: String,
  id sticker_id: String,
  because reason: option.Option(String),
) -> Result(Nil, grom.Error)
pub fn discovery_splash_request(
  id id: String,
  splash discovery_splash: String,
  format format: SplashFormat,
) -> request.Request(String)
pub fn get(
  client: grom.Client,
  id guild_id: String,
  get_counts with_counts: Bool,
) -> Result(Guild, grom.Error)

get_counts: Whether to get the approximate_member_count and approximate_presence_count

pub fn get_active_threads(
  client: grom.Client,
  in guild_id: String,
) -> Result(ReceivedThreads, grom.Error)
pub fn get_auto_moderation_rules(
  client: grom.Client,
  for guild_id: String,
) -> Result(List(auto_moderation.Rule), grom.Error)
pub fn get_ban(
  client: grom.Client,
  from guild_id: String,
  for user_id: String,
) -> Result(Ban, grom.Error)
pub fn get_bans(
  client: grom.Client,
  for guild_id: String,
  maximum limit: option.Option(Int),
  earlier_than_id before: option.Option(String),
  later_than_id after: option.Option(String),
) -> Result(List(Ban), grom.Error)

See: https://discord.com/developers/docs/resources/guild#get-guild-bans

pub fn get_emoji(
  client: grom.Client,
  in guild_id: String,
  id emoji_id: String,
) -> Result(emoji.Emoji, grom.Error)
pub fn get_emojis(
  client: grom.Client,
  for guild_id: String,
) -> Result(List(emoji.Emoji), grom.Error)
pub fn get_integrations(
  client: grom.Client,
  for guild_id: String,
) -> Result(List(integration.Integration), grom.Error)
pub fn get_members(
  client: grom.Client,
  for guild_id: String,
  maximum limit: option.Option(Int),
  later_than_id after: option.Option(String),
) -> Result(List(guild_member.GuildMember), grom.Error)

If maximum is not provided, a default of 1 will be used. See: https://discord.com/developers/docs/resources/guild#list-guild-members

pub fn get_preview(
  client: grom.Client,
  for guild_id: String,
) -> Result(Preview, grom.Error)
pub fn get_role_member_counts(
  client: grom.Client,
  for guild_id: String,
) -> Result(dict.Dict(String, Int), grom.Error)

Returns a Dict of Role IDs to member counts.

pub fn get_roles(
  client: grom.Client,
  for guild_id: String,
) -> Result(List(role.Role), grom.Error)
pub fn get_scheduled_events(
  client: grom.Client,
  for guild_id: String,
) -> Result(List(scheduled_event.ScheduledEvent), grom.Error)
pub fn get_soundboard_sound(
  client: grom.Client,
  in guild_id: String,
  id sound_id: String,
) -> Result(soundboard.Sound, grom.Error)
pub fn get_soundboard_sounds(
  client: grom.Client,
  id guild_id: String,
) -> Result(List(soundboard.Sound), grom.Error)
pub fn get_sticker(
  client: grom.Client,
  from guild_id: String,
  id sticker_id: String,
) -> Result(sticker.Sticker, grom.Error)
pub fn get_stickers(
  client: grom.Client,
  for guild_id: String,
) -> Result(List(sticker.Sticker), grom.Error)
pub fn get_vanity_invite(
  client: grom.Client,
  for guild_id: String,
) -> Result(VanityInvite, grom.Error)
pub fn get_voice_regions(
  client: grom.Client,
  for guild_id: String,
) -> Result(List(voice.Region), grom.Error)
pub fn get_welcome_screen(
  client: grom.Client,
  for guild_id: String,
) -> Result(WelcomeScreen, grom.Error)
pub fn icon_request(
  id id: String,
  icon icon: String,
  format format: IconFormat,
) -> request.Request(String)

You probably want to use guild.icon, not guild.icon_hash. guild.icon_hash is None in 90% of cases.

If format == GifIcon and the icon isn’t animated, will fallback to WEBP. You can request animated WEBPs too, in which case, if it isn’t animated, it will fallback to static WEBP.

pub fn leave(
  client: grom.Client,
  id guild_id: String,
) -> Result(Nil, grom.Error)
pub fn modify(
  client: grom.Client,
  id guild_id: String,
  with modify: Modify,
  because reason: option.Option(String),
) -> Result(Guild, grom.Error)
pub fn modify_emoji(
  client: grom.Client,
  in guild_id: String,
  id emoji_id: String,
  rename name: option.Option(String),
  allowed_roles roles: modification.Modification(List(String)),
  because reason: option.Option(String),
) -> Result(emoji.Emoji, grom.Error)
pub fn modify_incident_actions(
  client: grom.Client,
  in guild_id: String,
  using modify: ModifyIncidentActions,
) -> Result(IncidentsData, grom.Error)
pub fn modify_soundboard_sound(
  client: grom.Client,
  in guild_id: String,
  id sound_id: String,
  using modify: ModifySoundboardSound,
  because reason: option.Option(String),
) -> Result(soundboard.Sound, grom.Error)
pub fn modify_sticker(
  client: grom.Client,
  in guild_id: String,
  id sticker_id: String,
  using modify: ModifySticker,
  because reason: option.Option(String),
) -> Result(sticker.Sticker, grom.Error)
pub fn modify_welcome_screen(
  client: grom.Client,
  in guild_id: String,
  using modify: ModifyWelcomeScreen,
  because reason: option.Option(String),
) -> Result(WelcomeScreen, grom.Error)
pub fn move_roles(
  client: grom.Client,
  in guild_id: String,
  roles roles: List(RoleToMove),
  because reason: option.Option(String),
) -> Result(List(role.Role), grom.Error)

Returns a list of all of the guild’s roles.

pub fn new_create_soundboard_sound(
  name: String,
  sound: soundboard.Data,
) -> CreateSoundboardSound
pub fn new_modify() -> Modify
pub fn new_modify_incident_actions() -> ModifyIncidentActions
pub fn new_modify_sticker() -> ModifySticker
pub fn new_modify_welcome_screen() -> ModifyWelcomeScreen
pub fn remove_ban(
  client: grom.Client,
  in guild_id: String,
  from user_id: String,
  because reason: option.Option(String),
) -> Result(Nil, grom.Error)
pub fn search_for_members(
  client: grom.Client,
  in guild_id: String,
  named query_param: String,
  maximum limit: option.Option(Int),
) -> Result(List(guild_member.GuildMember), grom.Error)
pub fn splash_request(
  id id: String,
  splash splash: String,
  format format: SplashFormat,
) -> request.Request(String)
pub fn tag_badge_request(
  id id: String,
  hash badge: String,
  format format: TagBadgeFormat,
) -> request.Request(String)
Search Document