box_open_sdk/models/schemas/
authorization.rs1use super::*;
4
5#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6pub struct AccessToken {
7 #[serde(default, skip_serializing_if = "Option::is_none")]
8 pub access_token: Option<String>,
9 #[serde(default, skip_serializing_if = "Option::is_none")]
10 pub expires_in: Option<i64>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub token_type: Option<AccessTokenTokenType>,
13 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub restricted_to: Option<Vec<ResourceScope>>,
15 #[serde(default, skip_serializing_if = "Option::is_none")]
16 pub refresh_token: Option<String>,
17 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub issued_token_type: Option<AccessTokenIssuedTokenType>,
19}
20
21#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
22pub struct PostOAuth2Revoke {
23 #[serde(default, skip_serializing_if = "Option::is_none")]
24 pub client_id: Option<String>,
25 #[serde(default, skip_serializing_if = "Option::is_none")]
26 pub client_secret: Option<String>,
27 #[serde(default, skip_serializing_if = "Option::is_none")]
28 pub token: Option<String>,
29}
30
31#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
32pub struct PostOAuth2Token {
33 pub grant_type: PostOAuth2TokenGrantType,
34 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub client_id: Option<String>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub client_secret: Option<String>,
38 #[serde(default, skip_serializing_if = "Option::is_none")]
39 pub code: Option<String>,
40 #[serde(default, skip_serializing_if = "Option::is_none")]
41 pub refresh_token: Option<String>,
42 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub assertion: Option<String>,
44 #[serde(default, skip_serializing_if = "Option::is_none")]
45 pub subject_token: Option<String>,
46 #[serde(default, skip_serializing_if = "Option::is_none")]
47 pub subject_token_type: Option<AccessTokenIssuedTokenType>,
48 #[serde(default, skip_serializing_if = "Option::is_none")]
49 pub actor_token: Option<String>,
50 #[serde(default, skip_serializing_if = "Option::is_none")]
51 pub actor_token_type: Option<PostOAuth2TokenActorTokenType>,
52 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub scope: Option<String>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub resource: Option<String>,
56 #[serde(default, skip_serializing_if = "Option::is_none")]
57 pub box_subject_type: Option<PostOAuth2TokenBoxSubjectType>,
58 #[serde(default, skip_serializing_if = "Option::is_none")]
59 pub box_subject_id: Option<String>,
60 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub box_shared_link: Option<String>,
62}
63
64#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
65pub struct PostOAuth2TokenRefreshAccessToken {
66 pub grant_type: PostOAuth2TokenRefreshAccessTokenGrantType,
67 pub client_id: String,
68 pub client_secret: String,
69 pub refresh_token: String,
70}
71
72#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
73#[serde(transparent)]
74pub struct AccessTokenIssuedTokenType(pub String);
75
76impl AccessTokenIssuedTokenType {
77 pub const URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN: &'static str =
78 "urn:ietf:params:oauth:token-type:access_token";
79}
80
81#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
82#[serde(transparent)]
83pub struct PostOAuth2TokenGrantType(pub String);
84
85impl PostOAuth2TokenGrantType {
86 pub const AUTHORIZATION_CODE: &'static str = "authorization_code";
87 pub const REFRESH_TOKEN: &'static str = "refresh_token";
88 pub const CLIENT_CREDENTIALS: &'static str = "client_credentials";
89 pub const URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: &'static str =
90 "urn:ietf:params:oauth:grant-type:jwt-bearer";
91 pub const URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE: &'static str =
92 "urn:ietf:params:oauth:grant-type:token-exchange";
93}
94
95#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
96#[serde(transparent)]
97pub struct PostOAuth2TokenActorTokenType(pub String);
98
99impl PostOAuth2TokenActorTokenType {
100 pub const URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ID_TOKEN: &'static str =
101 "urn:ietf:params:oauth:token-type:id_token";
102}
103
104#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
105#[serde(transparent)]
106pub struct PostOAuth2TokenBoxSubjectType(pub String);
107
108impl PostOAuth2TokenBoxSubjectType {
109 pub const ENTERPRISE: &'static str = "enterprise";
110 pub const USER: &'static str = "user";
111}
112
113#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
114#[serde(transparent)]
115pub struct PostOAuth2TokenRefreshAccessTokenGrantType(pub String);
116
117impl PostOAuth2TokenRefreshAccessTokenGrantType {
118 pub const REFRESH_TOKEN: &'static str = "refresh_token";
119}
120
121#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
122#[serde(transparent)]
123pub struct GetAuthorizeResponseType(pub String);
124
125impl GetAuthorizeResponseType {
126 pub const CODE: &'static str = "code";
127}