use serde::{Deserialize, Serialize};
use crate::auth::{AbsoluteUrl, SecretBearer};
use crate::ids::TenantSlug;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
#[cfg_attr(feature = "server", derive(utoipa::ToSchema))]
pub struct DeviceAuthorizationRequest {
pub tenant: TenantSlug,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
#[cfg_attr(feature = "server", derive(utoipa::ToSchema))]
#[serde(deny_unknown_fields)]
pub struct DeviceAuthorization {
pub device_code: SecretBearer,
pub user_code: String,
pub verification_uri: AbsoluteUrl,
pub verification_uri_complete: AbsoluteUrl,
pub expires_in: u64,
pub interval: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
#[cfg_attr(feature = "server", derive(utoipa::ToSchema))]
pub struct TokenRevocationRequest {
pub token: SecretBearer,
}