box-open-sdk 0.4.1

Box API client for Rust (open source, community, punk rock) — typed models, async managers, and a reqwest runtime with retry, backoff, and token refresh.
Documentation
// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.

use super::*;

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AccessToken {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub access_token: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub expires_in: Option<i64>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub token_type: Option<AccessTokenTokenType>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub restricted_to: Option<Vec<ResourceScope>>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub refresh_token: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub issued_token_type: Option<AccessTokenIssuedTokenType>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostOAuth2Revoke {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub client_id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub client_secret: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub token: Option<String>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostOAuth2Token {
    pub grant_type: PostOAuth2TokenGrantType,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub client_id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub client_secret: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub code: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub refresh_token: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub assertion: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub subject_token: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub subject_token_type: Option<AccessTokenIssuedTokenType>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub actor_token: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub actor_token_type: Option<PostOAuth2TokenActorTokenType>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub scope: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub resource: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub box_subject_type: Option<PostOAuth2TokenBoxSubjectType>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub box_subject_id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub box_shared_link: Option<String>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostOAuth2TokenRefreshAccessToken {
    pub grant_type: PostOAuth2TokenRefreshAccessTokenGrantType,
    pub client_id: String,
    pub client_secret: String,
    pub refresh_token: String,
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AccessTokenIssuedTokenType(pub String);

impl AccessTokenIssuedTokenType {
    pub const URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN: &'static str =
        "urn:ietf:params:oauth:token-type:access_token";
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostOAuth2TokenGrantType(pub String);

impl PostOAuth2TokenGrantType {
    pub const AUTHORIZATION_CODE: &'static str = "authorization_code";
    pub const REFRESH_TOKEN: &'static str = "refresh_token";
    pub const CLIENT_CREDENTIALS: &'static str = "client_credentials";
    pub const URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: &'static str =
        "urn:ietf:params:oauth:grant-type:jwt-bearer";
    pub const URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE: &'static str =
        "urn:ietf:params:oauth:grant-type:token-exchange";
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostOAuth2TokenActorTokenType(pub String);

impl PostOAuth2TokenActorTokenType {
    pub const URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ID_TOKEN: &'static str =
        "urn:ietf:params:oauth:token-type:id_token";
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostOAuth2TokenBoxSubjectType(pub String);

impl PostOAuth2TokenBoxSubjectType {
    pub const ENTERPRISE: &'static str = "enterprise";
    pub const USER: &'static str = "user";
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostOAuth2TokenRefreshAccessTokenGrantType(pub String);

impl PostOAuth2TokenRefreshAccessTokenGrantType {
    pub const REFRESH_TOKEN: &'static str = "refresh_token";
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetAuthorizeResponseType(pub String);

impl GetAuthorizeResponseType {
    pub const CODE: &'static str = "code";
}