use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTpContactCreateUserEvent {
#[serde(rename="SuiteId")]
pub suite_id: String,
#[serde(rename="InfoType")]
pub info_type: String,
#[serde(rename="TimeStamp")]
pub time: i64,
#[serde(rename="AuthCorpId")]
pub auth_corp_id: String,
#[serde(rename="ChangeType")]
pub change_type: String,
#[serde(rename="UserID")]
pub user_id: String,
#[serde(rename="Name")]
pub name: Option<String>,
#[serde(rename="Department")]
pub department: String,
#[serde(rename="MainDepartment")]
pub main_department: i64,
#[serde(rename="IsLeaderInDept")]
pub is_leader_in_dept: Option<String>,
#[serde(rename="DirectLeader")]
pub direct_leader: Option<Vec<String>>,
#[serde(rename="Mobile")]
pub mobile: Option<String>,
#[serde(rename="Gender")]
pub gender: Option<i64>,
#[serde(rename="Position")]
pub position: Option<String>,
#[serde(rename="Email")]
pub email: String,
#[serde(rename="BizMail")]
pub biz_mail: Option<String>,
#[serde(rename="Avatar")]
pub avatar: Option<String>,
#[serde(rename="Telephone")]
pub telephone: Option<String>,
#[serde(rename="Address")]
pub address: Option<String>,
#[serde(rename="Alias")]
pub alias: Option<String>,
#[serde(rename="ExtAttr")]
pub ext_attrs: Option<ExtAttrs>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpExtAttrItemText {
#[serde(rename = "Value")]
pub value: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpExtAttrItemWeb {
#[serde(rename="Title")]
pub title: String,
#[serde(rename="Url")]
pub url: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTpContactUpdateUserEvent {
#[serde(rename="SuiteId")]
pub suite_id: String,
#[serde(rename="InfoType")]
pub info_type: String,
#[serde(rename="TimeStamp")]
pub time: i64,
#[serde(rename="AuthCorpId")]
pub auth_corp_id: String,
#[serde(rename="ChangeType")]
pub change_type: String,
#[serde(rename="UserID")]
pub user_id: String,
#[serde(rename="OpenUserID")]
pub open_user_id: String,
#[serde(rename="NewUserID")]
pub new_user_id: String,
#[serde(rename="Name")]
pub name: Option<String>,
#[serde(rename="Department")]
pub department: String,
#[serde(rename="MainDepartment")]
pub main_department: i64,
#[serde(rename="IsLeaderInDept")]
pub is_leader_in_dept: Option<String>,
#[serde(rename="Position")]
pub position: Option<String>,
#[serde(rename="Mobile")]
pub mobile: Option<String>,
#[serde(rename="Gender")]
pub gender: Option<i64>,
#[serde(rename="Email")]
pub email: String,
#[serde(rename="Status")]
pub status: i64,
#[serde(rename="Avatar")]
pub avatar: Option<String>,
#[serde(rename="Alias")]
pub alias: Option<String>,
#[serde(rename="Telephone")]
pub telephone: Option<String>,
#[serde(rename="Address")]
pub address: Option<String>,
#[serde(rename="DirectLeader")]
pub direct_leader: Option<String>,
#[serde(rename="BizMail")]
pub biz_mail: Option<String>,
#[serde(rename="ExtAttr")]
pub ext_attrs: Option<ExtAttrs>,
}
#[derive(Debug, Serialize, Deserialize,Clone)]
pub struct ExtAttrs {
#[serde(rename = "Item")]
items: Vec<ExtAttrItem>
}
#[derive(Debug, Serialize, Deserialize,Clone)]
pub struct ExtAttrItem {
#[serde(rename = "Name")]
name: String,
#[serde(rename = "Type")]
attr_type: u32,
#[serde(rename="Text")]
pub text: Option<CpExtAttrItemText>,
#[serde(rename="Web")]
pub web: Option<CpExtAttrItemWeb>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTpContactDeleteUserEvent {
#[serde(rename="SuiteId")]
pub suite_id: String,
#[serde(rename="InfoType")]
pub info_type: String,
#[serde(rename="TimeStamp")]
pub time: i64,
#[serde(rename="AuthCorpId")]
pub auth_corp_id: String,
#[serde(rename="ChangeType")]
pub change_type: String,
#[serde(rename="OpenUserID")]
pub open_user_id: String,
#[serde(rename="UserID")]
pub user_id: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTpContactCreatePartyEvent {
#[serde(rename="SuiteId")]
pub suite_id: String,
#[serde(rename="InfoType")]
pub info_type: String,
#[serde(rename="TimeStamp")]
pub time: i64,
#[serde(rename="AuthCorpId")]
pub auth_corp_id: String,
#[serde(rename="ChangeType")]
pub change_type: String,
#[serde(rename="Id")]
pub id: i32,
#[serde(rename="ParentId")]
pub parent_id: i32,
#[serde(rename="Name")]
pub name: String,
#[serde(rename="Order")]
pub order: i32,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTpContactUpdatePartyEvent {
#[serde(rename="SuiteId")]
pub suite_id: String,
#[serde(rename="InfoType")]
pub info_type: String,
#[serde(rename="TimeStamp")]
pub time: i64,
#[serde(rename="AuthCorpId")]
pub auth_corp_id: String,
#[serde(rename="ChangeType")]
pub change_type: String,
#[serde(rename="Id")]
pub id: i32,
#[serde(rename="ParentId")]
pub parent_id: i32,
#[serde(rename="Name")]
pub name: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTpContactDeletePartyEvent {
#[serde(rename="SuiteId")]
pub suite_id: String,
#[serde(rename="InfoType")]
pub info_type: String,
#[serde(rename="TimeStamp")]
pub time: i64,
#[serde(rename="AuthCorpId")]
pub auth_corp_id: String,
#[serde(rename="ChangeType")]
pub change_type: String,
#[serde(rename="Id")]
pub id: i32,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTpContactUpdateTagEvent {
#[serde(rename="SuiteId")]
pub suite_id: String,
#[serde(rename="InfoType")]
pub info_type: String,
#[serde(rename="TimeStamp")]
pub time: i64,
#[serde(rename="AuthCorpId")]
pub auth_corp_id: String,
#[serde(rename="ChangeType")]
pub change_type: String,
#[serde(rename="TagId")]
pub tag_id: i32,
#[serde(rename="AddUserItems")]
pub add_users: Option<String>,
#[serde(rename="DelUserItems")]
pub delete_users: Option<String>,
#[serde(rename="AddPartyItems")]
pub add_party: Option<String>,
#[serde(rename="DelPartyItems")]
pub delete_party: Option<String>,
}