Builders topic

This topic contains classes used to construct models that can be serialized and sent to the Discord API, for example as a request to create or update an entity.

Builders can usually be split into two categories: CreateBuilders are used for creating new instances and may have required fields. UpdateBuilders are used to update existing instances and generally have all optional fields.

Most builders are named after the Model they correspond to. A CreateBuilder for a given model will usually be named the same as the model, with the -Builder suffix. If the model also has an UpdateBuilder, it will be named the same as the model, with the -UpdateBuilder suffix.

The type argument on a builder is used to indicate the Model that builder is for. Some builders do not have a corresponding model (they are "upload-only") and will use themselves as their type argument.

Some builders are shared for multiple variations of a given model. For example, an ApplicationCommandBuilder can be used to create a builder for a chat command, a user command, or a message command depending on the value of the ApplicationCommandBuilder.type field. Such builders may have restrictions on which fields are compatible with which type, in which case named constructors corresponding to each possible type are provided with only the allowed fields.

Classes

ActionMetadataBuilder Builders
ActionRowBuilder Builders
ActivityBuilder Builders
AllowedMentions Builders
ApplicationCommandBuilder Builders
ApplicationCommandUpdateBuilder Builders
ApplicationEmojiBuilder Builders
ApplicationEmojiUpdateBuilder Builders
ApplicationIntegrationTypeConfigurationBuilder Builders
ApplicationRoleConnectionUpdateBuilder Builders
ApplicationUpdateBuilder Builders
AttachmentBuilder Builders
AutoModerationActionBuilder Builders
AutoModerationRuleBuilder Builders
AutoModerationRuleUpdateBuilder Builders
Builder<T> Core Builders
ButtonBuilder Builders
ChannelPositionBuilder Builders
CheckboxComponentBuilder Builders
CheckboxGroupComponentBuilder Builders
CheckboxGroupOptionBuilder Builders
CommandOptionBuilder Builders
CommandOptionChoiceBuilder<T> Builders
ComponentBuilder<T extends Component> Builders
ContainerComponentBuilder Builders
CreateBuilder<T> Core Builders
CurrentMemberUpdateBuilder Builders
CurrentUserVoiceStateUpdateBuilder Builders
DefaultValue<T extends SnowflakeEntity<T>> Builders
DmRecipientBuilder Builders
EmbedAuthorBuilder Builders
EmbedBuilder Builders
EmbedFieldBuilder Builders
EmbedFooterBuilder Builders
EmbedImageBuilder Builders
EmbedThumbnailBuilder Builders
EmojiBuilder Builders
EmojiUpdateBuilder Builders
FileComponentBuilder Builders
FileUploadComponentBuilder Builders
ForumChannelBuilder Builders
ForumChannelUpdateBuilder Builders
ForumTagBuilder Builders
ForumThreadBuilder Builders
GatewayVoiceStateBuilder Builders
GroupDmUpdateBuilder Builders
GuildAnnouncementChannelBuilder Builders
GuildAnnouncementChannelUpdateBuilder Builders
GuildBuilder Builders
GuildCategoryBuilder Builders
GuildCategoryUpdateBuilder Builders
GuildChannelBuilder<T extends GuildChannel> Builders
GuildChannelUpdateBuilder<T extends GuildChannel> Builders
GuildIncidentsUpdateBuilder Builders
GuildStageChannelBuilder Builders
GuildStageChannelUpdateBuilder Builders
GuildTemplateBuilder Builders
GuildTemplateUpdateBuilder Builders
GuildTextChannelBuilder Builders
GuildTextChannelUpdateBuilder Builders
GuildUpdateBuilder Builders
GuildVoiceChannelBuilder Builders
GuildVoiceChannelUpdateBuilder Builders
ImageBuilder Builders
InteractionResponseBuilder Builders
InviteBuilder Builders
LabelComponentBuilder Builders
MediaGalleryComponentBuilder Builders
MediaGalleryItemBuilder Builders
MemberBuilder Builders
MemberUpdateBuilder Builders
MessageBuilder Builders
MessageReferenceBuilder Builders
MessageUpdateBuilder Builders
ModalBuilder Builders
OnboardingPromptBuilder Builders
OnboardingPromptOptionBuilder Builders
OnboardingUpdateBuilder Builders
PermissionOverwriteBuilder Builders
PollAnswerBuilder Builders
External references:
PollBuilder Builders
The poll object has a lot of levels and nested structures. It was also designed to support future extensibility, so some fields may appear to be more complex than necessary.
PollMediaBuilder Builders
The poll media object is a common object that backs both the question and answers. The intention is that it allows us to extensibly add new ways to display things in the future. For now, Poll.question only supports PollMedia.text, while answers can have an optional PollMedia.emoji.
PresenceBuilder Builders
RadioGroupComponentBuilder Builders
RadioGroupOptionBuilder Builders
ReactionBuilder Builders
RecurrenceRuleBuilder Builders
RoleBuilder Builders
RoleColorsBuilder Builders
RoleUpdateBuilder Builders
ScheduledEventBuilder Builders
ScheduledEventUpdateBuilder Builders
SectionComponentBuilder Builders
SelectMenuBuilder Builders
SelectMenuOptionBuilder Builders
SeparatorComponentBuilder Builders
SoundboardSoundBuilder Builders
SoundboardSoundUpdateBuilder Builders
SoundBuilder Builders
StageInstanceBuilder Builders
A Stage Instance holds information about a live stage.
StageInstanceUpdateBuilder Builders
StickerBuilder Builders
StickerUpdateBuilder Builders
TestEntitlementBuilder Builders
TextDisplayComponentBuilder Builders
TextInputBuilder Builders
ThreadBuilder Builders
ThreadFromMessageBuilder Builders
ThreadUpdateBuilder Builders
ThumbnailComponentBuilder Builders
TriggerMetadataBuilder Builders
UnfurledMediaItemBuilder Builders
UpdateBuilder<T> Core Builders
UserUpdateBuilder Builders
VoiceStateUpdateBuilder Builders
WebhookBuilder Builders
WebhookUpdateBuilder Builders
WelcomeScreenUpdateBuilder Builders
WidgetSettingsUpdateBuilder Builders