use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct SeatAssignmentListRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SeatAssignment {
#[serde(skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub seat_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub assigned_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SeatActivityListRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SeatActivity {
#[serde(skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub activity_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub activity_level: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AuditLogListRequest {
pub app_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operation_type: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AuditLog {
#[serde(skip_serializing_if = "Option::is_none")]
pub log_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operator_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operator_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operation_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operation_object: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operation_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operation_result: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DataChangeLogListRequest {
pub app_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_api_name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DataChangeLog {
#[serde(skip_serializing_if = "Option::is_none")]
pub log_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub record_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_api_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub change_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub change_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub changed_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub before_data: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub after_data: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RoleMemberAuthorizationRequest {
pub app_id: String,
pub role_api_name: String,
pub user_ids: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RoleMember {
#[serde(skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub role_api_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub authorized_time: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RecordPermissionMemberAuthorizationRequest {
pub app_id: String,
pub record_permission_api_name: String,
pub user_ids: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub record_ids: Option<Vec<String>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OqlQueryRequest {
pub app_id: String,
pub oql: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OqlQueryResult {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_count: Option<i32>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RecordSearchRequest {
pub app_id: String,
pub object_api_name: String,
pub keyword: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RecordQueryRequest {
pub app_id: String,
pub object_api_name: String,
pub record_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub fields: Option<Vec<String>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RecordCreateRequest {
pub app_id: String,
pub object_api_name: String,
pub data: serde_json::Value,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RecordUpdateRequest {
pub app_id: String,
pub object_api_name: String,
pub record_id: String,
pub data: serde_json::Value,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RecordDeleteRequest {
pub app_id: String,
pub object_api_name: String,
pub record_id: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BatchRecordRequest {
pub app_id: String,
pub object_api_name: String,
pub records: Vec<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BatchRecordQueryRequest {
pub app_id: String,
pub object_api_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Record {
#[serde(skip_serializing_if = "Option::is_none")]
pub record_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_time: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FunctionInvokeRequest {
pub app_id: String,
pub function_api_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FunctionInvokeResult {
#[serde(skip_serializing_if = "Option::is_none")]
pub result: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct EnvironmentVariableQueryRequest {
pub app_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct EnvironmentVariableGetRequest {
pub app_id: String,
pub variable_name: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct EnvironmentVariable {
#[serde(skip_serializing_if = "Option::is_none")]
pub variable_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub variable_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_time: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FlowExecuteRequest {
pub app_id: String,
pub flow_api_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FlowExecuteResult {
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub result: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UserTaskQueryRequest {
pub app_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UserTaskActionRequest {
pub app_id: String,
pub task_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UserTaskTransferRequest {
pub app_id: String,
pub task_id: String,
pub target_user_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UserTaskAddAssigneeRequest {
pub app_id: String,
pub task_id: String,
pub assignee_user_ids: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UserTaskCcRequest {
pub app_id: String,
pub task_id: String,
pub cc_user_ids: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UserTaskRollbackRequest {
pub app_id: String,
pub task_id: String,
pub target_node_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UserTaskChatGroupRequest {
pub app_id: String,
pub task_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub group_name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UserTask {
#[serde(skip_serializing_if = "Option::is_none")]
pub task_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub task_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub assignee: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub due_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RollbackPoint {
#[serde(skip_serializing_if = "Option::is_none")]
pub node_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub node_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub node_type: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PageResponse<T> {
#[serde(skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<T>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_more: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_count: Option<i32>,
}