Skip to main content

alibi_sqlx/store/entities/
scim_managed_credential.rs

1use crate::SqlxModel;
2use chrono::{DateTime, Utc};
3#[derive(
4    Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize, sqlx::FromRow, SqlxModel,
5)]
6#[auth(table = "scimManagedCredential")]
7pub struct Model {
8    pub id: String,
9    #[sqlx(rename = "connectionRecordId")]
10    #[serde(rename = "connectionRecordId")]
11    pub connection_record_id: String,
12    #[sqlx(rename = "credentialId")]
13    #[serde(rename = "credentialId")]
14    pub credential_id: String,
15    #[sqlx(rename = "tokenDigest")]
16    #[serde(rename = "tokenDigest")]
17    pub token_digest: String,
18    #[sqlx(rename = "hashVersion")]
19    #[serde(rename = "hashVersion")]
20    pub hash_version: String,
21    #[sqlx(rename = "activeSlotKey")]
22    #[serde(rename = "activeSlotKey")]
23    pub active_slot_key: String,
24    pub status: String,
25    #[sqlx(rename = "serializedScopes")]
26    #[serde(rename = "serializedScopes")]
27    pub serialized_scopes: String,
28    #[sqlx(rename = "expiresAt")]
29    #[serde(rename = "expiresAt")]
30    pub expires_at: DateTime<Utc>,
31    #[sqlx(rename = "createdAt")]
32    #[serde(rename = "createdAt")]
33    pub created_at: DateTime<Utc>,
34    #[sqlx(rename = "createdBy")]
35    #[serde(rename = "createdBy")]
36    pub created_by: String,
37    #[sqlx(rename = "lastUsedAt")]
38    #[serde(rename = "lastUsedAt")]
39    pub last_used_at: Option<DateTime<Utc>>,
40    #[sqlx(rename = "revokedAt")]
41    #[serde(rename = "revokedAt")]
42    pub revoked_at: Option<DateTime<Utc>>,
43    #[sqlx(rename = "revokedBy")]
44    #[serde(rename = "revokedBy")]
45    pub revoked_by: Option<String>,
46    #[sqlx(rename = "decommissionedAt")]
47    #[serde(rename = "decommissionedAt")]
48    pub decommissioned_at: Option<DateTime<Utc>>,
49}
50
51impl From<Model> for alibi_core::store::ScimManagedCredential {
52    fn from(row: Model) -> Self {
53        Self {
54            id: row.id,
55            connection_record_id: row.connection_record_id,
56            credential_id: row.credential_id,
57            token_digest: row.token_digest,
58            hash_version: row.hash_version,
59            active_slot_key: row.active_slot_key,
60            status: row.status,
61            serialized_scopes: row.serialized_scopes,
62            expires_at: row.expires_at,
63            created_at: row.created_at,
64            created_by: row.created_by,
65            last_used_at: row.last_used_at,
66            revoked_at: row.revoked_at,
67            revoked_by: row.revoked_by,
68            decommissioned_at: row.decommissioned_at,
69        }
70    }
71}