Skip to main content

box_open_sdk/models/schemas/
integration_mappings.rs

1// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.
2
3use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct IntegrationMapping {
9    pub id: String,
10    pub r#type: IntegrationMappingType,
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub integration_type: Option<IntegrationMappingIntegrationType>,
13    #[serde(default, skip_serializing_if = "Option::is_none")]
14    pub is_manually_created: Option<bool>,
15    #[serde(default, skip_serializing_if = "Option::is_none")]
16    pub options: Option<IntegrationMappingSlackOptions>,
17    #[serde(default, skip_serializing_if = "Option::is_none")]
18    pub created_by: Option<UserIntegrationMappings>,
19    #[serde(default, skip_serializing_if = "Option::is_none")]
20    pub modified_by: Option<UserIntegrationMappings>,
21    pub partner_item: IntegrationMappingPartnerItemSlack,
22    pub box_item: FolderMini,
23    #[serde(default, skip_serializing_if = "Option::is_none")]
24    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
25    #[serde(default, skip_serializing_if = "Option::is_none")]
26    pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
27}
28
29#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
30pub struct IntegrationMappingBoxItemSlack {
31    pub r#type: FolderType,
32    pub id: String,
33}
34
35#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
36pub struct IntegrationMappingPartnerItemSlack {
37    pub r#type: IntegrationMappingPartnerItemSlackType,
38    pub id: String,
39    #[serde(
40        default,
41        skip_serializing_if = "Option::is_none",
42        deserialize_with = "double_option"
43    )]
44    pub slack_workspace_id: Option<Option<String>>,
45    #[serde(
46        default,
47        skip_serializing_if = "Option::is_none",
48        deserialize_with = "double_option"
49    )]
50    pub slack_org_id: Option<Option<String>>,
51}
52
53#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
54pub struct IntegrationMappingPartnerItemTeams {
55    pub r#type: IntegrationMappingPartnerItemTeamsType,
56    pub id: String,
57    pub tenant_id: String,
58}
59
60#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
61pub struct IntegrationMappingPartnerItemTeamsCreateRequest {
62    pub r#type: IntegrationMappingPartnerItemTeamsType,
63    pub id: String,
64    pub tenant_id: String,
65    pub team_id: String,
66}
67
68#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
69pub struct IntegrationMappings {
70    #[serde(default, skip_serializing_if = "Option::is_none")]
71    pub limit: Option<i64>,
72    #[serde(
73        default,
74        skip_serializing_if = "Option::is_none",
75        deserialize_with = "double_option"
76    )]
77    pub next_marker: Option<Option<String>>,
78    #[serde(default, skip_serializing_if = "Option::is_none")]
79    pub entries: Option<Vec<IntegrationMapping>>,
80}
81
82#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
83pub struct IntegrationMappingSlackCreateRequest {
84    pub partner_item: IntegrationMappingPartnerItemSlack,
85    pub box_item: IntegrationMappingBoxItemSlack,
86    #[serde(default, skip_serializing_if = "Option::is_none")]
87    pub options: Option<IntegrationMappingSlackOptions>,
88}
89
90#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
91pub struct IntegrationMappingSlackOptions {
92    #[serde(default, skip_serializing_if = "Option::is_none")]
93    pub is_access_management_disabled: Option<bool>,
94}
95
96#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
97pub struct IntegrationMappingsTeams {
98    #[serde(default, skip_serializing_if = "Option::is_none")]
99    pub entries: Option<Vec<IntegrationMappingTeams>>,
100}
101
102#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
103pub struct IntegrationMappingTeams {
104    pub id: String,
105    pub r#type: IntegrationMappingType,
106    #[serde(default, skip_serializing_if = "Option::is_none")]
107    pub integration_type: Option<IntegrationMappingTeamsIntegrationType>,
108    #[serde(default, skip_serializing_if = "Option::is_none")]
109    pub is_overridden_by_manual_mapping: Option<bool>,
110    pub partner_item: IntegrationMappingPartnerItemTeams,
111    pub box_item: FolderReference,
112    #[serde(default, skip_serializing_if = "Option::is_none")]
113    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
114    #[serde(default, skip_serializing_if = "Option::is_none")]
115    pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
116}
117
118#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
119pub struct IntegrationMappingTeamsCreateRequest {
120    pub partner_item: IntegrationMappingPartnerItemTeamsCreateRequest,
121    pub box_item: FolderReference,
122}
123
124#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
125pub struct UserIntegrationMappings {
126    pub id: String,
127    pub r#type: VariableValueType,
128    #[serde(default, skip_serializing_if = "Option::is_none")]
129    pub name: Option<String>,
130    #[serde(default, skip_serializing_if = "Option::is_none")]
131    pub login: Option<String>,
132}
133
134#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
135#[serde(transparent)]
136pub struct IntegrationMappingType(pub String);
137
138impl IntegrationMappingType {
139    pub const INTEGRATION_MAPPING: &'static str = "integration_mapping";
140}
141
142#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
143#[serde(transparent)]
144pub struct IntegrationMappingIntegrationType(pub String);
145
146impl IntegrationMappingIntegrationType {
147    pub const SLACK: &'static str = "slack";
148}
149
150#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
151#[serde(transparent)]
152pub struct IntegrationMappingPartnerItemSlackType(pub String);
153
154impl IntegrationMappingPartnerItemSlackType {
155    pub const CHANNEL: &'static str = "channel";
156}
157
158#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
159#[serde(transparent)]
160pub struct IntegrationMappingPartnerItemTeamsType(pub String);
161
162impl IntegrationMappingPartnerItemTeamsType {
163    pub const CHANNEL: &'static str = "channel";
164    pub const TEAM: &'static str = "team";
165}
166
167#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
168#[serde(transparent)]
169pub struct IntegrationMappingTeamsIntegrationType(pub String);
170
171impl IntegrationMappingTeamsIntegrationType {
172    pub const TEAMS: &'static str = "teams";
173}
174
175#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
176pub struct UpdateSlackRequest {
177    #[serde(default, skip_serializing_if = "Option::is_none")]
178    pub box_item: Option<IntegrationMappingBoxItemSlack>,
179    #[serde(default, skip_serializing_if = "Option::is_none")]
180    pub options: Option<IntegrationMappingSlackOptions>,
181}
182
183#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
184pub struct UpdateTeamRequest {
185    #[serde(default, skip_serializing_if = "Option::is_none")]
186    pub box_item: Option<FolderReference>,
187}