feat: role subscriptions (#665)

This commit is contained in:
Almeida
2023-01-10 21:07:28 +00:00
committed by GitHub
parent 195156480c
commit 0b4058bdd4
14 changed files with 126 additions and 14 deletions

View File

@@ -689,8 +689,8 @@ export enum MessageType {
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
InteractionPremiumUpsell = 26,
RoleSubscriptionPurchase,
InteractionPremiumUpsell,
/**
* @unstable
*/

View File

@@ -400,6 +400,14 @@ export enum GuildFeature {
* Guild can enable welcome screen, Membership Screening and discovery, and receives community updates
*/
Community = 'COMMUNITY',
/**
* Guild has enabled monetization
*/
CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL',
/**
* Guild has enabled the role subscription promo page
*/
CreatorStorePage = 'CREATOR_STORE_PAGE',
/*
* Guild has been set as a support server on the App Directory
*/
@@ -446,6 +454,8 @@ export enum GuildFeature {
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has enabled monetization
*
* @unstable This feature is no longer documented by Discord
*/
MonetizationEnabled = 'MONETIZATION_ENABLED',
/**
@@ -473,6 +483,14 @@ export enum GuildFeature {
* Guild is able to set role icons
*/
RoleIcons = 'ROLE_ICONS',
/**
* Guild has role subscriptions that can be purchased
*/
RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE',
/**
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has enabled ticketed events
*/
@@ -723,7 +741,7 @@ export interface APIGuildIntegration {
scopes?: OAuth2Scopes[];
}
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord';
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord' | 'guild_subscription';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

View File

@@ -72,4 +72,12 @@ export interface APIRoleTags {
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
}

View File

@@ -680,8 +680,8 @@ export enum MessageType {
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
InteractionPremiumUpsell = 26,
RoleSubscriptionPurchase,
InteractionPremiumUpsell,
/**
* @unstable
*/

View File

@@ -400,6 +400,14 @@ export enum GuildFeature {
* Guild can enable welcome screen, Membership Screening and discovery, and receives community updates
*/
Community = 'COMMUNITY',
/**
* Guild has enabled monetization
*/
CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL',
/**
* Guild has enabled the role subscription promo page
*/
CreatorStorePage = 'CREATOR_STORE_PAGE',
/*
* Guild has been set as a support server on the App Directory
*/
@@ -446,6 +454,8 @@ export enum GuildFeature {
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has enabled monetization
*
* @unstable This feature is no longer documented by Discord
*/
MonetizationEnabled = 'MONETIZATION_ENABLED',
/**
@@ -473,6 +483,14 @@ export enum GuildFeature {
* Guild is able to set role icons
*/
RoleIcons = 'ROLE_ICONS',
/**
* Guild has role subscriptions that can be purchased
*/
RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE',
/**
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has enabled ticketed events
*/
@@ -723,7 +741,7 @@ export interface APIGuildIntegration {
scopes?: OAuth2Scopes[];
}
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord';
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord' | 'guild_subscription';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

View File

@@ -72,4 +72,12 @@ export interface APIRoleTags {
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
}

View File

@@ -120,6 +120,8 @@ export enum RESTJSONErrorCodes {
BitrateIsTooHighForChannelOfThisType = 30052,
MaximumNumberOfPremiumEmojisReached = 30056,
MaximumNumberOfWebhooksPerGuildReached = 30058,
Unauthorized = 40001,
@@ -220,7 +222,9 @@ export enum RESTJSONErrorCodes {
FailedToResizeAssetBelowTheMinimumSize = 50138,
UploadedFileNotFound = 50146,
CannotMixSubscriptionAndNonSubscriptionRolesForAnEmoji = 50144,
CannotConvertBetweenPremiumEmojiAndNormalEmoji,
UploadedFileNotFound,
YouDoNotHavePermissionToSendThisSticker = 50600,

View File

@@ -689,8 +689,8 @@ export enum MessageType {
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
InteractionPremiumUpsell = 26,
RoleSubscriptionPurchase,
InteractionPremiumUpsell,
/**
* @unstable
*/

View File

@@ -400,6 +400,14 @@ export enum GuildFeature {
* Guild can enable welcome screen, Membership Screening and discovery, and receives community updates
*/
Community = 'COMMUNITY',
/**
* Guild has enabled monetization
*/
CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL',
/**
* Guild has enabled the role subscription promo page
*/
CreatorStorePage = 'CREATOR_STORE_PAGE',
/*
* Guild has been set as a support server on the App Directory
*/
@@ -446,6 +454,8 @@ export enum GuildFeature {
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has enabled monetization
*
* @unstable This feature is no longer documented by Discord
*/
MonetizationEnabled = 'MONETIZATION_ENABLED',
/**
@@ -473,6 +483,14 @@ export enum GuildFeature {
* Guild is able to set role icons
*/
RoleIcons = 'ROLE_ICONS',
/**
* Guild has role subscriptions that can be purchased
*/
RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE',
/**
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has enabled ticketed events
*/
@@ -723,7 +741,7 @@ export interface APIGuildIntegration {
scopes?: OAuth2Scopes[];
}
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord';
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord' | 'guild_subscription';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

View File

@@ -72,4 +72,12 @@ export interface APIRoleTags {
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
}

View File

@@ -680,8 +680,8 @@ export enum MessageType {
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
InteractionPremiumUpsell = 26,
RoleSubscriptionPurchase,
InteractionPremiumUpsell,
/**
* @unstable
*/

View File

@@ -400,6 +400,14 @@ export enum GuildFeature {
* Guild can enable welcome screen, Membership Screening and discovery, and receives community updates
*/
Community = 'COMMUNITY',
/**
* Guild has enabled monetization
*/
CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL',
/**
* Guild has enabled the role subscription promo page
*/
CreatorStorePage = 'CREATOR_STORE_PAGE',
/*
* Guild has been set as a support server on the App Directory
*/
@@ -446,6 +454,8 @@ export enum GuildFeature {
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has enabled monetization
*
* @unstable This feature is no longer documented by Discord
*/
MonetizationEnabled = 'MONETIZATION_ENABLED',
/**
@@ -473,6 +483,14 @@ export enum GuildFeature {
* Guild is able to set role icons
*/
RoleIcons = 'ROLE_ICONS',
/**
* Guild has role subscriptions that can be purchased
*/
RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE',
/**
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has enabled ticketed events
*/
@@ -723,7 +741,7 @@ export interface APIGuildIntegration {
scopes?: OAuth2Scopes[];
}
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord';
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord' | 'guild_subscription';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

View File

@@ -72,4 +72,12 @@ export interface APIRoleTags {
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
}

View File

@@ -120,6 +120,8 @@ export enum RESTJSONErrorCodes {
BitrateIsTooHighForChannelOfThisType = 30052,
MaximumNumberOfPremiumEmojisReached = 30056,
MaximumNumberOfWebhooksPerGuildReached = 30058,
Unauthorized = 40001,
@@ -220,7 +222,9 @@ export enum RESTJSONErrorCodes {
FailedToResizeAssetBelowTheMinimumSize = 50138,
UploadedFileNotFound = 50146,
CannotMixSubscriptionAndNonSubscriptionRolesForAnEmoji = 50144,
CannotConvertBetweenPremiumEmojiAndNormalEmoji,
UploadedFileNotFound,
YouDoNotHavePermissionToSendThisSticker = 50600,