cronback_api_model/admin/
api_keys.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3#[cfg(feature = "validation")]
4use validator::Validate;
5
6#[derive(Serialize, Deserialize, Debug)]
7#[cfg_attr(feature = "validation", derive(Validate))]
8#[serde(deny_unknown_fields)]
9pub struct CreateAPIkeyRequest {
10 #[cfg_attr(
11 feature = "validation",
12 validate(length(
13 min = 2,
14 max = 30,
15 message = "name must be between 2 and 30 characters"
16 ))
17 )]
18 pub key_name: String,
19 #[serde(flatten)]
20 pub metadata: APIKeyMetaData,
21}
22
23#[derive(Serialize, Deserialize)]
24pub struct CreateAPIKeyResponse {
25 pub key: String,
26}
27
28#[derive(Serialize, Deserialize)]
29pub struct ApiKey {
30 pub id: String,
31 pub name: String,
32 pub created_at: DateTime<Utc>,
33 #[serde(flatten)]
34 pub metadata: APIKeyMetaData,
35}
36
37#[derive(Debug, Serialize, Deserialize, Default)]
38#[serde(deny_unknown_fields)]
39pub struct APIKeyMetaData {
40 pub creator_user_id: Option<String>,
41}