Skip to main content

hessra_client/
types.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone)]
4pub struct TokenRequest {
5    pub resource: String,
6    pub operation: String,
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub namespace: Option<String>,
9}
10
11#[derive(Serialize, Deserialize, Debug, Clone)]
12pub struct TokenResponse {
13    pub response_msg: String,
14    pub token: Option<String>,
15}
16
17#[derive(Serialize, Deserialize, Debug, Clone)]
18pub struct VerifyTokenRequest {
19    pub token: String,
20    pub subject: String,
21    pub resource: String,
22    pub operation: String,
23}
24
25#[derive(Serialize, Deserialize, Debug, Clone)]
26pub struct VerifyTokenResponse {
27    pub response_msg: String,
28}
29
30#[derive(Serialize, Deserialize, Debug, Clone)]
31pub struct PublicKeyResponse {
32    pub response_msg: String,
33    pub public_key: String,
34}
35
36#[derive(Serialize, Deserialize, Debug, Clone)]
37pub struct HealthResponse {
38    pub status: String,
39    pub version: String,
40}
41
42#[derive(Serialize, Deserialize, Debug, Clone)]
43pub struct MintIdentityTokenRequest {
44    pub subject: String,
45    pub duration: Option<u64>,
46}
47
48#[derive(Serialize, Deserialize, Debug, Clone)]
49pub struct MintIdentityTokenResponse {
50    pub response_msg: String,
51    pub token: Option<String>,
52    pub expires_in: Option<u64>,
53    pub identity: Option<String>,
54}
55
56#[derive(Serialize, Deserialize, Debug, Clone)]
57pub struct IdentityTokenRequest {
58    pub identifier: Option<String>,
59}
60
61#[derive(Serialize, Deserialize, Debug, Clone)]
62pub struct IdentityTokenResponse {
63    pub response_msg: String,
64    pub token: Option<String>,
65    pub expires_in: Option<u64>,
66    pub identity: Option<String>,
67}
68
69#[derive(Serialize, Deserialize, Debug, Clone)]
70pub struct RefreshIdentityTokenRequest {
71    pub current_token: String,
72    pub identifier: Option<String>,
73}