UNPKG

guildedapi-types.ts

Version:

Up to date Guilded API Typings. Contribution is welcome.

364 lines (336 loc) 22.1 kB
import type * as OpenAPI from "../schemas/v1" export const GatewayVersion = "1"; export const GatewayURL = `wss://www.guilded.gg/websocket/v${GatewayVersion}`; export const GatewayEvents = { // Misc BotServerMembershipCreated: "BotServerMembershipCreated", BotServerMembershipDeleted: "BotServerMembershipDeleted", // Guild groups GroupCreated: "GroupCreated", GroupUpdated: "GroupUpdated", GroupDeleted: "GroupDeleted", // Users UserStatusCreated: "UserStatusCreated", UserStatusDeleted: "UserStatusDeleted", // Message ChatMessageCreated: "ChatMessageCreated", ChatMessageUpdated: "ChatMessageUpdated", ChatMessageDeleted: "ChatMessageDeleted", AnnouncementCreated: "AnnouncementCreated", AnnouncementUpdated: "AnnouncementUpdated", AnnouncementReactionCreated: "AnnouncementReactionCreated", AnnouncementReactionDeleted: "AnnouncementReactionDeleted", AnnouncementDeleted: "AnnouncementDeleted", AnnouncementCommentCreated: "AnnouncementCommentCreated", AnnouncementCommentUpdated: "AnnouncementCommentUpdated", AnnouncementCommentDeleted: "AnnouncementCommentDeleted", AnnouncementCommentReactionCreated: "AnnouncementCommentReactionCreated", AnnouncementCommentReactionDeleted: "AnnouncementCommentReactionDeleted", ChannelMessageReactionCreated: "ChannelMessageReactionCreated", ChannelMessageReactionDeleted: "ChannelMessageReactionDeleted", ChannelMessageReactionManyDeleted: "ChannelMessageReactionManyDeleted", ChannelMessagePinned: "ChannelMessagePinned", ChannelMessageUnpinned: "ChannelMessageUnpinned", // Channel ServerChannelCreated: "ServerChannelCreated", ServerChannelUpdated: "ServerChannelUpdated", ServerChannelDeleted: "ServerChannelDeleted", ChannelRolePermissionCreated: "ChannelRolePermissionCreated", ChannelRolePermissionUpdated: "ChannelRolePermissionUpdated", ChannelRolePermissionDeleted: "ChannelRolePermissionDeleted", ChannelUserPermissionCreated: "ChannelUserPermissionCreated", ChannelUserPermissionUpdated: "ChannelUserPermissionUpdated", ChannelUserPermissionDeleted: "ChannelUserPermissionDeleted", ChannelArchived: "ChannelArchived", ChannelRestored: "ChannelRestored", ChannelCategoryUserPermissionCreated: "ChannelCategoryUserPermissionCreated", ChannelCategoryUserPermissionUpdated: "ChannelCategoryUserPermissionUpdated", ChannelCategoryUserPermissionDeleted: "ChannelCategoryUserPermissionDeleted", ChannelCategoryRolePermissionCreated: "ChannelCategoryRolePermissionCreated", ChannelCategoryRolePermissionUpdated: "ChannelCategoryRolePermissionUpdated", ChannelCategoryRolePermissionDeleted: "ChannelCategoryRolePermissionDeleted", // Forum Topic ForumTopicCreated: "ForumTopicCreated", ForumTopicUpdated: "ForumTopicUpdated", ForumTopicDeleted: "ForumTopicDeleted", ForumTopicPinned: "ForumTopicPinned", ForumTopicUnpinned: "ForumTopicUnpinned", ForumTopicReactionCreated: "ForumTopicReactionCreated", ForumTopicReactionDeleted: "ForumTopicReactionDeleted", ForumTopicCommentCreated: "ForumTopicCommentCreated", ForumTopicCommentUpdated: "ForumTopicCommentUpdated", ForumTopicCommentDeleted: "ForumTopicCommentDeleted", ForumTopicCommentReactionCreated: "ForumTopicCommentReactionCreated", ForumTopicCommentReactionDeleted: "ForumTopicCommentReactionDeleted", ForumTopicLocked: "ForumTopicLocked", ForumTopicUnlocked: "ForumTopicUnlocked", // Guild ServerMemberBanned: "ServerMemberBanned", ServerMemberUnbanned: "ServerMemberUnbanned", ServerMemberJoined: "ServerMemberJoined", ServerMemberRemoved: "ServerMemberRemoved", ServerMemberUpdated: "ServerMemberUpdated", ServerRolesUpdated: "ServerRolesUpdated", ServerMemberSocialLinkCreated: "ServerMemberSocialLinkCreated", ServerMemberSocialLinkUpdated: "ServerMemberSocialLinkUpdated", ServerMemberSocialLinkDeleted: "ServerMemberSocialLinkDeleted", RoleCreated: "RoleCreated", RoleUpdated: "RoleUpdated", RoleDeleted: "RoleDeleted", // Webhook ServerWebhookCreated: "ServerWebhookCreated", ServerWebhookUpdated: "ServerWebhookUpdated", // Doc DocCreated: "DocCreated", DocUpdated: "DocUpdated", DocDeleted: "DocDeleted", DocReactionCreated: "DocReactionCreated", DocReactionDeleted: "DocReactionDeleted", DocCommentCreated: "DocCommentCreated", DocCommentUpdated: "DocCommentUpdated", DocCommentDeleted: "DocCommentDeleted", DocCommentReactionCreated: "DocCommentReactionCreated", DocCommentReactionDeleted: "DocCommentReactionDeleted", // Calendar CalendarEventCreated: "CalendarEventCreated", CalendarEventUpdated: "CalendarEventUpdated", CalendarEventDeleted: "CalendarEventDeleted", CalendarEventRsvpUpdated: "CalendarEventRsvpUpdated", CalendarEventRsvpDeleted: "CalendarEventRsvpDeleted", CalendarEventRsvpManyUpdated: "CalendarEventRsvpManyUpdated", CalendarEventReactionCreated: "CalendarEventReactionCreated", CalendarEventReactionDeleted: "CalendarEventReactionDeleted", CalendarEventCommentCreated: "CalendarEventCommentCreated", CalendarEventCommentUpdated: "CalendarEventCommentUpdated", CalendarEventCommentDeleted: "CalendarEventCommentDeleted", CalendarEventCommentReactionCreated: "CalendarEventCommentReactionCreated", CalendarEventCommentReactionDeleted: "CalendarEventCommentReactionDeleted", // List ListItemCreated: "ListItemCreated", ListItemUpdated: "ListItemUpdated", ListItemDeleted: "ListItemDeleted", ListItemCompleted: "ListItemCompleted", ListItemUncompleted: "ListItemUncompleted", // Category CategoryCreated: "CategoryCreated", CategoryUpdated: "CategoryUpdated", CategoryDeleted: "CategoryDeleted" } as const; export type GATEWAY_EVENTS = typeof GatewayEvents; export interface GatewayStructure { /** OP Code */ op: GatewayOPCodes; /** DATA */ d?: object; /** Message ID used for replaying events after a disconnect */ s?: string; /** Event name */ t?: string; }; export interface GatewayWelcome { /** OP Code */ op: GatewayOPCodes.Welcome; /** DATA */ d: GatewayWelcomeData; } export interface GatewayWelcomeData { lastMessageId: string; user: { id: string; botId: string; name: string; createdAt: string; createdBy: string; }; heartbeatIntervalMs: number; }; export interface GatewayResume { /** OP Code */ op: GatewayOPCodes.Welcome; /** DATA */ d: GatewayResumeData; } export interface GatewayResumeData { /** Message ID used for replaying events after a disconnect */ s: string; } export enum GatewayOPCodes { Welcome = 1, Event = 0, Resume = 2, Failure = 8, Success = 9 } export type Perm = OpenAPI.paths export enum Permissions { CanUpdateServer = "CanUpdateServer", CanManageRoles = "CanManageRoles", CanInviteMembers = "CanInviteMembers", CanKickMembers = "CanKickMember", CanManageGroups = "CanManageGroups", CanManageChannels = "CanManageChannels", CanManageWebhooks = "CanManageWebhooks", CanMentionEveryone = "CanMentionEveryone", CanModerateChannels = "CanModerateChannels", CanBypassSlowMode = "CanBypassSlowMode", CanReadApplications = "CanReadApplications", CanApproveApplications = "CanApproveApplications", CanEditApplicationForm = "CanEditApplicationForm", CanIndicateLfmInterest = "CanIndicateLfmInterest", CanModifyLfmStatus = "CanModifyLfmStatus", CanReadAnnouncements = "CanReadAnnouncements", CanCreateAnnouncements = "CanCreateAnnouncements", CanManageAnnouncements = "CanManageAnnouncements", CanReadChats = "CanReadChats", CanCreateChats = "CanCreateChats", CanUploadChatMedia = "CanUploadChatMedia", CanCreateThreads = "CanCreateThreads", CanCreateThreadMessages = "CanCreateThreadMessages", CanCreatePrivateMessages = "CanCreatePrivateMessages", CanManageChats = "CanManageChats", CanManageThreads = "CanManageThreads", CanReadEvents = "CanReadEvents", CanEditEvents = "CanEditEvents", CanDeleteEvents = "CanDeleteEvents", CanEditEventRsvps = "CanEditEventRsvps", CanReadForums = "CanReadForums", CanCreateTopics = "CanCreateTopics", CanCreateTopicReplies = "CanCreateTopicReplies", CanDeleteTopics = "CanDeleteTopics", CanStickyTopics = "CanStickyTopics", CanLockTopics = "CanLockTopics", CanReadDocs = "CanReadDocs", CanCreateDocs = "CanCreateDocs", CanEditDocs = "CanEditDocs", CanDeleteDocs = "CanDeleteDocs", CanReadMedia = "CanReadMedia", CanAddMedia = "CanAddMedia", CanEditMedia = "CanEditMedia", CanDeleteMedia = "CanDeleteMedia", CanListenVoice = "CanListenVoice", CanAddVoice = "CanAddVoice", CanManageVoiceGroups = "CanManageVoiceGroups", CanAssignVoiceGroup = "CanAssignVoiceGroup", CanBroadcastVoice = "CanBroadcastVoice", CanDirectVoice = "CanDirectVoice", CanPrioritizeVoice = "CanPrioritizeVoice", CanUseVoiceActivity = "CanUseVoiceActivity", CanMuteMembers = "CanMuteMembers", CanDeafenMembers = "CanDeafenMembers", CanSendVoiceMessages = "CanSendVoiceMessages", CanCreateScrims = "CanCreateScrims", CanManageTournaments = "CanManageTournaments", CanRegisterForTournaments = "CanRegisterForTournaments", CanManageEmotes = "CanManageEmotes", CanChangeNickname = "CanChangeNickname", CanManageNicknames = "CanManageNicknames", CanViewFormResponses = "CanViewFormResponses", CanViewPollResponses = "CanViewPollResponses", CanReadListItems = "CanReadListItems", CanCreateListItems = "CanCreateListItems", CanUpdateListItems = "CanUpdateListItems", CanDeleteListItems = "CanDeleteListItems", CanCompleteListItems = "CanCompleteListItems", CanReorderListItems = "CanReorderListItems", CanViewBracket = "CanViewBracket", CanReportScores = "CanReportScores", CanReadSchedules = "CanReadSchedules", CanCreateSchedule = "CanCreateSchedule", CanDeleteSchedule = "CanDeleteSchedule", CanManageBots = "CanManageBots", CanManageServerXp = "CanManageServerXp", CanReadStreams = "CanReadStreams", CanJoinStreamVoice = "CanJoinStreamVoice", CanCreateStreams = "CanCreateStreams", CanSendStreamMessages = "CanSendStreamMessages", CanAddStreamVoice = "CanAddStreamVoice", CanUseVoiceActivityInStream = "CanUseVoiceActivityInStream", } // Endpoints (credits to TouchGuild) export const CHANNELS = () => `/channels`; export const CHANNEL = (channelID: string) => `/channels/${channelID}`; export const CHANNEL_ARCHIVE = (channelID: string) => `/channels/${channelID}/archive`; export const GUILD = (guildID: string) => `/servers/${guildID}`; export const USER = (userID: string) => `/users/${userID}`; export const USER_SERVERS = (userID: string) => `/users/${userID}/servers`; export const USER_STATUS = (userID: string) => `/users/${userID}/status`; export const CHANNEL_MESSAGES = (channelID: string) => `/channels/${channelID}/messages`; export const CHANNEL_MESSAGE = (channelID: string, messageID: string) => `/channels/${channelID}/messages/${messageID}`; export const CHANNEL_MESSAGE_PIN = (channelID: string, messageID: string) => `/channels/${channelID}/messages/${messageID}/pin`; export const CHANNEL_MESSAGE_EMOTES = (channelID: string, messageID: string) => `/channels/${channelID}/messages/${messageID}/emotes`; export const CHANNEL_MESSAGE_EMOTE = (channelID: string, messageID: string, emoteID: number) => `/channels/${channelID}/messages/${messageID}/emotes/${emoteID}`; export const CHANNEL_ANNOUNCEMENTS = (channelID: string) => `/channels/${channelID}/announcements`; export const CHANNEL_ANNOUNCEMENT = (channelID: string, announcementID: string) => `/channels/${channelID}/announcements/${announcementID}`; export const CHANNEL_ANNOUNCEMENT_EMOTES = (channelID: string, announcementID: string) => `/channels/${channelID}/announcements/${announcementID}/emotes`; export const CHANNEL_ANNOUNCEMENT_EMOTE = (channelID: string, announcementID: string, emoteID: number) => `/channels/${channelID}/announcements/${announcementID}/emotes/${emoteID}`; export const CHANNEL_ANNOUNCEMENT_COMMENTS = (channelID: string, announcementID: string) => `/channels/${channelID}/announcements/${announcementID}/comments`; export const CHANNEL_ANNOUNCEMENT_COMMENT = (channelID: string, announcementID: string, commentID: number) => `/channels/${channelID}/announcements/${announcementID}/comments/${commentID}`; export const CHANNEL_ANNOUNCEMENT_COMMENT_EMOTES = (channelID: string, announcementID: string, commentID: number) => `/channels/${channelID}/announcements/${announcementID}/comments/${commentID}/emotes`; export const CHANNEL_ANNOUNCEMENT_COMMENT_EMOTE = (channelID: string, announcementID: string, commentID: number, emoteID: number) => `/channels/${channelID}/announcements/${announcementID}/comments/${commentID}/emotes/${emoteID}`; export const MEMBER_NICKNAME = (guildID: string, memberID: string) => `/servers/${guildID}/members/${memberID}/nickname`; export const GUILD_MEMBER = (guildID: string, memberID: string) => `/servers/${guildID}/members/${memberID}`; export const GUILD_MEMBER_PERMISSION = (guildID: string, memberID: string) => `/servers/${guildID}/members/${memberID}/permissions`; export const GUILD_MEMBER_XP = (guildID: string, memberID: string) => `/servers/${guildID}/members/${memberID}/xp`; export const GUILD_MEMBER_BULK_XP = (guildID: string) => `/servers/${guildID}/xp`; export const GUILD_MEMBERS = (guildID: string) => `/servers/${guildID}/members`; export const GUILD_MEMBER_SOCIALS = (guildID: string, memberID: string, type: string) => `/servers/${guildID}/members/${memberID}/social-links/${type}`; export const GUILD_CHANNEL_ROLE_PERMISSION = (serverID: string, channelID: string, roleID: number) => `/servers/${serverID}/channels/${channelID}/permissions/roles/${roleID}`; export const GUILD_CHANNEL_ROLE_PERMISSIONS = (serverID: string, channelID: string) => `/servers/${serverID}/channels/${channelID}/permissions/roles`; export const GUILD_CHANNEL_USER_PERMISSION = (serverID: string, channelID: string, userID: string) => `/servers/${serverID}/channels/${channelID}/permissions/users/${userID}`; export const GUILD_CHANNEL_USER_PERMISSIONS = (serverID: string, channelID: string) => `/servers/${serverID}/channels/${channelID}/permissions/users`; export const GUILD_CATEGORY_USER_PERMISSION = (serverID: string, categoryID: number, userID: string) => `/servers/${serverID}/categories/${categoryID}/permissions/users/${userID}`; export const GUILD_CATEGORY_USER_PERMISSIONS = (serverID: string, categoryID: number) => `/servers/${serverID}/categories/${categoryID}/permissions/users`; export const GUILD_CATEGORY_ROLE_PERMISSION = (serverID: string, categoryID: number, roleID: number) => `/servers/${serverID}/categories/${categoryID}/permissions/roles/${roleID}`; export const GUILD_CATEGORY_ROLE_PERMISSIONS = (serverID: string, categoryID: number) => `/servers/${serverID}/categories/${categoryID}/permissions/roles`; export const GUILD_GROUPS = (guildID: string) => `/servers/${guildID}/groups`; export const GUILD_GROUP = (guildID: string, groupID: string) => `/servers/${guildID}/groups/${groupID}`; export const GUILD_GROUP_MEMBER = (groupID: string, memberID: string) => `/groups/${groupID}/members/${memberID}`; export const GUILD_GROUP_MEMBERS = (groupID: string) => `/groups/${groupID}/members/`; export const GUILD_GROUP_ALTERNATIVE = (groupID: string) => `/groups/${groupID}`; export const GUILD_SUBSCRIPTIONS = (guildID: string) => `/servers/${guildID}/subscriptions/tiers`; export const GUILD_SUBSCRIPTION = (guildID: string, subscriptionID: string) => `/servers/${guildID}/subscriptions/tiers/${subscriptionID}`; export const GUILD_BAN = (guildID: string, memberID: string) => `/servers/${guildID}/bans/${memberID}`; export const GUILD_BANS = (guildID: string) => `/servers/${guildID}/bans`; export const GUILD_ROLES = (guildID: string) => `/servers/${guildID}/roles`; export const GUILD_ROLE = (guildID: string, roleID: number) => `/servers/${guildID}/roles/${roleID}`; export const GUILD_ROLE_UPDATE_PERMISSION = (guildID: string, roleID: number) => `/servers/${guildID}/roles/${roleID}/permissions`; export const GUILD_MEMBER_ROLE = (guildID: string, memberID: string, roleID: number) => `/servers/${guildID}/members/${memberID}/roles/${roleID}`; export const GUILD_MEMBER_ROLE_XP = (guildID: string, roleID: number) => `/servers/${guildID}/roles/${roleID}/xp`; export const GUILD_MEMBER_ROLES = (guildID: string, memberID: string) => `/servers/${guildID}/members/${memberID}/roles`; export const FORUM_TOPICS = (channelID: string) => `/channels/${channelID}/topics`; export const FORUM_TOPIC = (channelID: string, topicID: number) => `/channels/${channelID}/topics/${topicID}`; export const FORUM_TOPIC_PIN = (channelID: string, topicID: number) => `/channels/${channelID}/topics/${topicID}/pin`; export const FORUM_TOPIC_LOCK = (channelID: string, topicID: number) => `/channels/${channelID}/topics/${topicID}/lock`; export const FORUM_TOPIC_EMOTE = (channelID: string, topicID: number, emoteID: number) => `/channels/${channelID}/topics/${topicID}/emotes/${emoteID}`; export const FORUM_TOPIC_COMMENTS = (channelID: string, topicID: number) => `/channels/${channelID}/topics/${topicID}/comments`; export const FORUM_TOPIC_COMMENT = (channelID: string, topicID: number, commentID: number) => `/channels/${channelID}/topics/${topicID}/comments/${commentID}`; export const FORUM_TOPIC_COMMENT_EMOTES = (channelID: string, topicID: number, commentID: number) => `/channels/${channelID}/topics/${topicID}/comments/${commentID}/emotes`; export const FORUM_TOPIC_COMMENT_EMOTE = (channelID: string, topicID: number, commentID: number, emoteID: number) => `/channels/${channelID}/topics/${topicID}/comments/${commentID}/emotes/${emoteID}`; export const LIST_ITEMS = (channelID: string)=> `/channels/${channelID}/items`; export const LIST_ITEM = (channelID: string, itemID: string)=> `/channels/${channelID}/items/${itemID}`; export const LIST_ITEM_COMPLETE = (channelID: string, itemID: string)=> `/channels/${channelID}/items/${itemID}/complete`; export const CHANNEL_DOCS = (channelID: string)=> `/channels/${channelID}/docs`; export const CHANNEL_DOC = (channelID: string, docID: number)=> `/channels/${channelID}/docs/${docID}`; export const CHANNEL_DOC_EMOTES = (channelID: string, docID: number)=> `/channels/${channelID}/docs/${docID}/emotes`; export const CHANNEL_DOC_EMOTE = (channelID: string, docID: number, emoteID: number)=> `/channels/${channelID}/docs/${docID}/emote/${emoteID}`; export const CHANNEL_DOC_COMMENTS = (channelID: string, docID: number)=> `/channels/${channelID}/docs/${docID}/comments`; export const CHANNEL_DOC_COMMENT = (channelID: string, docID: number, commentID: number)=> `/channels/${channelID}/docs/${docID}/comments/${commentID}`; export const CHANNEL_DOC_COMMENT_EMOTES = (channelID: string, docID: number, commentID: number) => `/channels/${channelID}/docs/${docID}/comments/${commentID}/emotes`; export const CHANNEL_DOC_COMMENT_EMOTE = (channelID: string, docID: number, commentID: number, emoteID: number) => `/channels/${channelID}/docs/${docID}/comments/${commentID}/emotes/${emoteID}`; export const CHANNEL_EVENTS = (channelID: string)=> `/channels/${channelID}/events`; export const CHANNEL_EVENT = (channelID: string, eventID: number)=> `/channels/${channelID}/events/${eventID}`; export const CHANNEL_EVENT_EMOTES = (channelID: string, eventID: number)=> `/channels/${channelID}/events/${eventID}/emotes`; export const CHANNEL_EVENT_EMOTE = (channelID: string, eventID: number, emoteID: number)=> `/channels/${channelID}/events/${eventID}/emotes/${emoteID}`; export const CHANNEL_EVENT_RSVP = (channelID: string, eventID: number, memberID: string)=> `/channels/${channelID}/events/${eventID}/rsvps/${memberID}`; export const CHANNEL_EVENT_RSVPS = (channelID: string, eventID: number) => `/channels/${channelID}/events/${eventID}/rsvps`; export const CHANNEL_EVENT_COMMENTS = (channelID: string, eventID: number)=> `/channels/${channelID}/events/${eventID}/comments`; export const CHANNEL_EVENT_COMMENT = (channelID: string, eventID: number, commentID: number)=> `/channels/${channelID}/events/${eventID}/comments/${commentID}`; export const CHANNEL_EVENT_COMMENT_EMOTES = (channelID: string, eventID: number, commentID: number)=> `/channels/${channelID}/events/${eventID}/comments/${commentID}/emotes`; export const CHANNEL_EVENT_COMMENT_EMOTE = (channelID: string, eventID: number, commentID: number, emoteID: number)=> `/channels/${channelID}/events/${eventID}/comments/${commentID}/emotes/${emoteID}`; export const CHANNEL_EVENT_EVENT_SERIES = (channelID: string) => `/channels/${channelID}/event_series/`; export const CHANNEL_EVENT_EVENT_SERIES_ENTITY = (channelID: string, seriesID: string) => `/channels/${channelID}/event_series/${seriesID}`; export const GUILD_WEBHOOKS = (guildID: string)=> `/servers/${guildID}/webhooks`; export const GUILD_WEBHOOK = (guildID: string, webhookID: string)=> `/servers/${guildID}/webhooks/${webhookID}`; export const GUILD_CATEGORY_CREATE = (guildID: string) => `/servers/${guildID}/categories`; export const GUILD_CATEGORY = (guildID: string, categoryID: number) => `/servers/${guildID}/categories/${categoryID}`; export const URL_SIGNATURES = () => `/url-signatures`;