A better Rust ATProto crate
at lifetimes 48 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: tools.ozone.moderation.defs 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8pub mod cancel_scheduled_actions; 9pub mod emit_event; 10pub mod get_account_timeline; 11pub mod get_event; 12pub mod get_record; 13pub mod get_records; 14pub mod get_repo; 15pub mod get_reporter_stats; 16pub mod get_repos; 17pub mod get_subjects; 18pub mod list_scheduled_actions; 19pub mod query_events; 20pub mod query_statuses; 21pub mod schedule_action; 22pub mod search_repos; 23 24///Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. 25#[jacquard_derive::lexicon] 26#[derive( 27 serde::Serialize, 28 serde::Deserialize, 29 Debug, 30 Clone, 31 PartialEq, 32 Eq, 33 jacquard_derive::IntoStatic 34)] 35#[serde(rename_all = "camelCase")] 36pub struct AccountEvent<'a> { 37 ///Indicates that the account has a repository which can be fetched from the host that emitted this event. 38 pub active: bool, 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 40 #[serde(borrow)] 41 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 42 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 #[serde(borrow)] 44 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 45 pub timestamp: jacquard_common::types::string::Datetime, 46} 47 48#[jacquard_derive::lexicon] 49#[derive( 50 serde::Serialize, 51 serde::Deserialize, 52 Debug, 53 Clone, 54 PartialEq, 55 Eq, 56 jacquard_derive::IntoStatic 57)] 58#[serde(rename_all = "camelCase")] 59pub struct AccountHosting<'a> { 60 #[serde(skip_serializing_if = "std::option::Option::is_none")] 61 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 62 #[serde(skip_serializing_if = "std::option::Option::is_none")] 63 pub deactivated_at: std::option::Option<jacquard_common::types::string::Datetime>, 64 #[serde(skip_serializing_if = "std::option::Option::is_none")] 65 pub deleted_at: std::option::Option<jacquard_common::types::string::Datetime>, 66 #[serde(skip_serializing_if = "std::option::Option::is_none")] 67 pub reactivated_at: std::option::Option<jacquard_common::types::string::Datetime>, 68 #[serde(borrow)] 69 pub status: jacquard_common::CowStr<'a>, 70 #[serde(skip_serializing_if = "std::option::Option::is_none")] 71 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 72} 73 74///Statistics about a particular account subject 75#[jacquard_derive::lexicon] 76#[derive( 77 serde::Serialize, 78 serde::Deserialize, 79 Debug, 80 Clone, 81 PartialEq, 82 Eq, 83 jacquard_derive::IntoStatic 84)] 85#[serde(rename_all = "camelCase")] 86pub struct AccountStats<'a> { 87 ///Total number of appeals against a moderation action on the account 88 #[serde(skip_serializing_if = "std::option::Option::is_none")] 89 pub appeal_count: std::option::Option<i64>, 90 ///Number of times the account was escalated 91 #[serde(skip_serializing_if = "std::option::Option::is_none")] 92 pub escalate_count: std::option::Option<i64>, 93 ///Total number of reports on the account 94 #[serde(skip_serializing_if = "std::option::Option::is_none")] 95 pub report_count: std::option::Option<i64>, 96 ///Number of times the account was suspended 97 #[serde(skip_serializing_if = "std::option::Option::is_none")] 98 pub suspend_count: std::option::Option<i64>, 99 ///Number of times the account was taken down 100 #[serde(skip_serializing_if = "std::option::Option::is_none")] 101 pub takedown_count: std::option::Option<i64>, 102} 103 104///Age assurance info coming directly from users. Only works on DID subjects. 105#[jacquard_derive::lexicon] 106#[derive( 107 serde::Serialize, 108 serde::Deserialize, 109 Debug, 110 Clone, 111 PartialEq, 112 Eq, 113 jacquard_derive::IntoStatic 114)] 115#[serde(rename_all = "camelCase")] 116pub struct AgeAssuranceEvent<'a> { 117 ///The unique identifier for this instance of the age assurance flow, in UUID format. 118 #[serde(borrow)] 119 pub attempt_id: jacquard_common::CowStr<'a>, 120 ///The IP address used when completing the AA flow. 121 #[serde(skip_serializing_if = "std::option::Option::is_none")] 122 #[serde(borrow)] 123 pub complete_ip: std::option::Option<jacquard_common::CowStr<'a>>, 124 ///The user agent used when completing the AA flow. 125 #[serde(skip_serializing_if = "std::option::Option::is_none")] 126 #[serde(borrow)] 127 pub complete_ua: std::option::Option<jacquard_common::CowStr<'a>>, 128 ///The date and time of this write operation. 129 pub created_at: jacquard_common::types::string::Datetime, 130 ///The IP address used when initiating the AA flow. 131 #[serde(skip_serializing_if = "std::option::Option::is_none")] 132 #[serde(borrow)] 133 pub init_ip: std::option::Option<jacquard_common::CowStr<'a>>, 134 ///The user agent used when initiating the AA flow. 135 #[serde(skip_serializing_if = "std::option::Option::is_none")] 136 #[serde(borrow)] 137 pub init_ua: std::option::Option<jacquard_common::CowStr<'a>>, 138 ///The status of the age assurance process. 139 #[serde(borrow)] 140 pub status: jacquard_common::CowStr<'a>, 141} 142 143///Age assurance status override by moderators. Only works on DID subjects. 144#[jacquard_derive::lexicon] 145#[derive( 146 serde::Serialize, 147 serde::Deserialize, 148 Debug, 149 Clone, 150 PartialEq, 151 Eq, 152 jacquard_derive::IntoStatic 153)] 154#[serde(rename_all = "camelCase")] 155pub struct AgeAssuranceOverrideEvent<'a> { 156 ///Comment describing the reason for the override. 157 #[serde(borrow)] 158 pub comment: jacquard_common::CowStr<'a>, 159 ///The status to be set for the user decided by a moderator, overriding whatever value the user had previously. Use reset to default to original state. 160 #[serde(borrow)] 161 pub status: jacquard_common::CowStr<'a>, 162} 163 164#[jacquard_derive::lexicon] 165#[derive( 166 serde::Serialize, 167 serde::Deserialize, 168 Debug, 169 Clone, 170 PartialEq, 171 Eq, 172 jacquard_derive::IntoStatic 173)] 174#[serde(rename_all = "camelCase")] 175pub struct BlobView<'a> { 176 #[serde(borrow)] 177 pub cid: jacquard_common::types::string::Cid<'a>, 178 pub created_at: jacquard_common::types::string::Datetime, 179 #[serde(skip_serializing_if = "std::option::Option::is_none")] 180 #[serde(borrow)] 181 pub details: std::option::Option<BlobViewRecordDetails<'a>>, 182 #[serde(borrow)] 183 pub mime_type: jacquard_common::CowStr<'a>, 184 #[serde(skip_serializing_if = "std::option::Option::is_none")] 185 #[serde(borrow)] 186 pub moderation: std::option::Option<crate::tools_ozone::moderation::Moderation<'a>>, 187 pub size: i64, 188} 189 190#[jacquard_derive::open_union] 191#[derive( 192 serde::Serialize, 193 serde::Deserialize, 194 Debug, 195 Clone, 196 PartialEq, 197 Eq, 198 jacquard_derive::IntoStatic 199)] 200#[serde(tag = "$type")] 201#[serde(bound(deserialize = "'de: 'a"))] 202pub enum BlobViewRecordDetails<'a> {} 203///Logs cancellation of a scheduled takedown action for an account. 204#[jacquard_derive::lexicon] 205#[derive( 206 serde::Serialize, 207 serde::Deserialize, 208 Debug, 209 Clone, 210 PartialEq, 211 Eq, 212 jacquard_derive::IntoStatic 213)] 214#[serde(rename_all = "camelCase")] 215pub struct CancelScheduledTakedownEvent<'a> { 216 #[serde(skip_serializing_if = "std::option::Option::is_none")] 217 #[serde(borrow)] 218 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 219} 220 221///Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. 222#[jacquard_derive::lexicon] 223#[derive( 224 serde::Serialize, 225 serde::Deserialize, 226 Debug, 227 Clone, 228 PartialEq, 229 Eq, 230 jacquard_derive::IntoStatic 231)] 232#[serde(rename_all = "camelCase")] 233pub struct IdentityEvent<'a> { 234 #[serde(skip_serializing_if = "std::option::Option::is_none")] 235 #[serde(borrow)] 236 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 237 #[serde(skip_serializing_if = "std::option::Option::is_none")] 238 #[serde(borrow)] 239 pub handle: std::option::Option<jacquard_common::types::string::Handle<'a>>, 240 #[serde(skip_serializing_if = "std::option::Option::is_none")] 241 #[serde(borrow)] 242 pub pds_host: std::option::Option<jacquard_common::types::string::Uri<'a>>, 243 pub timestamp: jacquard_common::types::string::Datetime, 244 #[serde(skip_serializing_if = "std::option::Option::is_none")] 245 pub tombstone: std::option::Option<bool>, 246} 247 248#[jacquard_derive::lexicon] 249#[derive( 250 serde::Serialize, 251 serde::Deserialize, 252 Debug, 253 Clone, 254 PartialEq, 255 Eq, 256 jacquard_derive::IntoStatic 257)] 258#[serde(rename_all = "camelCase")] 259pub struct ImageDetails<'a> { 260 pub height: i64, 261 pub width: i64, 262} 263 264#[jacquard_derive::lexicon] 265#[derive( 266 serde::Serialize, 267 serde::Deserialize, 268 Debug, 269 Clone, 270 PartialEq, 271 Eq, 272 jacquard_derive::IntoStatic 273)] 274#[serde(rename_all = "camelCase")] 275pub struct ModEventAcknowledge<'a> { 276 ///If true, all other reports on content authored by this account will be resolved (acknowledged). 277 #[serde(skip_serializing_if = "std::option::Option::is_none")] 278 pub acknowledge_account_subjects: std::option::Option<bool>, 279 #[serde(skip_serializing_if = "std::option::Option::is_none")] 280 #[serde(borrow)] 281 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 282} 283 284///Add a comment to a subject. An empty comment will clear any previously set sticky comment. 285#[jacquard_derive::lexicon] 286#[derive( 287 serde::Serialize, 288 serde::Deserialize, 289 Debug, 290 Clone, 291 PartialEq, 292 Eq, 293 jacquard_derive::IntoStatic 294)] 295#[serde(rename_all = "camelCase")] 296pub struct ModEventComment<'a> { 297 #[serde(skip_serializing_if = "std::option::Option::is_none")] 298 #[serde(borrow)] 299 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 300 ///Make the comment persistent on the subject 301 #[serde(skip_serializing_if = "std::option::Option::is_none")] 302 pub sticky: std::option::Option<bool>, 303} 304 305///Divert a record's blobs to a 3rd party service for further scanning/tagging 306#[jacquard_derive::lexicon] 307#[derive( 308 serde::Serialize, 309 serde::Deserialize, 310 Debug, 311 Clone, 312 PartialEq, 313 Eq, 314 jacquard_derive::IntoStatic 315)] 316#[serde(rename_all = "camelCase")] 317pub struct ModEventDivert<'a> { 318 #[serde(skip_serializing_if = "std::option::Option::is_none")] 319 #[serde(borrow)] 320 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 321} 322 323///Keep a log of outgoing email to a user 324#[jacquard_derive::lexicon] 325#[derive( 326 serde::Serialize, 327 serde::Deserialize, 328 Debug, 329 Clone, 330 PartialEq, 331 Eq, 332 jacquard_derive::IntoStatic 333)] 334#[serde(rename_all = "camelCase")] 335pub struct ModEventEmail<'a> { 336 ///Additional comment about the outgoing comm. 337 #[serde(skip_serializing_if = "std::option::Option::is_none")] 338 #[serde(borrow)] 339 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 340 ///The content of the email sent to the user. 341 #[serde(skip_serializing_if = "std::option::Option::is_none")] 342 #[serde(borrow)] 343 pub content: std::option::Option<jacquard_common::CowStr<'a>>, 344 ///The subject line of the email sent to the user. 345 #[serde(borrow)] 346 pub subject_line: jacquard_common::CowStr<'a>, 347} 348 349#[jacquard_derive::lexicon] 350#[derive( 351 serde::Serialize, 352 serde::Deserialize, 353 Debug, 354 Clone, 355 PartialEq, 356 Eq, 357 jacquard_derive::IntoStatic 358)] 359#[serde(rename_all = "camelCase")] 360pub struct ModEventEscalate<'a> { 361 #[serde(skip_serializing_if = "std::option::Option::is_none")] 362 #[serde(borrow)] 363 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 364} 365 366///Apply/Negate labels on a subject 367#[jacquard_derive::lexicon] 368#[derive( 369 serde::Serialize, 370 serde::Deserialize, 371 Debug, 372 Clone, 373 PartialEq, 374 Eq, 375 jacquard_derive::IntoStatic 376)] 377#[serde(rename_all = "camelCase")] 378pub struct ModEventLabel<'a> { 379 #[serde(skip_serializing_if = "std::option::Option::is_none")] 380 #[serde(borrow)] 381 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 382 #[serde(borrow)] 383 pub create_label_vals: Vec<jacquard_common::CowStr<'a>>, 384 ///Indicates how long the label will remain on the subject. Only applies on labels that are being added. 385 #[serde(skip_serializing_if = "std::option::Option::is_none")] 386 pub duration_in_hours: std::option::Option<i64>, 387 #[serde(borrow)] 388 pub negate_label_vals: Vec<jacquard_common::CowStr<'a>>, 389} 390 391///Mute incoming reports on a subject 392#[jacquard_derive::lexicon] 393#[derive( 394 serde::Serialize, 395 serde::Deserialize, 396 Debug, 397 Clone, 398 PartialEq, 399 Eq, 400 jacquard_derive::IntoStatic 401)] 402#[serde(rename_all = "camelCase")] 403pub struct ModEventMute<'a> { 404 #[serde(skip_serializing_if = "std::option::Option::is_none")] 405 #[serde(borrow)] 406 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 407 ///Indicates how long the subject should remain muted. 408 pub duration_in_hours: i64, 409} 410 411///Mute incoming reports from an account 412#[jacquard_derive::lexicon] 413#[derive( 414 serde::Serialize, 415 serde::Deserialize, 416 Debug, 417 Clone, 418 PartialEq, 419 Eq, 420 jacquard_derive::IntoStatic 421)] 422#[serde(rename_all = "camelCase")] 423pub struct ModEventMuteReporter<'a> { 424 #[serde(skip_serializing_if = "std::option::Option::is_none")] 425 #[serde(borrow)] 426 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 427 ///Indicates how long the account should remain muted. Falsy value here means a permanent mute. 428 #[serde(skip_serializing_if = "std::option::Option::is_none")] 429 pub duration_in_hours: std::option::Option<i64>, 430} 431 432///Set priority score of the subject. Higher score means higher priority. 433#[jacquard_derive::lexicon] 434#[derive( 435 serde::Serialize, 436 serde::Deserialize, 437 Debug, 438 Clone, 439 PartialEq, 440 Eq, 441 jacquard_derive::IntoStatic 442)] 443#[serde(rename_all = "camelCase")] 444pub struct ModEventPriorityScore<'a> { 445 #[serde(skip_serializing_if = "std::option::Option::is_none")] 446 #[serde(borrow)] 447 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 448 pub score: i64, 449} 450 451///Report a subject 452#[jacquard_derive::lexicon] 453#[derive( 454 serde::Serialize, 455 serde::Deserialize, 456 Debug, 457 Clone, 458 PartialEq, 459 Eq, 460 jacquard_derive::IntoStatic 461)] 462#[serde(rename_all = "camelCase")] 463pub struct ModEventReport<'a> { 464 #[serde(skip_serializing_if = "std::option::Option::is_none")] 465 #[serde(borrow)] 466 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 467 ///Set to true if the reporter was muted from reporting at the time of the event. These reports won't impact the reviewState of the subject. 468 #[serde(skip_serializing_if = "std::option::Option::is_none")] 469 pub is_reporter_muted: std::option::Option<bool>, 470 #[serde(borrow)] 471 pub report_type: crate::com_atproto::moderation::ReasonType<'a>, 472} 473 474///Resolve appeal on a subject 475#[jacquard_derive::lexicon] 476#[derive( 477 serde::Serialize, 478 serde::Deserialize, 479 Debug, 480 Clone, 481 PartialEq, 482 Eq, 483 jacquard_derive::IntoStatic 484)] 485#[serde(rename_all = "camelCase")] 486pub struct ModEventResolveAppeal<'a> { 487 ///Describe resolution. 488 #[serde(skip_serializing_if = "std::option::Option::is_none")] 489 #[serde(borrow)] 490 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 491} 492 493///Revert take down action on a subject 494#[jacquard_derive::lexicon] 495#[derive( 496 serde::Serialize, 497 serde::Deserialize, 498 Debug, 499 Clone, 500 PartialEq, 501 Eq, 502 jacquard_derive::IntoStatic 503)] 504#[serde(rename_all = "camelCase")] 505pub struct ModEventReverseTakedown<'a> { 506 ///Describe reasoning behind the reversal. 507 #[serde(skip_serializing_if = "std::option::Option::is_none")] 508 #[serde(borrow)] 509 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 510} 511 512///Add/Remove a tag on a subject 513#[jacquard_derive::lexicon] 514#[derive( 515 serde::Serialize, 516 serde::Deserialize, 517 Debug, 518 Clone, 519 PartialEq, 520 Eq, 521 jacquard_derive::IntoStatic 522)] 523#[serde(rename_all = "camelCase")] 524pub struct ModEventTag<'a> { 525 ///Tags to be added to the subject. If already exists, won't be duplicated. 526 #[serde(borrow)] 527 pub add: Vec<jacquard_common::CowStr<'a>>, 528 ///Additional comment about added/removed tags. 529 #[serde(skip_serializing_if = "std::option::Option::is_none")] 530 #[serde(borrow)] 531 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 532 ///Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated. 533 #[serde(borrow)] 534 pub remove: Vec<jacquard_common::CowStr<'a>>, 535} 536 537///Take down a subject permanently or temporarily 538#[jacquard_derive::lexicon] 539#[derive( 540 serde::Serialize, 541 serde::Deserialize, 542 Debug, 543 Clone, 544 PartialEq, 545 Eq, 546 jacquard_derive::IntoStatic 547)] 548#[serde(rename_all = "camelCase")] 549pub struct ModEventTakedown<'a> { 550 ///If true, all other reports on content authored by this account will be resolved (acknowledged). 551 #[serde(skip_serializing_if = "std::option::Option::is_none")] 552 pub acknowledge_account_subjects: std::option::Option<bool>, 553 #[serde(skip_serializing_if = "std::option::Option::is_none")] 554 #[serde(borrow)] 555 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 556 ///Indicates how long the takedown should be in effect before automatically expiring. 557 #[serde(skip_serializing_if = "std::option::Option::is_none")] 558 pub duration_in_hours: std::option::Option<i64>, 559 ///Names/Keywords of the policies that drove the decision. 560 #[serde(skip_serializing_if = "std::option::Option::is_none")] 561 #[serde(borrow)] 562 pub policies: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 563} 564 565///Unmute action on a subject 566#[jacquard_derive::lexicon] 567#[derive( 568 serde::Serialize, 569 serde::Deserialize, 570 Debug, 571 Clone, 572 PartialEq, 573 Eq, 574 jacquard_derive::IntoStatic 575)] 576#[serde(rename_all = "camelCase")] 577pub struct ModEventUnmute<'a> { 578 ///Describe reasoning behind the reversal. 579 #[serde(skip_serializing_if = "std::option::Option::is_none")] 580 #[serde(borrow)] 581 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 582} 583 584///Unmute incoming reports from an account 585#[jacquard_derive::lexicon] 586#[derive( 587 serde::Serialize, 588 serde::Deserialize, 589 Debug, 590 Clone, 591 PartialEq, 592 Eq, 593 jacquard_derive::IntoStatic 594)] 595#[serde(rename_all = "camelCase")] 596pub struct ModEventUnmuteReporter<'a> { 597 ///Describe reasoning behind the reversal. 598 #[serde(skip_serializing_if = "std::option::Option::is_none")] 599 #[serde(borrow)] 600 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 601} 602 603#[jacquard_derive::lexicon] 604#[derive( 605 serde::Serialize, 606 serde::Deserialize, 607 Debug, 608 Clone, 609 PartialEq, 610 Eq, 611 jacquard_derive::IntoStatic 612)] 613#[serde(rename_all = "camelCase")] 614pub struct ModEventView<'a> { 615 pub created_at: jacquard_common::types::string::Datetime, 616 #[serde(borrow)] 617 pub created_by: jacquard_common::types::string::Did<'a>, 618 #[serde(skip_serializing_if = "std::option::Option::is_none")] 619 #[serde(borrow)] 620 pub creator_handle: std::option::Option<jacquard_common::CowStr<'a>>, 621 #[serde(borrow)] 622 pub event: ModEventViewRecordEvent<'a>, 623 pub id: i64, 624 #[serde(skip_serializing_if = "std::option::Option::is_none")] 625 #[serde(borrow)] 626 pub mod_tool: std::option::Option<crate::tools_ozone::moderation::ModTool<'a>>, 627 #[serde(borrow)] 628 pub subject: ModEventViewRecordSubject<'a>, 629 #[serde(borrow)] 630 pub subject_blob_cids: Vec<jacquard_common::CowStr<'a>>, 631 #[serde(skip_serializing_if = "std::option::Option::is_none")] 632 #[serde(borrow)] 633 pub subject_handle: std::option::Option<jacquard_common::CowStr<'a>>, 634} 635 636#[jacquard_derive::open_union] 637#[derive( 638 serde::Serialize, 639 serde::Deserialize, 640 Debug, 641 Clone, 642 PartialEq, 643 Eq, 644 jacquard_derive::IntoStatic 645)] 646#[serde(tag = "$type")] 647#[serde(bound(deserialize = "'de: 'a"))] 648pub enum ModEventViewRecordEvent<'a> {} 649#[jacquard_derive::open_union] 650#[derive( 651 serde::Serialize, 652 serde::Deserialize, 653 Debug, 654 Clone, 655 PartialEq, 656 Eq, 657 jacquard_derive::IntoStatic 658)] 659#[serde(tag = "$type")] 660#[serde(bound(deserialize = "'de: 'a"))] 661pub enum ModEventViewRecordSubject<'a> { 662 #[serde(rename = "com.atproto.admin.defs#repoRef")] 663 DefsRepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>), 664 #[serde(rename = "com.atproto.repo.strongRef")] 665 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 666 #[serde(rename = "chat.bsky.convo.defs#messageRef")] 667 DefsMessageRef(Box<crate::chat_bsky::convo::MessageRef<'a>>), 668} 669 670#[jacquard_derive::lexicon] 671#[derive( 672 serde::Serialize, 673 serde::Deserialize, 674 Debug, 675 Clone, 676 PartialEq, 677 Eq, 678 jacquard_derive::IntoStatic 679)] 680#[serde(rename_all = "camelCase")] 681pub struct ModEventViewDetail<'a> { 682 pub created_at: jacquard_common::types::string::Datetime, 683 #[serde(borrow)] 684 pub created_by: jacquard_common::types::string::Did<'a>, 685 #[serde(borrow)] 686 pub event: ModEventViewDetailRecordEvent<'a>, 687 pub id: i64, 688 #[serde(skip_serializing_if = "std::option::Option::is_none")] 689 #[serde(borrow)] 690 pub mod_tool: std::option::Option<crate::tools_ozone::moderation::ModTool<'a>>, 691 #[serde(borrow)] 692 pub subject: ModEventViewDetailRecordSubject<'a>, 693 #[serde(borrow)] 694 pub subject_blobs: Vec<crate::tools_ozone::moderation::BlobView<'a>>, 695} 696 697#[jacquard_derive::open_union] 698#[derive( 699 serde::Serialize, 700 serde::Deserialize, 701 Debug, 702 Clone, 703 PartialEq, 704 Eq, 705 jacquard_derive::IntoStatic 706)] 707#[serde(tag = "$type")] 708#[serde(bound(deserialize = "'de: 'a"))] 709pub enum ModEventViewDetailRecordEvent<'a> {} 710#[jacquard_derive::open_union] 711#[derive( 712 serde::Serialize, 713 serde::Deserialize, 714 Debug, 715 Clone, 716 PartialEq, 717 Eq, 718 jacquard_derive::IntoStatic 719)] 720#[serde(tag = "$type")] 721#[serde(bound(deserialize = "'de: 'a"))] 722pub enum ModEventViewDetailRecordSubject<'a> {} 723///Moderation tool information for tracing the source of the action 724#[jacquard_derive::lexicon] 725#[derive( 726 serde::Serialize, 727 serde::Deserialize, 728 Debug, 729 Clone, 730 PartialEq, 731 Eq, 732 jacquard_derive::IntoStatic 733)] 734#[serde(rename_all = "camelCase")] 735pub struct ModTool<'a> { 736 ///Additional arbitrary metadata about the source 737 #[serde(skip_serializing_if = "std::option::Option::is_none")] 738 #[serde(borrow)] 739 pub meta: std::option::Option<jacquard_common::types::value::Data<'a>>, 740 ///Name/identifier of the source (e.g., 'automod', 'ozone/workspace') 741 #[serde(borrow)] 742 pub name: jacquard_common::CowStr<'a>, 743} 744 745#[jacquard_derive::lexicon] 746#[derive( 747 serde::Serialize, 748 serde::Deserialize, 749 Debug, 750 Clone, 751 PartialEq, 752 Eq, 753 jacquard_derive::IntoStatic 754)] 755#[serde(rename_all = "camelCase")] 756pub struct Moderation<'a> { 757 #[serde(skip_serializing_if = "std::option::Option::is_none")] 758 #[serde(borrow)] 759 pub subject_status: std::option::Option< 760 crate::tools_ozone::moderation::SubjectStatusView<'a>, 761 >, 762} 763 764#[jacquard_derive::lexicon] 765#[derive( 766 serde::Serialize, 767 serde::Deserialize, 768 Debug, 769 Clone, 770 PartialEq, 771 Eq, 772 jacquard_derive::IntoStatic 773)] 774#[serde(rename_all = "camelCase")] 775pub struct ModerationDetail<'a> { 776 #[serde(skip_serializing_if = "std::option::Option::is_none")] 777 #[serde(borrow)] 778 pub subject_status: std::option::Option< 779 crate::tools_ozone::moderation::SubjectStatusView<'a>, 780 >, 781} 782 783///Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. 784#[jacquard_derive::lexicon] 785#[derive( 786 serde::Serialize, 787 serde::Deserialize, 788 Debug, 789 Clone, 790 PartialEq, 791 Eq, 792 jacquard_derive::IntoStatic 793)] 794#[serde(rename_all = "camelCase")] 795pub struct RecordEvent<'a> { 796 #[serde(skip_serializing_if = "std::option::Option::is_none")] 797 #[serde(borrow)] 798 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 799 #[serde(skip_serializing_if = "std::option::Option::is_none")] 800 #[serde(borrow)] 801 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 802 #[serde(borrow)] 803 pub op: jacquard_common::CowStr<'a>, 804 pub timestamp: jacquard_common::types::string::Datetime, 805} 806 807#[jacquard_derive::lexicon] 808#[derive( 809 serde::Serialize, 810 serde::Deserialize, 811 Debug, 812 Clone, 813 PartialEq, 814 Eq, 815 jacquard_derive::IntoStatic 816)] 817#[serde(rename_all = "camelCase")] 818pub struct RecordHosting<'a> { 819 #[serde(skip_serializing_if = "std::option::Option::is_none")] 820 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 821 #[serde(skip_serializing_if = "std::option::Option::is_none")] 822 pub deleted_at: std::option::Option<jacquard_common::types::string::Datetime>, 823 #[serde(borrow)] 824 pub status: jacquard_common::CowStr<'a>, 825 #[serde(skip_serializing_if = "std::option::Option::is_none")] 826 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 827} 828 829#[jacquard_derive::lexicon] 830#[derive( 831 serde::Serialize, 832 serde::Deserialize, 833 Debug, 834 Clone, 835 PartialEq, 836 Eq, 837 jacquard_derive::IntoStatic 838)] 839#[serde(rename_all = "camelCase")] 840pub struct RecordView<'a> { 841 #[serde(borrow)] 842 pub blob_cids: Vec<jacquard_common::types::string::Cid<'a>>, 843 #[serde(borrow)] 844 pub cid: jacquard_common::types::string::Cid<'a>, 845 pub indexed_at: jacquard_common::types::string::Datetime, 846 #[serde(borrow)] 847 pub moderation: crate::tools_ozone::moderation::Moderation<'a>, 848 #[serde(borrow)] 849 pub repo: crate::tools_ozone::moderation::RepoView<'a>, 850 #[serde(borrow)] 851 pub uri: jacquard_common::types::string::AtUri<'a>, 852 #[serde(borrow)] 853 pub value: jacquard_common::types::value::Data<'a>, 854} 855 856#[jacquard_derive::lexicon] 857#[derive( 858 serde::Serialize, 859 serde::Deserialize, 860 Debug, 861 Clone, 862 PartialEq, 863 Eq, 864 jacquard_derive::IntoStatic 865)] 866#[serde(rename_all = "camelCase")] 867pub struct RecordViewDetail<'a> { 868 #[serde(borrow)] 869 pub blobs: Vec<crate::tools_ozone::moderation::BlobView<'a>>, 870 #[serde(borrow)] 871 pub cid: jacquard_common::types::string::Cid<'a>, 872 pub indexed_at: jacquard_common::types::string::Datetime, 873 #[serde(skip_serializing_if = "std::option::Option::is_none")] 874 #[serde(borrow)] 875 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 876 #[serde(borrow)] 877 pub moderation: crate::tools_ozone::moderation::ModerationDetail<'a>, 878 #[serde(borrow)] 879 pub repo: crate::tools_ozone::moderation::RepoView<'a>, 880 #[serde(borrow)] 881 pub uri: jacquard_common::types::string::AtUri<'a>, 882 #[serde(borrow)] 883 pub value: jacquard_common::types::value::Data<'a>, 884} 885 886#[jacquard_derive::lexicon] 887#[derive( 888 serde::Serialize, 889 serde::Deserialize, 890 Debug, 891 Clone, 892 PartialEq, 893 Eq, 894 jacquard_derive::IntoStatic 895)] 896#[serde(rename_all = "camelCase")] 897pub struct RecordViewNotFound<'a> { 898 #[serde(borrow)] 899 pub uri: jacquard_common::types::string::AtUri<'a>, 900} 901 902///Statistics about a set of record subject items 903#[jacquard_derive::lexicon] 904#[derive( 905 serde::Serialize, 906 serde::Deserialize, 907 Debug, 908 Clone, 909 PartialEq, 910 Eq, 911 jacquard_derive::IntoStatic 912)] 913#[serde(rename_all = "camelCase")] 914pub struct RecordsStats<'a> { 915 ///Number of items that were appealed at least once 916 #[serde(skip_serializing_if = "std::option::Option::is_none")] 917 pub appealed_count: std::option::Option<i64>, 918 ///Number of items that were escalated at least once 919 #[serde(skip_serializing_if = "std::option::Option::is_none")] 920 pub escalated_count: std::option::Option<i64>, 921 ///Number of item currently in "reviewOpen" or "reviewEscalated" state 922 #[serde(skip_serializing_if = "std::option::Option::is_none")] 923 pub pending_count: std::option::Option<i64>, 924 ///Number of item currently in "reviewNone" or "reviewClosed" state 925 #[serde(skip_serializing_if = "std::option::Option::is_none")] 926 pub processed_count: std::option::Option<i64>, 927 ///Number of items that were reported at least once 928 #[serde(skip_serializing_if = "std::option::Option::is_none")] 929 pub reported_count: std::option::Option<i64>, 930 ///Total number of item in the set 931 #[serde(skip_serializing_if = "std::option::Option::is_none")] 932 pub subject_count: std::option::Option<i64>, 933 ///Number of item currently taken down 934 #[serde(skip_serializing_if = "std::option::Option::is_none")] 935 pub takendown_count: std::option::Option<i64>, 936 ///Cumulative sum of the number of reports on the items in the set 937 #[serde(skip_serializing_if = "std::option::Option::is_none")] 938 pub total_reports: std::option::Option<i64>, 939} 940 941#[jacquard_derive::lexicon] 942#[derive( 943 serde::Serialize, 944 serde::Deserialize, 945 Debug, 946 Clone, 947 PartialEq, 948 Eq, 949 jacquard_derive::IntoStatic 950)] 951#[serde(rename_all = "camelCase")] 952pub struct RepoView<'a> { 953 #[serde(skip_serializing_if = "std::option::Option::is_none")] 954 pub deactivated_at: std::option::Option<jacquard_common::types::string::Datetime>, 955 #[serde(borrow)] 956 pub did: jacquard_common::types::string::Did<'a>, 957 #[serde(skip_serializing_if = "std::option::Option::is_none")] 958 #[serde(borrow)] 959 pub email: std::option::Option<jacquard_common::CowStr<'a>>, 960 #[serde(borrow)] 961 pub handle: jacquard_common::types::string::Handle<'a>, 962 pub indexed_at: jacquard_common::types::string::Datetime, 963 #[serde(skip_serializing_if = "std::option::Option::is_none")] 964 #[serde(borrow)] 965 pub invite_note: std::option::Option<jacquard_common::CowStr<'a>>, 966 #[serde(skip_serializing_if = "std::option::Option::is_none")] 967 #[serde(borrow)] 968 pub invited_by: std::option::Option<crate::com_atproto::server::InviteCode<'a>>, 969 #[serde(skip_serializing_if = "std::option::Option::is_none")] 970 pub invites_disabled: std::option::Option<bool>, 971 #[serde(borrow)] 972 pub moderation: crate::tools_ozone::moderation::Moderation<'a>, 973 #[serde(borrow)] 974 pub related_records: Vec<jacquard_common::types::value::Data<'a>>, 975 #[serde(skip_serializing_if = "std::option::Option::is_none")] 976 #[serde(borrow)] 977 pub threat_signatures: std::option::Option< 978 Vec<crate::com_atproto::admin::ThreatSignature<'a>>, 979 >, 980} 981 982#[jacquard_derive::lexicon] 983#[derive( 984 serde::Serialize, 985 serde::Deserialize, 986 Debug, 987 Clone, 988 PartialEq, 989 Eq, 990 jacquard_derive::IntoStatic 991)] 992#[serde(rename_all = "camelCase")] 993pub struct RepoViewDetail<'a> { 994 #[serde(skip_serializing_if = "std::option::Option::is_none")] 995 pub deactivated_at: std::option::Option<jacquard_common::types::string::Datetime>, 996 #[serde(borrow)] 997 pub did: jacquard_common::types::string::Did<'a>, 998 #[serde(skip_serializing_if = "std::option::Option::is_none")] 999 #[serde(borrow)] 1000 pub email: std::option::Option<jacquard_common::CowStr<'a>>, 1001 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1002 pub email_confirmed_at: std::option::Option< 1003 jacquard_common::types::string::Datetime, 1004 >, 1005 #[serde(borrow)] 1006 pub handle: jacquard_common::types::string::Handle<'a>, 1007 pub indexed_at: jacquard_common::types::string::Datetime, 1008 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1009 #[serde(borrow)] 1010 pub invite_note: std::option::Option<jacquard_common::CowStr<'a>>, 1011 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1012 #[serde(borrow)] 1013 pub invited_by: std::option::Option<crate::com_atproto::server::InviteCode<'a>>, 1014 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1015 #[serde(borrow)] 1016 pub invites: std::option::Option<Vec<crate::com_atproto::server::InviteCode<'a>>>, 1017 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1018 pub invites_disabled: std::option::Option<bool>, 1019 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1020 #[serde(borrow)] 1021 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 1022 #[serde(borrow)] 1023 pub moderation: crate::tools_ozone::moderation::ModerationDetail<'a>, 1024 #[serde(borrow)] 1025 pub related_records: Vec<jacquard_common::types::value::Data<'a>>, 1026 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1027 #[serde(borrow)] 1028 pub threat_signatures: std::option::Option< 1029 Vec<crate::com_atproto::admin::ThreatSignature<'a>>, 1030 >, 1031} 1032 1033#[jacquard_derive::lexicon] 1034#[derive( 1035 serde::Serialize, 1036 serde::Deserialize, 1037 Debug, 1038 Clone, 1039 PartialEq, 1040 Eq, 1041 jacquard_derive::IntoStatic 1042)] 1043#[serde(rename_all = "camelCase")] 1044pub struct RepoViewNotFound<'a> { 1045 #[serde(borrow)] 1046 pub did: jacquard_common::types::string::Did<'a>, 1047} 1048 1049#[jacquard_derive::lexicon] 1050#[derive( 1051 serde::Serialize, 1052 serde::Deserialize, 1053 Debug, 1054 Clone, 1055 PartialEq, 1056 Eq, 1057 jacquard_derive::IntoStatic 1058)] 1059#[serde(rename_all = "camelCase")] 1060pub struct ReporterStats<'a> { 1061 ///The total number of reports made by the user on accounts. 1062 pub account_report_count: i64, 1063 #[serde(borrow)] 1064 pub did: jacquard_common::types::string::Did<'a>, 1065 ///The total number of accounts labeled as a result of the user's reports. 1066 pub labeled_account_count: i64, 1067 ///The total number of records labeled as a result of the user's reports. 1068 pub labeled_record_count: i64, 1069 ///The total number of reports made by the user on records. 1070 pub record_report_count: i64, 1071 ///The total number of accounts reported by the user. 1072 pub reported_account_count: i64, 1073 ///The total number of records reported by the user. 1074 pub reported_record_count: i64, 1075 ///The total number of accounts taken down as a result of the user's reports. 1076 pub takendown_account_count: i64, 1077 ///The total number of records taken down as a result of the user's reports. 1078 pub takendown_record_count: i64, 1079} 1080 1081///Account credentials revocation by moderators. Only works on DID subjects. 1082#[jacquard_derive::lexicon] 1083#[derive( 1084 serde::Serialize, 1085 serde::Deserialize, 1086 Debug, 1087 Clone, 1088 PartialEq, 1089 Eq, 1090 jacquard_derive::IntoStatic 1091)] 1092#[serde(rename_all = "camelCase")] 1093pub struct RevokeAccountCredentialsEvent<'a> { 1094 ///Comment describing the reason for the revocation. 1095 #[serde(borrow)] 1096 pub comment: jacquard_common::CowStr<'a>, 1097} 1098 1099///Logs a scheduled takedown action for an account. 1100#[jacquard_derive::lexicon] 1101#[derive( 1102 serde::Serialize, 1103 serde::Deserialize, 1104 Debug, 1105 Clone, 1106 PartialEq, 1107 Eq, 1108 jacquard_derive::IntoStatic 1109)] 1110#[serde(rename_all = "camelCase")] 1111pub struct ScheduleTakedownEvent<'a> { 1112 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1113 #[serde(borrow)] 1114 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 1115 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1116 pub execute_after: std::option::Option<jacquard_common::types::string::Datetime>, 1117 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1118 pub execute_at: std::option::Option<jacquard_common::types::string::Datetime>, 1119 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1120 pub execute_until: std::option::Option<jacquard_common::types::string::Datetime>, 1121} 1122 1123///View of a scheduled moderation action 1124#[jacquard_derive::lexicon] 1125#[derive( 1126 serde::Serialize, 1127 serde::Deserialize, 1128 Debug, 1129 Clone, 1130 PartialEq, 1131 Eq, 1132 jacquard_derive::IntoStatic 1133)] 1134#[serde(rename_all = "camelCase")] 1135pub struct ScheduledActionView<'a> { 1136 ///Type of action to be executed 1137 #[serde(borrow)] 1138 pub action: jacquard_common::CowStr<'a>, 1139 ///When the scheduled action was created 1140 pub created_at: jacquard_common::types::string::Datetime, 1141 ///DID of the user who created this scheduled action 1142 #[serde(borrow)] 1143 pub created_by: jacquard_common::types::string::Did<'a>, 1144 ///Subject DID for the action 1145 #[serde(borrow)] 1146 pub did: jacquard_common::types::string::Did<'a>, 1147 ///Serialized event object that will be propagated to the event when performed 1148 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1149 #[serde(borrow)] 1150 pub event_data: std::option::Option<jacquard_common::types::value::Data<'a>>, 1151 ///Earliest time to execute the action (for randomized scheduling) 1152 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1153 pub execute_after: std::option::Option<jacquard_common::types::string::Datetime>, 1154 ///Exact time to execute the action 1155 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1156 pub execute_at: std::option::Option<jacquard_common::types::string::Datetime>, 1157 ///Latest time to execute the action (for randomized scheduling) 1158 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1159 pub execute_until: std::option::Option<jacquard_common::types::string::Datetime>, 1160 ///ID of the moderation event created when action was successfully executed 1161 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1162 pub execution_event_id: std::option::Option<i64>, 1163 ///Auto-incrementing row ID 1164 pub id: i64, 1165 ///When the action was last attempted to be executed 1166 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1167 pub last_executed_at: std::option::Option<jacquard_common::types::string::Datetime>, 1168 ///Reason for the last execution failure 1169 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1170 #[serde(borrow)] 1171 pub last_failure_reason: std::option::Option<jacquard_common::CowStr<'a>>, 1172 ///Whether execution time should be randomized within the specified range 1173 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1174 pub randomize_execution: std::option::Option<bool>, 1175 ///Current status of the scheduled action 1176 #[serde(borrow)] 1177 pub status: jacquard_common::CowStr<'a>, 1178 ///When the scheduled action was last updated 1179 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1180 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 1181} 1182 1183#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1184pub enum SubjectReviewState<'a> { 1185 ReviewOpen, 1186 ReviewEscalated, 1187 ReviewClosed, 1188 ReviewNone, 1189 Other(jacquard_common::CowStr<'a>), 1190} 1191 1192impl<'a> SubjectReviewState<'a> { 1193 pub fn as_str(&self) -> &str { 1194 match self { 1195 Self::ReviewOpen => "#reviewOpen", 1196 Self::ReviewEscalated => "#reviewEscalated", 1197 Self::ReviewClosed => "#reviewClosed", 1198 Self::ReviewNone => "#reviewNone", 1199 Self::Other(s) => s.as_ref(), 1200 } 1201 } 1202} 1203 1204impl<'a> From<&'a str> for SubjectReviewState<'a> { 1205 fn from(s: &'a str) -> Self { 1206 match s { 1207 "#reviewOpen" => Self::ReviewOpen, 1208 "#reviewEscalated" => Self::ReviewEscalated, 1209 "#reviewClosed" => Self::ReviewClosed, 1210 "#reviewNone" => Self::ReviewNone, 1211 _ => Self::Other(jacquard_common::CowStr::from(s)), 1212 } 1213 } 1214} 1215 1216impl<'a> From<String> for SubjectReviewState<'a> { 1217 fn from(s: String) -> Self { 1218 match s.as_str() { 1219 "#reviewOpen" => Self::ReviewOpen, 1220 "#reviewEscalated" => Self::ReviewEscalated, 1221 "#reviewClosed" => Self::ReviewClosed, 1222 "#reviewNone" => Self::ReviewNone, 1223 _ => Self::Other(jacquard_common::CowStr::from(s)), 1224 } 1225 } 1226} 1227 1228impl<'a> AsRef<str> for SubjectReviewState<'a> { 1229 fn as_ref(&self) -> &str { 1230 self.as_str() 1231 } 1232} 1233 1234impl<'a> serde::Serialize for SubjectReviewState<'a> { 1235 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 1236 where 1237 S: serde::Serializer, 1238 { 1239 serializer.serialize_str(self.as_str()) 1240 } 1241} 1242 1243impl<'de, 'a> serde::Deserialize<'de> for SubjectReviewState<'a> 1244where 1245 'de: 'a, 1246{ 1247 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> 1248 where 1249 D: serde::Deserializer<'de>, 1250 { 1251 let s = <&'de str>::deserialize(deserializer)?; 1252 Ok(Self::from(s)) 1253 } 1254} 1255 1256impl jacquard_common::IntoStatic for SubjectReviewState<'_> { 1257 type Output = SubjectReviewState<'static>; 1258 fn into_static(self) -> Self::Output { 1259 match self { 1260 SubjectReviewState::ReviewOpen => SubjectReviewState::ReviewOpen, 1261 SubjectReviewState::ReviewEscalated => SubjectReviewState::ReviewEscalated, 1262 SubjectReviewState::ReviewClosed => SubjectReviewState::ReviewClosed, 1263 SubjectReviewState::ReviewNone => SubjectReviewState::ReviewNone, 1264 SubjectReviewState::Other(v) => SubjectReviewState::Other(v.into_static()), 1265 } 1266 } 1267} 1268 1269#[jacquard_derive::lexicon] 1270#[derive( 1271 serde::Serialize, 1272 serde::Deserialize, 1273 Debug, 1274 Clone, 1275 PartialEq, 1276 Eq, 1277 jacquard_derive::IntoStatic 1278)] 1279#[serde(rename_all = "camelCase")] 1280pub struct SubjectStatusView<'a> { 1281 ///Statistics related to the account subject 1282 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1283 #[serde(borrow)] 1284 pub account_stats: std::option::Option< 1285 crate::tools_ozone::moderation::AccountStats<'a>, 1286 >, 1287 ///Current age assurance state of the subject. 1288 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1289 #[serde(borrow)] 1290 pub age_assurance_state: std::option::Option<jacquard_common::CowStr<'a>>, 1291 ///Whether or not the last successful update to age assurance was made by the user or admin. 1292 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1293 #[serde(borrow)] 1294 pub age_assurance_updated_by: std::option::Option<jacquard_common::CowStr<'a>>, 1295 ///True indicates that the a previously taken moderator action was appealed against, by the author of the content. False indicates last appeal was resolved by moderators. 1296 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1297 pub appealed: std::option::Option<bool>, 1298 ///Sticky comment on the subject. 1299 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1300 #[serde(borrow)] 1301 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 1302 ///Timestamp referencing the first moderation status impacting event was emitted on the subject 1303 pub created_at: jacquard_common::types::string::Datetime, 1304 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1305 #[serde(borrow)] 1306 pub hosting: std::option::Option<SubjectStatusViewRecordHosting<'a>>, 1307 pub id: i64, 1308 ///Timestamp referencing when the author of the subject appealed a moderation action 1309 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1310 pub last_appealed_at: std::option::Option<jacquard_common::types::string::Datetime>, 1311 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1312 pub last_reported_at: std::option::Option<jacquard_common::types::string::Datetime>, 1313 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1314 pub last_reviewed_at: std::option::Option<jacquard_common::types::string::Datetime>, 1315 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1316 #[serde(borrow)] 1317 pub last_reviewed_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 1318 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1319 pub mute_reporting_until: std::option::Option< 1320 jacquard_common::types::string::Datetime, 1321 >, 1322 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1323 pub mute_until: std::option::Option<jacquard_common::types::string::Datetime>, 1324 ///Numeric value representing the level of priority. Higher score means higher priority. 1325 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1326 pub priority_score: std::option::Option<i64>, 1327 ///Statistics related to the record subjects authored by the subject's account 1328 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1329 #[serde(borrow)] 1330 pub records_stats: std::option::Option< 1331 crate::tools_ozone::moderation::RecordsStats<'a>, 1332 >, 1333 #[serde(borrow)] 1334 pub review_state: crate::tools_ozone::moderation::SubjectReviewState<'a>, 1335 #[serde(borrow)] 1336 pub subject: SubjectStatusViewRecordSubject<'a>, 1337 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1338 #[serde(borrow)] 1339 pub subject_blob_cids: std::option::Option< 1340 Vec<jacquard_common::types::string::Cid<'a>>, 1341 >, 1342 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1343 #[serde(borrow)] 1344 pub subject_repo_handle: std::option::Option<jacquard_common::CowStr<'a>>, 1345 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1346 pub suspend_until: std::option::Option<jacquard_common::types::string::Datetime>, 1347 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1348 #[serde(borrow)] 1349 pub tags: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 1350 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1351 pub takendown: std::option::Option<bool>, 1352 ///Timestamp referencing when the last update was made to the moderation status of the subject 1353 pub updated_at: jacquard_common::types::string::Datetime, 1354} 1355 1356#[jacquard_derive::open_union] 1357#[derive( 1358 serde::Serialize, 1359 serde::Deserialize, 1360 Debug, 1361 Clone, 1362 PartialEq, 1363 Eq, 1364 jacquard_derive::IntoStatic 1365)] 1366#[serde(tag = "$type")] 1367#[serde(bound(deserialize = "'de: 'a"))] 1368pub enum SubjectStatusViewRecordHosting<'a> {} 1369#[jacquard_derive::open_union] 1370#[derive( 1371 serde::Serialize, 1372 serde::Deserialize, 1373 Debug, 1374 Clone, 1375 PartialEq, 1376 Eq, 1377 jacquard_derive::IntoStatic 1378)] 1379#[serde(tag = "$type")] 1380#[serde(bound(deserialize = "'de: 'a"))] 1381pub enum SubjectStatusViewRecordSubject<'a> { 1382 #[serde(rename = "com.atproto.admin.defs#repoRef")] 1383 DefsRepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>), 1384 #[serde(rename = "com.atproto.repo.strongRef")] 1385 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 1386 #[serde(rename = "chat.bsky.convo.defs#messageRef")] 1387 DefsMessageRef(Box<crate::chat_bsky::convo::MessageRef<'a>>), 1388} 1389 1390///Detailed view of a subject. For record subjects, the author's repo and profile will be returned. 1391#[jacquard_derive::lexicon] 1392#[derive( 1393 serde::Serialize, 1394 serde::Deserialize, 1395 Debug, 1396 Clone, 1397 PartialEq, 1398 Eq, 1399 jacquard_derive::IntoStatic 1400)] 1401#[serde(rename_all = "camelCase")] 1402pub struct SubjectView<'a> { 1403 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1404 #[serde(borrow)] 1405 pub profile: std::option::Option<SubjectViewRecordProfile<'a>>, 1406 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1407 #[serde(borrow)] 1408 pub record: std::option::Option< 1409 crate::tools_ozone::moderation::RecordViewDetail<'a>, 1410 >, 1411 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1412 #[serde(borrow)] 1413 pub repo: std::option::Option<crate::tools_ozone::moderation::RepoViewDetail<'a>>, 1414 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1415 #[serde(borrow)] 1416 pub status: std::option::Option< 1417 crate::tools_ozone::moderation::SubjectStatusView<'a>, 1418 >, 1419 #[serde(borrow)] 1420 pub subject: jacquard_common::CowStr<'a>, 1421 #[serde(borrow)] 1422 pub r#type: crate::com_atproto::moderation::SubjectType<'a>, 1423} 1424 1425#[jacquard_derive::open_union] 1426#[derive( 1427 serde::Serialize, 1428 serde::Deserialize, 1429 Debug, 1430 Clone, 1431 PartialEq, 1432 Eq, 1433 jacquard_derive::IntoStatic 1434)] 1435#[serde(tag = "$type")] 1436#[serde(bound(deserialize = "'de: 'a"))] 1437pub enum SubjectViewRecordProfile<'a> {} 1438#[jacquard_derive::lexicon] 1439#[derive( 1440 serde::Serialize, 1441 serde::Deserialize, 1442 Debug, 1443 Clone, 1444 PartialEq, 1445 Eq, 1446 jacquard_derive::IntoStatic 1447)] 1448#[serde(rename_all = "camelCase")] 1449pub struct VideoDetails<'a> { 1450 pub height: i64, 1451 pub length: i64, 1452 pub width: i64, 1453}