use crate::models::payloads::{APIApplication, APIGuild, APIUser, APIWebhook, OAuth2Scopes};
use serde::{Deserialize, Serialize};
pub type RESTGetAPIOAuth2CurrentApplicationResult = APIApplication;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTGetAPIOAuth2CurrentAuthorizationResult {
pub application: APIApplication,
pub scopes: Vec<OAuth2Scopes>,
pub expires: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<APIUser>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTOAuth2AuthorizationQuery {
pub response_type: String, pub client_id: String,
pub scope: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub redirect_uri: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prompt: Option<String>, }
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostOAuth2TokenRevocationQuery {
pub token: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub token_type_hint: Option<String>, }
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostOAuth2AuthorizationQueryResult {
pub code: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
pub type RESTOAuth2AuthorizationQueryResult = RESTPostOAuth2AuthorizationQueryResult;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostOAuth2AccessTokenURLEncodedData {
pub grant_type: String, pub code: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub redirect_uri: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub client_secret: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[serde(untagged)]
pub enum RESTOAuth2TokenOptionalClientCredentials {
With {
client_id: String,
client_secret: String,
},
Without {},
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostOAuth2AccessTokenResult {
pub access_token: String,
pub token_type: String,
pub expires_in: i32,
pub refresh_token: String,
pub scope: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostOAuth2RefreshTokenURLEncodedData {
pub grant_type: String, pub refresh_token: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub client_secret: Option<String>,
}
pub type RESTPostOAuth2RefreshTokenResult = RESTPostOAuth2AccessTokenResult;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTOAuth2ImplicitAuthorizationQuery {
pub response_type: String, pub client_id: String,
pub scope: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub redirect_uri: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prompt: Option<String>, }
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTOAuth2ImplicitAuthorizationURLFragmentResult {
pub access_token: String,
pub token_type: String,
pub expires_in: i32,
pub scope: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostOAuth2ClientCredentialsURLEncodedData {
pub grant_type: String, pub scope: String,
}
pub type RESTPostOAuth2ClientCredentialsResult = RESTOAuth2ImplicitAuthorizationURLFragmentResult;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTOAuth2BotAuthorizationQuery {
pub client_id: String,
pub scope: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub permissions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub guild_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_guild_select: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTOAuth2AdvancedBotAuthorizationQuery {
pub client_id: String,
pub scope: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub permissions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub guild_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_guild_select: Option<bool>,
pub response_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub redirect_uri: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTOAuth2AdvancedBotAuthorizationQueryResult {
pub code: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
pub guild_id: String,
pub permissions: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostOAuth2AccessTokenWithBotAndGuildsScopeResult {
pub access_token: String,
pub token_type: String,
pub expires_in: i32,
pub refresh_token: String,
pub scope: String,
pub guild: APIGuild,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostOAuth2AccessTokenWithBotAndWebhookIncomingScopeResult {
pub access_token: String,
pub token_type: String,
pub expires_in: i32,
pub refresh_token: String,
pub scope: String,
pub webhook: APIWebhook,
}
pub type RESTPostOAuth2AccessTokenWithBotAndGuildsAndWebhookIncomingScopeResult =
RESTPostOAuth2AccessTokenWithBotAndGuildsScopeResult;