#[derive(Debug, Clone, PartialEq, Eq)] pub struct ActorPayload { pub actor_type: String, pub actor_id: String, pub session_id: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct SourcePayload { pub channel: String, pub client: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct TargetRef { pub workspace_id: Option, pub page_id: Option, pub block_id: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct RequestMeta { pub idempotency_key: Option, pub validate_only: bool, pub dry_run: bool, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct AffectedObject { pub object_type: String, pub object_id: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct ResponseMeta { pub request_id: String, pub trace_id: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct OkPayload { pub data: T, pub meta: ResponseMeta, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct ErrorDetail { pub field: Option, pub reason: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct ErrorPayload { pub code: String, pub message: String, pub details: Vec, pub retryable: bool, pub meta: ResponseMeta, }