Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

document role connections #5668

Merged
merged 5 commits into from
Dec 12, 2022
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 24 additions & 23 deletions docs/resources/Application.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,30 @@

###### Application Structure

| Field | Type | Description |
| ---------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| id | snowflake | the id of the app |
| name | string | the name of the app |
| icon | ?string | the [icon hash](#DOCS_REFERENCE/image-formatting) of the app |
| description | string | the description of the app |
| rpc_origins? | array of strings | an array of rpc origin urls, if rpc is enabled |
| bot_public | boolean | when false only app owner can join the app's bot to guilds |
| bot_require_code_grant | boolean | when true the app's bot will only join upon completion of the full oauth2 code grant flow |
| terms_of_service_url? | string | the url of the app's terms of service |
| privacy_policy_url? | string | the url of the app's privacy policy |
| owner? | partial [user](#DOCS_RESOURCES_USER/user-object) object | partial user object containing info on the owner of the application |
| summary *(deprecated)* | string | **deprecated and will be removed in v11.** An empty string. |
| verify_key | string | the hex encoded key for verification in interactions and the GameSDK's [GetTicket](#DOCS_GAME_SDK_APPLICATIONS/getticket) |
| team | ?[team](#DOCS_TOPICS_TEAMS/data-models-team-object) object | if the application belongs to a team, this will be a list of the members of that team |
| guild_id? | snowflake | if this application is a game sold on Discord, this field will be the guild to which it has been linked |
| primary_sku_id? | snowflake | if this application is a game sold on Discord, this field will be the id of the "Game SKU" that is created, if exists |
| slug? | string | if this application is a game sold on Discord, this field will be the URL slug that links to the store page |
| cover_image? | string | the application's default rich presence invite [cover image hash](#DOCS_REFERENCE/image-formatting) |
| flags? | integer | the application's public [flags](#DOCS_RESOURCES_APPLICATION/application-object-application-flags) |
| tags? | array of strings | up to 5 tags describing the content and functionality of the application |
| install_params? | [install params](#DOCS_RESOURCES_APPLICATION/install-params-object) object | settings for the application's default in-app authorization link, if enabled |
| custom_install_url? | string | the application's default custom authorization link, if enabled |
| Field | Type | Description |
| ---------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | snowflake | the id of the app |
| name | string | the name of the app |
| icon | ?string | the [icon hash](#DOCS_REFERENCE/image-formatting) of the app |
| description | string | the description of the app |
| rpc_origins? | array of strings | an array of rpc origin urls, if rpc is enabled |
| bot_public | boolean | when false only app owner can join the app's bot to guilds |
| bot_require_code_grant | boolean | when true the app's bot will only join upon completion of the full oauth2 code grant flow |
| terms_of_service_url? | string | the url of the app's terms of service |
| privacy_policy_url? | string | the url of the app's privacy policy |
| owner? | partial [user](#DOCS_RESOURCES_USER/user-object) object | partial user object containing info on the owner of the application |
| summary *(deprecated)* | string | **deprecated and will be removed in v11.** An empty string. |
| verify_key | string | the hex encoded key for verification in interactions and the GameSDK's [GetTicket](#DOCS_GAME_SDK_APPLICATIONS/getticket) |
| team | ?[team](#DOCS_TOPICS_TEAMS/data-models-team-object) object | if the application belongs to a team, this will be a list of the members of that team |
| guild_id? | snowflake | if this application is a game sold on Discord, this field will be the guild to which it has been linked |
| primary_sku_id? | snowflake | if this application is a game sold on Discord, this field will be the id of the "Game SKU" that is created, if exists |
| slug? | string | if this application is a game sold on Discord, this field will be the URL slug that links to the store page |
| cover_image? | string | the application's default rich presence invite [cover image hash](#DOCS_REFERENCE/image-formatting) |
| flags? | integer | the application's public [flags](#DOCS_RESOURCES_APPLICATION/application-object-application-flags) |
| tags? | array of strings | up to 5 tags describing the content and functionality of the application |
| install_params? | [install params](#DOCS_RESOURCES_APPLICATION/install-params-object) object | settings for the application's default in-app authorization link, if enabled |
| custom_install_url? | string | the application's default custom authorization link, if enabled |
| role_connections_verification_url? | string | the application's role connection verification entry point, which when configured will render the app as a verification method in the guild role verification configuration |

###### Example Application Object

Expand Down
46 changes: 46 additions & 0 deletions docs/resources/Application_Role_Connection_Metadata.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Application Role Connection Metadata

A representation of role connection metadata for an [application](#DOCS_RESOURCES_APPLICATION/).

When a guild has added a bot and that bot has configured its [`role_connections_verification_url`](#DOCS_RESOURCES_APPLICATION/application-object) (in the developer portal), the application will render as a potential verification method in the guild's role verification configuration.

If an application has configured role connection metadata, its metadata will appear in the role verification configuration when the application has been added as a verification method to the role.

When a user connects their account using the bot's [`role_connections_verification_url`](#DOCS_RESOURCES_APPLICATION/application-object), the bot will [update a user's role connection with metadata](#DOCS_RESOURCES_USER/update-user-application-role-connection) using the OAuth2 `role_connections.write` scope.

### Application Role Connection Metadata Object

###### Application Role Connection Metadata Structure
night marked this conversation as resolved.
Show resolved Hide resolved

| Field | Type | Description |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| type | [ApplicationRoleConnectionMetadataType](#DOCS_RESOURCES_APPLICATION_ROLE_CONNECTION_METADATA/application-role-connection-metadata-object-application-role-connection-metadata-type) | type of metadata value |
| key | string | dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters) |
| name | string | name of the metadata field |
| name_localizations? | dictionary with keys in [available locales](#DOCS_REFERENCE/locales) | translations of the name |
| description | string | description of the metadata field |
| description_localizations | dictionary with keys in [available locales](#DOCS_REFERENCE/locales) | translations of the description |
night marked this conversation as resolved.
Show resolved Hide resolved

###### Application Role Connection Metadata Type
night marked this conversation as resolved.
Show resolved Hide resolved

| Type | Value | Description |
| ------------------------------ | ----- | -------------------------------------------------------------------------------------------------------------------------------------- |
| INTEGER_LESS_THAN_OR_EQUAL | 1 | the metadata value (`integer`) is less than or equal to the guild's configured value (`integer`) |
| INTEGER_GREATER_THAN_OR_EQUAL | 2 | the metadata value (`integer`) is greater than or equal to the guild's configured value (`integer`) |
| INTEGER_EQUAL | 3 | the metadata value (`integer`) is equal to the guild's configured value (`integer`) |
| INTEGER_NOT_EQUAL | 4 | the metadata value (`integer`) is not equal to the guild's configured value (`integer`) |
| DATETIME_LESS_THAN_OR_EQUAL | 5 | the metadata value (`ISO8601 string`) is less than or equal to the guild's configured value (`integer`; `days before current date`) |
| DATETIME_GREATER_THAN_OR_EQUAL | 6 | the metadata value (`ISO8601 string`) is greater than or equal to the guild's configured value (`integer`; `days before current date`) |
| BOOLEAN_EQUAL | 7 | the metadata value (`integer`) is equal to the guild's configured value (`integer`; `1`) |
| BOOLEAN_NOT_EQUAL | 8 | the metadata value (`integer`) is not equal to the guild's configured value (`integer`; `1`) |

## Get Application Role Connection Metadata Records % GET /applications/{application.id#DOCS_RESOURCES_APPLICATION/application-object}/role-connections/metadata

Returns a list of [application role connection metadata](#DOCS_RESOURCES_APPLICATION_ROLE_CONNECTION_METADATA/application-role-connection-metadata-object) objects for the given application.

## Update Application Role Connection Metadata Records % PUT /applications/{application.id#DOCS_RESOURCES_APPLICATION/application-object}/role-connections/metadata

Updates a list of [application role connection metadata](#DOCS_RESOURCES_APPLICATION_ROLE_CONNECTION_METADATA/application-role-connection-metadata-object) objects for the given application.
night marked this conversation as resolved.
Show resolved Hide resolved

> info
> An application can have a maximum of 5 metadata records.
Loading