tauri_plugin_google_auth/
models.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize, Default, PartialEq)]
4#[serde(rename_all = "lowercase")]
5pub enum FlowType {
6 #[default]
7 Native,
8 Web,
9}
10
11#[derive(Debug, Deserialize, Serialize)]
12#[serde(rename_all = "camelCase")]
13pub struct SignInRequest {
14 pub client_id: String,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub client_secret: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub scopes: Option<Vec<String>>,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub hosted_domain: Option<String>,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub login_hint: Option<String>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub redirect_uri: Option<String>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub success_html_response: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub flow_type: Option<FlowType>,
29}
30
31#[derive(Debug, Clone, Deserialize, Serialize)]
32#[serde(rename_all = "camelCase")]
33pub struct TokenResponse {
34 pub id_token: Option<String>,
35 pub access_token: String,
36 pub scopes: Vec<String>,
37 pub refresh_token: Option<String>,
38 pub expires_at: Option<i64>,
39}
40
41#[derive(Debug, Deserialize, Serialize)]
42#[serde(rename_all = "camelCase")]
43pub struct SignOutRequest {
44 #[serde(skip_serializing_if = "Option::is_none")]
45 pub access_token: Option<String>,
46 #[serde(skip_serializing_if = "Option::is_none")]
47 pub flow_type: Option<FlowType>,
48}
49
50#[derive(Debug, Clone, Deserialize, Serialize)]
51#[serde(rename_all = "camelCase")]
52pub struct SignOutResponse {
53 pub success: bool,
54}
55
56#[derive(Debug, Deserialize, Serialize)]
57#[serde(rename_all = "camelCase")]
58pub struct RefreshTokenRequest {
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub refresh_token: Option<String>,
61 pub client_id: String,
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub client_secret: Option<String>,
64 #[serde(skip_serializing_if = "Option::is_none")]
65 pub scopes: Option<Vec<String>>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub flow_type: Option<FlowType>,
68}