use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateApiKey201Response {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "publicId")]
pub public_id: String,
#[serde(rename = "scopes")]
pub scopes: std::collections::HashSet<Scopes>,
#[serde(rename = "createdAt")]
pub created_at: chrono::DateTime<chrono::FixedOffset>,
#[serde(rename = "expiresAt", deserialize_with = "Option::deserialize")]
pub expires_at: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "playerId", deserialize_with = "Option::deserialize")]
pub player_id: Option<uuid::Uuid>,
#[serde(rename = "apiKey")]
pub api_key: String,
}
impl CreateApiKey201Response {
pub fn new(name: String, public_id: String, scopes: std::collections::HashSet<Scopes>, created_at: chrono::DateTime<chrono::FixedOffset>, expires_at: Option<chrono::DateTime<chrono::FixedOffset>>, player_id: Option<uuid::Uuid>, api_key: String) -> CreateApiKey201Response {
CreateApiKey201Response {
name,
public_id,
scopes,
created_at,
expires_at,
player_id,
api_key,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Scopes {
#[serde(rename = "*")]
Star,
#[serde(rename = "api-keys:read")]
ApiKeysColonRead,
#[serde(rename = "api-keys:write")]
ApiKeysColonWrite,
#[serde(rename = "crawls:read")]
CrawlsColonRead,
#[serde(rename = "crawls:write")]
CrawlsColonWrite,
#[serde(rename = "patch-notes:read")]
PatchNotesColonRead,
#[serde(rename = "patch-notes:write")]
PatchNotesColonWrite,
#[serde(rename = "players:read")]
PlayersColonRead,
#[serde(rename = "players:read-details")]
PlayersColonReadDetails,
#[serde(rename = "players:write")]
PlayersColonWrite,
#[serde(rename = "punishments:read")]
PunishmentsColonRead,
#[serde(rename = "punishments:write")]
PunishmentsColonWrite,
}
impl Default for Scopes {
fn default() -> Scopes {
Self::Star
}
}