jacquard_api/tools_ozone/
moderation.rs

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: Option<jacquard_common::CowStr<'a>>,
42    #[serde(skip_serializing_if = "std::option::Option::is_none")]
43    #[serde(borrow)]
44    pub status: Option<jacquard_common::CowStr<'a>>,
45    pub timestamp: jacquard_common::types::string::Datetime,
46}
47
48pub mod account_event_state {
49
50    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
51    #[allow(unused)]
52    use ::core::marker::PhantomData;
53    mod sealed {
54        pub trait Sealed {}
55    }
56    /// State trait tracking which required fields have been set
57    pub trait State: sealed::Sealed {
58        type Timestamp;
59        type Active;
60    }
61    /// Empty state - all required fields are unset
62    pub struct Empty(());
63    impl sealed::Sealed for Empty {}
64    impl State for Empty {
65        type Timestamp = Unset;
66        type Active = Unset;
67    }
68    ///State transition - sets the `timestamp` field to Set
69    pub struct SetTimestamp<S: State = Empty>(PhantomData<fn() -> S>);
70    impl<S: State> sealed::Sealed for SetTimestamp<S> {}
71    impl<S: State> State for SetTimestamp<S> {
72        type Timestamp = Set<members::timestamp>;
73        type Active = S::Active;
74    }
75    ///State transition - sets the `active` field to Set
76    pub struct SetActive<S: State = Empty>(PhantomData<fn() -> S>);
77    impl<S: State> sealed::Sealed for SetActive<S> {}
78    impl<S: State> State for SetActive<S> {
79        type Timestamp = S::Timestamp;
80        type Active = Set<members::active>;
81    }
82    /// Marker types for field names
83    #[allow(non_camel_case_types)]
84    pub mod members {
85        ///Marker type for the `timestamp` field
86        pub struct timestamp(());
87        ///Marker type for the `active` field
88        pub struct active(());
89    }
90}
91
92/// Builder for constructing an instance of this type
93pub struct AccountEventBuilder<'a, S: account_event_state::State> {
94    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
95    __unsafe_private_named: (
96        ::core::option::Option<bool>,
97        ::core::option::Option<jacquard_common::CowStr<'a>>,
98        ::core::option::Option<jacquard_common::CowStr<'a>>,
99        ::core::option::Option<jacquard_common::types::string::Datetime>,
100    ),
101    _phantom: ::core::marker::PhantomData<&'a ()>,
102}
103
104impl<'a> AccountEvent<'a> {
105    /// Create a new builder for this type
106    pub fn new() -> AccountEventBuilder<'a, account_event_state::Empty> {
107        AccountEventBuilder::new()
108    }
109}
110
111impl<'a> AccountEventBuilder<'a, account_event_state::Empty> {
112    /// Create a new builder with all fields unset
113    pub fn new() -> Self {
114        AccountEventBuilder {
115            _phantom_state: ::core::marker::PhantomData,
116            __unsafe_private_named: (None, None, None, None),
117            _phantom: ::core::marker::PhantomData,
118        }
119    }
120}
121
122impl<'a, S> AccountEventBuilder<'a, S>
123where
124    S: account_event_state::State,
125    S::Active: account_event_state::IsUnset,
126{
127    /// Set the `active` field (required)
128    pub fn active(
129        mut self,
130        value: impl Into<bool>,
131    ) -> AccountEventBuilder<'a, account_event_state::SetActive<S>> {
132        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
133        AccountEventBuilder {
134            _phantom_state: ::core::marker::PhantomData,
135            __unsafe_private_named: self.__unsafe_private_named,
136            _phantom: ::core::marker::PhantomData,
137        }
138    }
139}
140
141impl<'a, S: account_event_state::State> AccountEventBuilder<'a, S> {
142    /// Set the `comment` field (optional)
143    pub fn comment(
144        mut self,
145        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
146    ) -> Self {
147        self.__unsafe_private_named.1 = value.into();
148        self
149    }
150    /// Set the `comment` field to an Option value (optional)
151    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
152        self.__unsafe_private_named.1 = value;
153        self
154    }
155}
156
157impl<'a, S: account_event_state::State> AccountEventBuilder<'a, S> {
158    /// Set the `status` field (optional)
159    pub fn status(
160        mut self,
161        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
162    ) -> Self {
163        self.__unsafe_private_named.2 = value.into();
164        self
165    }
166    /// Set the `status` field to an Option value (optional)
167    pub fn maybe_status(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
168        self.__unsafe_private_named.2 = value;
169        self
170    }
171}
172
173impl<'a, S> AccountEventBuilder<'a, S>
174where
175    S: account_event_state::State,
176    S::Timestamp: account_event_state::IsUnset,
177{
178    /// Set the `timestamp` field (required)
179    pub fn timestamp(
180        mut self,
181        value: impl Into<jacquard_common::types::string::Datetime>,
182    ) -> AccountEventBuilder<'a, account_event_state::SetTimestamp<S>> {
183        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
184        AccountEventBuilder {
185            _phantom_state: ::core::marker::PhantomData,
186            __unsafe_private_named: self.__unsafe_private_named,
187            _phantom: ::core::marker::PhantomData,
188        }
189    }
190}
191
192impl<'a, S> AccountEventBuilder<'a, S>
193where
194    S: account_event_state::State,
195    S::Timestamp: account_event_state::IsSet,
196    S::Active: account_event_state::IsSet,
197{
198    /// Build the final struct
199    pub fn build(self) -> AccountEvent<'a> {
200        AccountEvent {
201            active: self.__unsafe_private_named.0.unwrap(),
202            comment: self.__unsafe_private_named.1,
203            status: self.__unsafe_private_named.2,
204            timestamp: self.__unsafe_private_named.3.unwrap(),
205            extra_data: Default::default(),
206        }
207    }
208    /// Build the final struct with custom extra_data
209    pub fn build_with_data(
210        self,
211        extra_data: std::collections::BTreeMap<
212            jacquard_common::smol_str::SmolStr,
213            jacquard_common::types::value::Data<'a>,
214        >,
215    ) -> AccountEvent<'a> {
216        AccountEvent {
217            active: self.__unsafe_private_named.0.unwrap(),
218            comment: self.__unsafe_private_named.1,
219            status: self.__unsafe_private_named.2,
220            timestamp: self.__unsafe_private_named.3.unwrap(),
221            extra_data: Some(extra_data),
222        }
223    }
224}
225
226fn lexicon_doc_tools_ozone_moderation_defs() -> ::jacquard_lexicon::lexicon::LexiconDoc<
227    'static,
228> {
229    ::jacquard_lexicon::lexicon::LexiconDoc {
230        lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1,
231        id: ::jacquard_common::CowStr::new_static("tools.ozone.moderation.defs"),
232        revision: None,
233        description: None,
234        defs: {
235            let mut map = ::std::collections::BTreeMap::new();
236            map.insert(
237                ::jacquard_common::smol_str::SmolStr::new_static("accountEvent"),
238                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
239                    description: Some(
240                        ::jacquard_common::CowStr::new_static(
241                            "Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
242                        ),
243                    ),
244                    required: Some(
245                        vec![
246                            ::jacquard_common::smol_str::SmolStr::new_static("timestamp"),
247                            ::jacquard_common::smol_str::SmolStr::new_static("active")
248                        ],
249                    ),
250                    nullable: None,
251                    properties: {
252                        #[allow(unused_mut)]
253                        let mut map = ::std::collections::BTreeMap::new();
254                        map.insert(
255                            ::jacquard_common::smol_str::SmolStr::new_static("active"),
256                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
257                                description: None,
258                                default: None,
259                                r#const: None,
260                            }),
261                        );
262                        map.insert(
263                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
264                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
265                                description: None,
266                                format: None,
267                                default: None,
268                                min_length: None,
269                                max_length: None,
270                                min_graphemes: None,
271                                max_graphemes: None,
272                                r#enum: None,
273                                r#const: None,
274                                known_values: None,
275                            }),
276                        );
277                        map.insert(
278                            ::jacquard_common::smol_str::SmolStr::new_static("status"),
279                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
280                                description: None,
281                                format: None,
282                                default: None,
283                                min_length: None,
284                                max_length: None,
285                                min_graphemes: None,
286                                max_graphemes: None,
287                                r#enum: None,
288                                r#const: None,
289                                known_values: None,
290                            }),
291                        );
292                        map.insert(
293                            ::jacquard_common::smol_str::SmolStr::new_static(
294                                "timestamp",
295                            ),
296                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
297                                description: None,
298                                format: Some(
299                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
300                                ),
301                                default: None,
302                                min_length: None,
303                                max_length: None,
304                                min_graphemes: None,
305                                max_graphemes: None,
306                                r#enum: None,
307                                r#const: None,
308                                known_values: None,
309                            }),
310                        );
311                        map
312                    },
313                }),
314            );
315            map.insert(
316                ::jacquard_common::smol_str::SmolStr::new_static("accountHosting"),
317                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
318                    description: None,
319                    required: Some(
320                        vec![::jacquard_common::smol_str::SmolStr::new_static("status")],
321                    ),
322                    nullable: None,
323                    properties: {
324                        #[allow(unused_mut)]
325                        let mut map = ::std::collections::BTreeMap::new();
326                        map.insert(
327                            ::jacquard_common::smol_str::SmolStr::new_static(
328                                "createdAt",
329                            ),
330                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
331                                description: None,
332                                format: Some(
333                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
334                                ),
335                                default: None,
336                                min_length: None,
337                                max_length: None,
338                                min_graphemes: None,
339                                max_graphemes: None,
340                                r#enum: None,
341                                r#const: None,
342                                known_values: None,
343                            }),
344                        );
345                        map.insert(
346                            ::jacquard_common::smol_str::SmolStr::new_static(
347                                "deactivatedAt",
348                            ),
349                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
350                                description: None,
351                                format: Some(
352                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
353                                ),
354                                default: None,
355                                min_length: None,
356                                max_length: None,
357                                min_graphemes: None,
358                                max_graphemes: None,
359                                r#enum: None,
360                                r#const: None,
361                                known_values: None,
362                            }),
363                        );
364                        map.insert(
365                            ::jacquard_common::smol_str::SmolStr::new_static(
366                                "deletedAt",
367                            ),
368                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
369                                description: None,
370                                format: Some(
371                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
372                                ),
373                                default: None,
374                                min_length: None,
375                                max_length: None,
376                                min_graphemes: None,
377                                max_graphemes: None,
378                                r#enum: None,
379                                r#const: None,
380                                known_values: None,
381                            }),
382                        );
383                        map.insert(
384                            ::jacquard_common::smol_str::SmolStr::new_static(
385                                "reactivatedAt",
386                            ),
387                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
388                                description: None,
389                                format: Some(
390                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
391                                ),
392                                default: None,
393                                min_length: None,
394                                max_length: None,
395                                min_graphemes: None,
396                                max_graphemes: None,
397                                r#enum: None,
398                                r#const: None,
399                                known_values: None,
400                            }),
401                        );
402                        map.insert(
403                            ::jacquard_common::smol_str::SmolStr::new_static("status"),
404                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
405                                description: None,
406                                format: None,
407                                default: None,
408                                min_length: None,
409                                max_length: None,
410                                min_graphemes: None,
411                                max_graphemes: None,
412                                r#enum: None,
413                                r#const: None,
414                                known_values: None,
415                            }),
416                        );
417                        map.insert(
418                            ::jacquard_common::smol_str::SmolStr::new_static(
419                                "updatedAt",
420                            ),
421                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
422                                description: None,
423                                format: Some(
424                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
425                                ),
426                                default: None,
427                                min_length: None,
428                                max_length: None,
429                                min_graphemes: None,
430                                max_graphemes: None,
431                                r#enum: None,
432                                r#const: None,
433                                known_values: None,
434                            }),
435                        );
436                        map
437                    },
438                }),
439            );
440            map.insert(
441                ::jacquard_common::smol_str::SmolStr::new_static("accountStats"),
442                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
443                    description: Some(
444                        ::jacquard_common::CowStr::new_static(
445                            "Statistics about a particular account subject",
446                        ),
447                    ),
448                    required: None,
449                    nullable: None,
450                    properties: {
451                        #[allow(unused_mut)]
452                        let mut map = ::std::collections::BTreeMap::new();
453                        map.insert(
454                            ::jacquard_common::smol_str::SmolStr::new_static(
455                                "appealCount",
456                            ),
457                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
458                                description: None,
459                                default: None,
460                                minimum: None,
461                                maximum: None,
462                                r#enum: None,
463                                r#const: None,
464                            }),
465                        );
466                        map.insert(
467                            ::jacquard_common::smol_str::SmolStr::new_static(
468                                "escalateCount",
469                            ),
470                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
471                                description: None,
472                                default: None,
473                                minimum: None,
474                                maximum: None,
475                                r#enum: None,
476                                r#const: None,
477                            }),
478                        );
479                        map.insert(
480                            ::jacquard_common::smol_str::SmolStr::new_static(
481                                "reportCount",
482                            ),
483                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
484                                description: None,
485                                default: None,
486                                minimum: None,
487                                maximum: None,
488                                r#enum: None,
489                                r#const: None,
490                            }),
491                        );
492                        map.insert(
493                            ::jacquard_common::smol_str::SmolStr::new_static(
494                                "suspendCount",
495                            ),
496                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
497                                description: None,
498                                default: None,
499                                minimum: None,
500                                maximum: None,
501                                r#enum: None,
502                                r#const: None,
503                            }),
504                        );
505                        map.insert(
506                            ::jacquard_common::smol_str::SmolStr::new_static(
507                                "takedownCount",
508                            ),
509                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
510                                description: None,
511                                default: None,
512                                minimum: None,
513                                maximum: None,
514                                r#enum: None,
515                                r#const: None,
516                            }),
517                        );
518                        map
519                    },
520                }),
521            );
522            map.insert(
523                ::jacquard_common::smol_str::SmolStr::new_static("accountStrike"),
524                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
525                    description: Some(
526                        ::jacquard_common::CowStr::new_static(
527                            "Strike information for an account",
528                        ),
529                    ),
530                    required: None,
531                    nullable: None,
532                    properties: {
533                        #[allow(unused_mut)]
534                        let mut map = ::std::collections::BTreeMap::new();
535                        map.insert(
536                            ::jacquard_common::smol_str::SmolStr::new_static(
537                                "activeStrikeCount",
538                            ),
539                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
540                                description: None,
541                                default: None,
542                                minimum: None,
543                                maximum: None,
544                                r#enum: None,
545                                r#const: None,
546                            }),
547                        );
548                        map.insert(
549                            ::jacquard_common::smol_str::SmolStr::new_static(
550                                "firstStrikeAt",
551                            ),
552                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
553                                description: Some(
554                                    ::jacquard_common::CowStr::new_static(
555                                        "Timestamp of the first strike received",
556                                    ),
557                                ),
558                                format: Some(
559                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
560                                ),
561                                default: None,
562                                min_length: None,
563                                max_length: None,
564                                min_graphemes: None,
565                                max_graphemes: None,
566                                r#enum: None,
567                                r#const: None,
568                                known_values: None,
569                            }),
570                        );
571                        map.insert(
572                            ::jacquard_common::smol_str::SmolStr::new_static(
573                                "lastStrikeAt",
574                            ),
575                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
576                                description: Some(
577                                    ::jacquard_common::CowStr::new_static(
578                                        "Timestamp of the most recent strike received",
579                                    ),
580                                ),
581                                format: Some(
582                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
583                                ),
584                                default: None,
585                                min_length: None,
586                                max_length: None,
587                                min_graphemes: None,
588                                max_graphemes: None,
589                                r#enum: None,
590                                r#const: None,
591                                known_values: None,
592                            }),
593                        );
594                        map.insert(
595                            ::jacquard_common::smol_str::SmolStr::new_static(
596                                "totalStrikeCount",
597                            ),
598                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
599                                description: None,
600                                default: None,
601                                minimum: None,
602                                maximum: None,
603                                r#enum: None,
604                                r#const: None,
605                            }),
606                        );
607                        map
608                    },
609                }),
610            );
611            map.insert(
612                ::jacquard_common::smol_str::SmolStr::new_static("ageAssuranceEvent"),
613                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
614                    description: Some(
615                        ::jacquard_common::CowStr::new_static(
616                            "Age assurance info coming directly from users. Only works on DID subjects.",
617                        ),
618                    ),
619                    required: Some(
620                        vec![
621                            ::jacquard_common::smol_str::SmolStr::new_static("createdAt"),
622                            ::jacquard_common::smol_str::SmolStr::new_static("status"),
623                            ::jacquard_common::smol_str::SmolStr::new_static("attemptId")
624                        ],
625                    ),
626                    nullable: None,
627                    properties: {
628                        #[allow(unused_mut)]
629                        let mut map = ::std::collections::BTreeMap::new();
630                        map.insert(
631                            ::jacquard_common::smol_str::SmolStr::new_static(
632                                "attemptId",
633                            ),
634                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
635                                description: Some(
636                                    ::jacquard_common::CowStr::new_static(
637                                        "The unique identifier for this instance of the age assurance flow, in UUID format.",
638                                    ),
639                                ),
640                                format: None,
641                                default: None,
642                                min_length: None,
643                                max_length: None,
644                                min_graphemes: None,
645                                max_graphemes: None,
646                                r#enum: None,
647                                r#const: None,
648                                known_values: None,
649                            }),
650                        );
651                        map.insert(
652                            ::jacquard_common::smol_str::SmolStr::new_static(
653                                "completeIp",
654                            ),
655                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
656                                description: Some(
657                                    ::jacquard_common::CowStr::new_static(
658                                        "The IP address used when completing the AA flow.",
659                                    ),
660                                ),
661                                format: None,
662                                default: None,
663                                min_length: None,
664                                max_length: None,
665                                min_graphemes: None,
666                                max_graphemes: None,
667                                r#enum: None,
668                                r#const: None,
669                                known_values: None,
670                            }),
671                        );
672                        map.insert(
673                            ::jacquard_common::smol_str::SmolStr::new_static(
674                                "completeUa",
675                            ),
676                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
677                                description: Some(
678                                    ::jacquard_common::CowStr::new_static(
679                                        "The user agent used when completing the AA flow.",
680                                    ),
681                                ),
682                                format: None,
683                                default: None,
684                                min_length: None,
685                                max_length: None,
686                                min_graphemes: None,
687                                max_graphemes: None,
688                                r#enum: None,
689                                r#const: None,
690                                known_values: None,
691                            }),
692                        );
693                        map.insert(
694                            ::jacquard_common::smol_str::SmolStr::new_static(
695                                "createdAt",
696                            ),
697                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
698                                description: Some(
699                                    ::jacquard_common::CowStr::new_static(
700                                        "The date and time of this write operation.",
701                                    ),
702                                ),
703                                format: Some(
704                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
705                                ),
706                                default: None,
707                                min_length: None,
708                                max_length: None,
709                                min_graphemes: None,
710                                max_graphemes: None,
711                                r#enum: None,
712                                r#const: None,
713                                known_values: None,
714                            }),
715                        );
716                        map.insert(
717                            ::jacquard_common::smol_str::SmolStr::new_static("initIp"),
718                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
719                                description: Some(
720                                    ::jacquard_common::CowStr::new_static(
721                                        "The IP address used when initiating the AA flow.",
722                                    ),
723                                ),
724                                format: None,
725                                default: None,
726                                min_length: None,
727                                max_length: None,
728                                min_graphemes: None,
729                                max_graphemes: None,
730                                r#enum: None,
731                                r#const: None,
732                                known_values: None,
733                            }),
734                        );
735                        map.insert(
736                            ::jacquard_common::smol_str::SmolStr::new_static("initUa"),
737                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
738                                description: Some(
739                                    ::jacquard_common::CowStr::new_static(
740                                        "The user agent used when initiating the AA flow.",
741                                    ),
742                                ),
743                                format: None,
744                                default: None,
745                                min_length: None,
746                                max_length: None,
747                                min_graphemes: None,
748                                max_graphemes: None,
749                                r#enum: None,
750                                r#const: None,
751                                known_values: None,
752                            }),
753                        );
754                        map.insert(
755                            ::jacquard_common::smol_str::SmolStr::new_static("status"),
756                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
757                                description: Some(
758                                    ::jacquard_common::CowStr::new_static(
759                                        "The status of the age assurance process.",
760                                    ),
761                                ),
762                                format: None,
763                                default: None,
764                                min_length: None,
765                                max_length: None,
766                                min_graphemes: None,
767                                max_graphemes: None,
768                                r#enum: None,
769                                r#const: None,
770                                known_values: None,
771                            }),
772                        );
773                        map
774                    },
775                }),
776            );
777            map.insert(
778                ::jacquard_common::smol_str::SmolStr::new_static(
779                    "ageAssuranceOverrideEvent",
780                ),
781                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
782                    description: Some(
783                        ::jacquard_common::CowStr::new_static(
784                            "Age assurance status override by moderators. Only works on DID subjects.",
785                        ),
786                    ),
787                    required: Some(
788                        vec![
789                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
790                            ::jacquard_common::smol_str::SmolStr::new_static("status")
791                        ],
792                    ),
793                    nullable: None,
794                    properties: {
795                        #[allow(unused_mut)]
796                        let mut map = ::std::collections::BTreeMap::new();
797                        map.insert(
798                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
799                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
800                                description: Some(
801                                    ::jacquard_common::CowStr::new_static(
802                                        "Comment describing the reason for the override.",
803                                    ),
804                                ),
805                                format: None,
806                                default: None,
807                                min_length: None,
808                                max_length: None,
809                                min_graphemes: None,
810                                max_graphemes: None,
811                                r#enum: None,
812                                r#const: None,
813                                known_values: None,
814                            }),
815                        );
816                        map.insert(
817                            ::jacquard_common::smol_str::SmolStr::new_static("status"),
818                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
819                                description: Some(
820                                    ::jacquard_common::CowStr::new_static(
821                                        "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.",
822                                    ),
823                                ),
824                                format: None,
825                                default: None,
826                                min_length: None,
827                                max_length: None,
828                                min_graphemes: None,
829                                max_graphemes: None,
830                                r#enum: None,
831                                r#const: None,
832                                known_values: None,
833                            }),
834                        );
835                        map
836                    },
837                }),
838            );
839            map.insert(
840                ::jacquard_common::smol_str::SmolStr::new_static("blobView"),
841                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
842                    description: None,
843                    required: Some(
844                        vec![
845                            ::jacquard_common::smol_str::SmolStr::new_static("cid"),
846                            ::jacquard_common::smol_str::SmolStr::new_static("mimeType"),
847                            ::jacquard_common::smol_str::SmolStr::new_static("size"),
848                            ::jacquard_common::smol_str::SmolStr::new_static("createdAt")
849                        ],
850                    ),
851                    nullable: None,
852                    properties: {
853                        #[allow(unused_mut)]
854                        let mut map = ::std::collections::BTreeMap::new();
855                        map.insert(
856                            ::jacquard_common::smol_str::SmolStr::new_static("cid"),
857                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
858                                description: None,
859                                format: Some(
860                                    ::jacquard_lexicon::lexicon::LexStringFormat::Cid,
861                                ),
862                                default: None,
863                                min_length: None,
864                                max_length: None,
865                                min_graphemes: None,
866                                max_graphemes: None,
867                                r#enum: None,
868                                r#const: None,
869                                known_values: None,
870                            }),
871                        );
872                        map.insert(
873                            ::jacquard_common::smol_str::SmolStr::new_static(
874                                "createdAt",
875                            ),
876                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
877                                description: None,
878                                format: Some(
879                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
880                                ),
881                                default: None,
882                                min_length: None,
883                                max_length: None,
884                                min_graphemes: None,
885                                max_graphemes: None,
886                                r#enum: None,
887                                r#const: None,
888                                known_values: None,
889                            }),
890                        );
891                        map.insert(
892                            ::jacquard_common::smol_str::SmolStr::new_static("details"),
893                            ::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
894                                description: None,
895                                refs: vec![
896                                    ::jacquard_common::CowStr::new_static("#imageDetails"),
897                                    ::jacquard_common::CowStr::new_static("#videoDetails")
898                                ],
899                                closed: None,
900                            }),
901                        );
902                        map.insert(
903                            ::jacquard_common::smol_str::SmolStr::new_static("mimeType"),
904                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
905                                description: None,
906                                format: None,
907                                default: None,
908                                min_length: None,
909                                max_length: None,
910                                min_graphemes: None,
911                                max_graphemes: None,
912                                r#enum: None,
913                                r#const: None,
914                                known_values: None,
915                            }),
916                        );
917                        map.insert(
918                            ::jacquard_common::smol_str::SmolStr::new_static(
919                                "moderation",
920                            ),
921                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
922                                description: None,
923                                r#ref: ::jacquard_common::CowStr::new_static("#moderation"),
924                            }),
925                        );
926                        map.insert(
927                            ::jacquard_common::smol_str::SmolStr::new_static("size"),
928                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
929                                description: None,
930                                default: None,
931                                minimum: None,
932                                maximum: None,
933                                r#enum: None,
934                                r#const: None,
935                            }),
936                        );
937                        map
938                    },
939                }),
940            );
941            map.insert(
942                ::jacquard_common::smol_str::SmolStr::new_static(
943                    "cancelScheduledTakedownEvent",
944                ),
945                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
946                    description: Some(
947                        ::jacquard_common::CowStr::new_static(
948                            "Logs cancellation of a scheduled takedown action for an account.",
949                        ),
950                    ),
951                    required: None,
952                    nullable: None,
953                    properties: {
954                        #[allow(unused_mut)]
955                        let mut map = ::std::collections::BTreeMap::new();
956                        map.insert(
957                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
958                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
959                                description: None,
960                                format: None,
961                                default: None,
962                                min_length: None,
963                                max_length: None,
964                                min_graphemes: None,
965                                max_graphemes: None,
966                                r#enum: None,
967                                r#const: None,
968                                known_values: None,
969                            }),
970                        );
971                        map
972                    },
973                }),
974            );
975            map.insert(
976                ::jacquard_common::smol_str::SmolStr::new_static("identityEvent"),
977                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
978                    description: Some(
979                        ::jacquard_common::CowStr::new_static(
980                            "Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
981                        ),
982                    ),
983                    required: Some(
984                        vec![
985                            ::jacquard_common::smol_str::SmolStr::new_static("timestamp")
986                        ],
987                    ),
988                    nullable: None,
989                    properties: {
990                        #[allow(unused_mut)]
991                        let mut map = ::std::collections::BTreeMap::new();
992                        map.insert(
993                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
994                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
995                                description: None,
996                                format: None,
997                                default: None,
998                                min_length: None,
999                                max_length: None,
1000                                min_graphemes: None,
1001                                max_graphemes: None,
1002                                r#enum: None,
1003                                r#const: None,
1004                                known_values: None,
1005                            }),
1006                        );
1007                        map.insert(
1008                            ::jacquard_common::smol_str::SmolStr::new_static("handle"),
1009                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1010                                description: None,
1011                                format: Some(
1012                                    ::jacquard_lexicon::lexicon::LexStringFormat::Handle,
1013                                ),
1014                                default: None,
1015                                min_length: None,
1016                                max_length: None,
1017                                min_graphemes: None,
1018                                max_graphemes: None,
1019                                r#enum: None,
1020                                r#const: None,
1021                                known_values: None,
1022                            }),
1023                        );
1024                        map.insert(
1025                            ::jacquard_common::smol_str::SmolStr::new_static("pdsHost"),
1026                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1027                                description: None,
1028                                format: Some(
1029                                    ::jacquard_lexicon::lexicon::LexStringFormat::Uri,
1030                                ),
1031                                default: None,
1032                                min_length: None,
1033                                max_length: None,
1034                                min_graphemes: None,
1035                                max_graphemes: None,
1036                                r#enum: None,
1037                                r#const: None,
1038                                known_values: None,
1039                            }),
1040                        );
1041                        map.insert(
1042                            ::jacquard_common::smol_str::SmolStr::new_static(
1043                                "timestamp",
1044                            ),
1045                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1046                                description: None,
1047                                format: Some(
1048                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
1049                                ),
1050                                default: None,
1051                                min_length: None,
1052                                max_length: None,
1053                                min_graphemes: None,
1054                                max_graphemes: None,
1055                                r#enum: None,
1056                                r#const: None,
1057                                known_values: None,
1058                            }),
1059                        );
1060                        map.insert(
1061                            ::jacquard_common::smol_str::SmolStr::new_static(
1062                                "tombstone",
1063                            ),
1064                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
1065                                description: None,
1066                                default: None,
1067                                r#const: None,
1068                            }),
1069                        );
1070                        map
1071                    },
1072                }),
1073            );
1074            map.insert(
1075                ::jacquard_common::smol_str::SmolStr::new_static("imageDetails"),
1076                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1077                    description: None,
1078                    required: Some(
1079                        vec![
1080                            ::jacquard_common::smol_str::SmolStr::new_static("width"),
1081                            ::jacquard_common::smol_str::SmolStr::new_static("height")
1082                        ],
1083                    ),
1084                    nullable: None,
1085                    properties: {
1086                        #[allow(unused_mut)]
1087                        let mut map = ::std::collections::BTreeMap::new();
1088                        map.insert(
1089                            ::jacquard_common::smol_str::SmolStr::new_static("height"),
1090                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1091                                description: None,
1092                                default: None,
1093                                minimum: None,
1094                                maximum: None,
1095                                r#enum: None,
1096                                r#const: None,
1097                            }),
1098                        );
1099                        map.insert(
1100                            ::jacquard_common::smol_str::SmolStr::new_static("width"),
1101                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1102                                description: None,
1103                                default: None,
1104                                minimum: None,
1105                                maximum: None,
1106                                r#enum: None,
1107                                r#const: None,
1108                            }),
1109                        );
1110                        map
1111                    },
1112                }),
1113            );
1114            map.insert(
1115                ::jacquard_common::smol_str::SmolStr::new_static("modEventAcknowledge"),
1116                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1117                    description: None,
1118                    required: None,
1119                    nullable: None,
1120                    properties: {
1121                        #[allow(unused_mut)]
1122                        let mut map = ::std::collections::BTreeMap::new();
1123                        map.insert(
1124                            ::jacquard_common::smol_str::SmolStr::new_static(
1125                                "acknowledgeAccountSubjects",
1126                            ),
1127                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
1128                                description: None,
1129                                default: None,
1130                                r#const: None,
1131                            }),
1132                        );
1133                        map.insert(
1134                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1135                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1136                                description: None,
1137                                format: None,
1138                                default: None,
1139                                min_length: None,
1140                                max_length: None,
1141                                min_graphemes: None,
1142                                max_graphemes: None,
1143                                r#enum: None,
1144                                r#const: None,
1145                                known_values: None,
1146                            }),
1147                        );
1148                        map
1149                    },
1150                }),
1151            );
1152            map.insert(
1153                ::jacquard_common::smol_str::SmolStr::new_static("modEventComment"),
1154                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1155                    description: Some(
1156                        ::jacquard_common::CowStr::new_static(
1157                            "Add a comment to a subject. An empty comment will clear any previously set sticky comment.",
1158                        ),
1159                    ),
1160                    required: None,
1161                    nullable: None,
1162                    properties: {
1163                        #[allow(unused_mut)]
1164                        let mut map = ::std::collections::BTreeMap::new();
1165                        map.insert(
1166                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1167                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1168                                description: None,
1169                                format: None,
1170                                default: None,
1171                                min_length: None,
1172                                max_length: None,
1173                                min_graphemes: None,
1174                                max_graphemes: None,
1175                                r#enum: None,
1176                                r#const: None,
1177                                known_values: None,
1178                            }),
1179                        );
1180                        map.insert(
1181                            ::jacquard_common::smol_str::SmolStr::new_static("sticky"),
1182                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
1183                                description: None,
1184                                default: None,
1185                                r#const: None,
1186                            }),
1187                        );
1188                        map
1189                    },
1190                }),
1191            );
1192            map.insert(
1193                ::jacquard_common::smol_str::SmolStr::new_static("modEventDivert"),
1194                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1195                    description: Some(
1196                        ::jacquard_common::CowStr::new_static(
1197                            "Divert a record's blobs to a 3rd party service for further scanning/tagging",
1198                        ),
1199                    ),
1200                    required: None,
1201                    nullable: None,
1202                    properties: {
1203                        #[allow(unused_mut)]
1204                        let mut map = ::std::collections::BTreeMap::new();
1205                        map.insert(
1206                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1207                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1208                                description: None,
1209                                format: None,
1210                                default: None,
1211                                min_length: None,
1212                                max_length: None,
1213                                min_graphemes: None,
1214                                max_graphemes: None,
1215                                r#enum: None,
1216                                r#const: None,
1217                                known_values: None,
1218                            }),
1219                        );
1220                        map
1221                    },
1222                }),
1223            );
1224            map.insert(
1225                ::jacquard_common::smol_str::SmolStr::new_static("modEventEmail"),
1226                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1227                    description: Some(
1228                        ::jacquard_common::CowStr::new_static(
1229                            "Keep a log of outgoing email to a user",
1230                        ),
1231                    ),
1232                    required: Some(
1233                        vec![
1234                            ::jacquard_common::smol_str::SmolStr::new_static("subjectLine")
1235                        ],
1236                    ),
1237                    nullable: None,
1238                    properties: {
1239                        #[allow(unused_mut)]
1240                        let mut map = ::std::collections::BTreeMap::new();
1241                        map.insert(
1242                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1243                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1244                                description: Some(
1245                                    ::jacquard_common::CowStr::new_static(
1246                                        "Additional comment about the outgoing comm.",
1247                                    ),
1248                                ),
1249                                format: None,
1250                                default: None,
1251                                min_length: None,
1252                                max_length: None,
1253                                min_graphemes: None,
1254                                max_graphemes: None,
1255                                r#enum: None,
1256                                r#const: None,
1257                                known_values: None,
1258                            }),
1259                        );
1260                        map.insert(
1261                            ::jacquard_common::smol_str::SmolStr::new_static("content"),
1262                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1263                                description: Some(
1264                                    ::jacquard_common::CowStr::new_static(
1265                                        "The content of the email sent to the user.",
1266                                    ),
1267                                ),
1268                                format: None,
1269                                default: None,
1270                                min_length: None,
1271                                max_length: None,
1272                                min_graphemes: None,
1273                                max_graphemes: None,
1274                                r#enum: None,
1275                                r#const: None,
1276                                known_values: None,
1277                            }),
1278                        );
1279                        map.insert(
1280                            ::jacquard_common::smol_str::SmolStr::new_static("policies"),
1281                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
1282                                description: Some(
1283                                    ::jacquard_common::CowStr::new_static(
1284                                        "Names/Keywords of the policies that necessitated the email.",
1285                                    ),
1286                                ),
1287                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
1288                                    description: None,
1289                                    format: None,
1290                                    default: None,
1291                                    min_length: None,
1292                                    max_length: None,
1293                                    min_graphemes: None,
1294                                    max_graphemes: None,
1295                                    r#enum: None,
1296                                    r#const: None,
1297                                    known_values: None,
1298                                }),
1299                                min_length: None,
1300                                max_length: Some(5usize),
1301                            }),
1302                        );
1303                        map.insert(
1304                            ::jacquard_common::smol_str::SmolStr::new_static(
1305                                "severityLevel",
1306                            ),
1307                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1308                                description: Some(
1309                                    ::jacquard_common::CowStr::new_static(
1310                                        "Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense",
1311                                    ),
1312                                ),
1313                                format: None,
1314                                default: None,
1315                                min_length: None,
1316                                max_length: None,
1317                                min_graphemes: None,
1318                                max_graphemes: None,
1319                                r#enum: None,
1320                                r#const: None,
1321                                known_values: None,
1322                            }),
1323                        );
1324                        map.insert(
1325                            ::jacquard_common::smol_str::SmolStr::new_static(
1326                                "strikeCount",
1327                            ),
1328                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1329                                description: None,
1330                                default: None,
1331                                minimum: None,
1332                                maximum: None,
1333                                r#enum: None,
1334                                r#const: None,
1335                            }),
1336                        );
1337                        map.insert(
1338                            ::jacquard_common::smol_str::SmolStr::new_static(
1339                                "strikeExpiresAt",
1340                            ),
1341                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1342                                description: Some(
1343                                    ::jacquard_common::CowStr::new_static(
1344                                        "When the strike should expire. If not provided, the strike never expires.",
1345                                    ),
1346                                ),
1347                                format: Some(
1348                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
1349                                ),
1350                                default: None,
1351                                min_length: None,
1352                                max_length: None,
1353                                min_graphemes: None,
1354                                max_graphemes: None,
1355                                r#enum: None,
1356                                r#const: None,
1357                                known_values: None,
1358                            }),
1359                        );
1360                        map.insert(
1361                            ::jacquard_common::smol_str::SmolStr::new_static(
1362                                "subjectLine",
1363                            ),
1364                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1365                                description: Some(
1366                                    ::jacquard_common::CowStr::new_static(
1367                                        "The subject line of the email sent to the user.",
1368                                    ),
1369                                ),
1370                                format: None,
1371                                default: None,
1372                                min_length: None,
1373                                max_length: None,
1374                                min_graphemes: None,
1375                                max_graphemes: None,
1376                                r#enum: None,
1377                                r#const: None,
1378                                known_values: None,
1379                            }),
1380                        );
1381                        map
1382                    },
1383                }),
1384            );
1385            map.insert(
1386                ::jacquard_common::smol_str::SmolStr::new_static("modEventEscalate"),
1387                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1388                    description: None,
1389                    required: None,
1390                    nullable: None,
1391                    properties: {
1392                        #[allow(unused_mut)]
1393                        let mut map = ::std::collections::BTreeMap::new();
1394                        map.insert(
1395                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1396                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1397                                description: None,
1398                                format: None,
1399                                default: None,
1400                                min_length: None,
1401                                max_length: None,
1402                                min_graphemes: None,
1403                                max_graphemes: None,
1404                                r#enum: None,
1405                                r#const: None,
1406                                known_values: None,
1407                            }),
1408                        );
1409                        map
1410                    },
1411                }),
1412            );
1413            map.insert(
1414                ::jacquard_common::smol_str::SmolStr::new_static("modEventLabel"),
1415                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1416                    description: Some(
1417                        ::jacquard_common::CowStr::new_static(
1418                            "Apply/Negate labels on a subject",
1419                        ),
1420                    ),
1421                    required: Some(
1422                        vec![
1423                            ::jacquard_common::smol_str::SmolStr::new_static("createLabelVals"),
1424                            ::jacquard_common::smol_str::SmolStr::new_static("negateLabelVals")
1425                        ],
1426                    ),
1427                    nullable: None,
1428                    properties: {
1429                        #[allow(unused_mut)]
1430                        let mut map = ::std::collections::BTreeMap::new();
1431                        map.insert(
1432                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1433                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1434                                description: None,
1435                                format: None,
1436                                default: None,
1437                                min_length: None,
1438                                max_length: None,
1439                                min_graphemes: None,
1440                                max_graphemes: None,
1441                                r#enum: None,
1442                                r#const: None,
1443                                known_values: None,
1444                            }),
1445                        );
1446                        map.insert(
1447                            ::jacquard_common::smol_str::SmolStr::new_static(
1448                                "createLabelVals",
1449                            ),
1450                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
1451                                description: None,
1452                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
1453                                    description: None,
1454                                    format: None,
1455                                    default: None,
1456                                    min_length: None,
1457                                    max_length: None,
1458                                    min_graphemes: None,
1459                                    max_graphemes: None,
1460                                    r#enum: None,
1461                                    r#const: None,
1462                                    known_values: None,
1463                                }),
1464                                min_length: None,
1465                                max_length: None,
1466                            }),
1467                        );
1468                        map.insert(
1469                            ::jacquard_common::smol_str::SmolStr::new_static(
1470                                "durationInHours",
1471                            ),
1472                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1473                                description: None,
1474                                default: None,
1475                                minimum: None,
1476                                maximum: None,
1477                                r#enum: None,
1478                                r#const: None,
1479                            }),
1480                        );
1481                        map.insert(
1482                            ::jacquard_common::smol_str::SmolStr::new_static(
1483                                "negateLabelVals",
1484                            ),
1485                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
1486                                description: None,
1487                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
1488                                    description: None,
1489                                    format: None,
1490                                    default: None,
1491                                    min_length: None,
1492                                    max_length: None,
1493                                    min_graphemes: None,
1494                                    max_graphemes: None,
1495                                    r#enum: None,
1496                                    r#const: None,
1497                                    known_values: None,
1498                                }),
1499                                min_length: None,
1500                                max_length: None,
1501                            }),
1502                        );
1503                        map
1504                    },
1505                }),
1506            );
1507            map.insert(
1508                ::jacquard_common::smol_str::SmolStr::new_static("modEventMute"),
1509                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1510                    description: Some(
1511                        ::jacquard_common::CowStr::new_static(
1512                            "Mute incoming reports on a subject",
1513                        ),
1514                    ),
1515                    required: Some(
1516                        vec![
1517                            ::jacquard_common::smol_str::SmolStr::new_static("durationInHours")
1518                        ],
1519                    ),
1520                    nullable: None,
1521                    properties: {
1522                        #[allow(unused_mut)]
1523                        let mut map = ::std::collections::BTreeMap::new();
1524                        map.insert(
1525                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1526                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1527                                description: None,
1528                                format: None,
1529                                default: None,
1530                                min_length: None,
1531                                max_length: None,
1532                                min_graphemes: None,
1533                                max_graphemes: None,
1534                                r#enum: None,
1535                                r#const: None,
1536                                known_values: None,
1537                            }),
1538                        );
1539                        map.insert(
1540                            ::jacquard_common::smol_str::SmolStr::new_static(
1541                                "durationInHours",
1542                            ),
1543                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1544                                description: None,
1545                                default: None,
1546                                minimum: None,
1547                                maximum: None,
1548                                r#enum: None,
1549                                r#const: None,
1550                            }),
1551                        );
1552                        map
1553                    },
1554                }),
1555            );
1556            map.insert(
1557                ::jacquard_common::smol_str::SmolStr::new_static("modEventMuteReporter"),
1558                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1559                    description: Some(
1560                        ::jacquard_common::CowStr::new_static(
1561                            "Mute incoming reports from an account",
1562                        ),
1563                    ),
1564                    required: None,
1565                    nullable: None,
1566                    properties: {
1567                        #[allow(unused_mut)]
1568                        let mut map = ::std::collections::BTreeMap::new();
1569                        map.insert(
1570                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1571                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1572                                description: None,
1573                                format: None,
1574                                default: None,
1575                                min_length: None,
1576                                max_length: None,
1577                                min_graphemes: None,
1578                                max_graphemes: None,
1579                                r#enum: None,
1580                                r#const: None,
1581                                known_values: None,
1582                            }),
1583                        );
1584                        map.insert(
1585                            ::jacquard_common::smol_str::SmolStr::new_static(
1586                                "durationInHours",
1587                            ),
1588                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1589                                description: None,
1590                                default: None,
1591                                minimum: None,
1592                                maximum: None,
1593                                r#enum: None,
1594                                r#const: None,
1595                            }),
1596                        );
1597                        map
1598                    },
1599                }),
1600            );
1601            map.insert(
1602                ::jacquard_common::smol_str::SmolStr::new_static(
1603                    "modEventPriorityScore",
1604                ),
1605                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1606                    description: Some(
1607                        ::jacquard_common::CowStr::new_static(
1608                            "Set priority score of the subject. Higher score means higher priority.",
1609                        ),
1610                    ),
1611                    required: Some(
1612                        vec![::jacquard_common::smol_str::SmolStr::new_static("score")],
1613                    ),
1614                    nullable: None,
1615                    properties: {
1616                        #[allow(unused_mut)]
1617                        let mut map = ::std::collections::BTreeMap::new();
1618                        map.insert(
1619                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1620                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1621                                description: None,
1622                                format: None,
1623                                default: None,
1624                                min_length: None,
1625                                max_length: None,
1626                                min_graphemes: None,
1627                                max_graphemes: None,
1628                                r#enum: None,
1629                                r#const: None,
1630                                known_values: None,
1631                            }),
1632                        );
1633                        map.insert(
1634                            ::jacquard_common::smol_str::SmolStr::new_static("score"),
1635                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1636                                description: None,
1637                                default: None,
1638                                minimum: Some(0i64),
1639                                maximum: Some(100i64),
1640                                r#enum: None,
1641                                r#const: None,
1642                            }),
1643                        );
1644                        map
1645                    },
1646                }),
1647            );
1648            map.insert(
1649                ::jacquard_common::smol_str::SmolStr::new_static("modEventReport"),
1650                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1651                    description: Some(
1652                        ::jacquard_common::CowStr::new_static("Report a subject"),
1653                    ),
1654                    required: Some(
1655                        vec![
1656                            ::jacquard_common::smol_str::SmolStr::new_static("reportType")
1657                        ],
1658                    ),
1659                    nullable: None,
1660                    properties: {
1661                        #[allow(unused_mut)]
1662                        let mut map = ::std::collections::BTreeMap::new();
1663                        map.insert(
1664                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1665                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1666                                description: None,
1667                                format: None,
1668                                default: None,
1669                                min_length: None,
1670                                max_length: None,
1671                                min_graphemes: None,
1672                                max_graphemes: None,
1673                                r#enum: None,
1674                                r#const: None,
1675                                known_values: None,
1676                            }),
1677                        );
1678                        map.insert(
1679                            ::jacquard_common::smol_str::SmolStr::new_static(
1680                                "isReporterMuted",
1681                            ),
1682                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
1683                                description: None,
1684                                default: None,
1685                                r#const: None,
1686                            }),
1687                        );
1688                        map.insert(
1689                            ::jacquard_common::smol_str::SmolStr::new_static(
1690                                "reportType",
1691                            ),
1692                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
1693                                description: None,
1694                                r#ref: ::jacquard_common::CowStr::new_static(
1695                                    "com.atproto.moderation.defs#reasonType",
1696                                ),
1697                            }),
1698                        );
1699                        map
1700                    },
1701                }),
1702            );
1703            map.insert(
1704                ::jacquard_common::smol_str::SmolStr::new_static(
1705                    "modEventResolveAppeal",
1706                ),
1707                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1708                    description: Some(
1709                        ::jacquard_common::CowStr::new_static(
1710                            "Resolve appeal on a subject",
1711                        ),
1712                    ),
1713                    required: None,
1714                    nullable: None,
1715                    properties: {
1716                        #[allow(unused_mut)]
1717                        let mut map = ::std::collections::BTreeMap::new();
1718                        map.insert(
1719                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1720                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1721                                description: Some(
1722                                    ::jacquard_common::CowStr::new_static(
1723                                        "Describe resolution.",
1724                                    ),
1725                                ),
1726                                format: None,
1727                                default: None,
1728                                min_length: None,
1729                                max_length: None,
1730                                min_graphemes: None,
1731                                max_graphemes: None,
1732                                r#enum: None,
1733                                r#const: None,
1734                                known_values: None,
1735                            }),
1736                        );
1737                        map
1738                    },
1739                }),
1740            );
1741            map.insert(
1742                ::jacquard_common::smol_str::SmolStr::new_static(
1743                    "modEventReverseTakedown",
1744                ),
1745                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1746                    description: Some(
1747                        ::jacquard_common::CowStr::new_static(
1748                            "Revert take down action on a subject",
1749                        ),
1750                    ),
1751                    required: None,
1752                    nullable: None,
1753                    properties: {
1754                        #[allow(unused_mut)]
1755                        let mut map = ::std::collections::BTreeMap::new();
1756                        map.insert(
1757                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1758                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1759                                description: Some(
1760                                    ::jacquard_common::CowStr::new_static(
1761                                        "Describe reasoning behind the reversal.",
1762                                    ),
1763                                ),
1764                                format: None,
1765                                default: None,
1766                                min_length: None,
1767                                max_length: None,
1768                                min_graphemes: None,
1769                                max_graphemes: None,
1770                                r#enum: None,
1771                                r#const: None,
1772                                known_values: None,
1773                            }),
1774                        );
1775                        map.insert(
1776                            ::jacquard_common::smol_str::SmolStr::new_static("policies"),
1777                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
1778                                description: Some(
1779                                    ::jacquard_common::CowStr::new_static(
1780                                        "Names/Keywords of the policy infraction for which takedown is being reversed.",
1781                                    ),
1782                                ),
1783                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
1784                                    description: None,
1785                                    format: None,
1786                                    default: None,
1787                                    min_length: None,
1788                                    max_length: None,
1789                                    min_graphemes: None,
1790                                    max_graphemes: None,
1791                                    r#enum: None,
1792                                    r#const: None,
1793                                    known_values: None,
1794                                }),
1795                                min_length: None,
1796                                max_length: Some(5usize),
1797                            }),
1798                        );
1799                        map.insert(
1800                            ::jacquard_common::smol_str::SmolStr::new_static(
1801                                "severityLevel",
1802                            ),
1803                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1804                                description: Some(
1805                                    ::jacquard_common::CowStr::new_static(
1806                                        "Severity level of the violation. Usually set from the last policy infraction's severity.",
1807                                    ),
1808                                ),
1809                                format: None,
1810                                default: None,
1811                                min_length: None,
1812                                max_length: None,
1813                                min_graphemes: None,
1814                                max_graphemes: None,
1815                                r#enum: None,
1816                                r#const: None,
1817                                known_values: None,
1818                            }),
1819                        );
1820                        map.insert(
1821                            ::jacquard_common::smol_str::SmolStr::new_static(
1822                                "strikeCount",
1823                            ),
1824                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1825                                description: None,
1826                                default: None,
1827                                minimum: None,
1828                                maximum: None,
1829                                r#enum: None,
1830                                r#const: None,
1831                            }),
1832                        );
1833                        map
1834                    },
1835                }),
1836            );
1837            map.insert(
1838                ::jacquard_common::smol_str::SmolStr::new_static("modEventTag"),
1839                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1840                    description: Some(
1841                        ::jacquard_common::CowStr::new_static(
1842                            "Add/Remove a tag on a subject",
1843                        ),
1844                    ),
1845                    required: Some(
1846                        vec![
1847                            ::jacquard_common::smol_str::SmolStr::new_static("add"),
1848                            ::jacquard_common::smol_str::SmolStr::new_static("remove")
1849                        ],
1850                    ),
1851                    nullable: None,
1852                    properties: {
1853                        #[allow(unused_mut)]
1854                        let mut map = ::std::collections::BTreeMap::new();
1855                        map.insert(
1856                            ::jacquard_common::smol_str::SmolStr::new_static("add"),
1857                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
1858                                description: Some(
1859                                    ::jacquard_common::CowStr::new_static(
1860                                        "Tags to be added to the subject. If already exists, won't be duplicated.",
1861                                    ),
1862                                ),
1863                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
1864                                    description: None,
1865                                    format: None,
1866                                    default: None,
1867                                    min_length: None,
1868                                    max_length: None,
1869                                    min_graphemes: None,
1870                                    max_graphemes: None,
1871                                    r#enum: None,
1872                                    r#const: None,
1873                                    known_values: None,
1874                                }),
1875                                min_length: None,
1876                                max_length: None,
1877                            }),
1878                        );
1879                        map.insert(
1880                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1881                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1882                                description: Some(
1883                                    ::jacquard_common::CowStr::new_static(
1884                                        "Additional comment about added/removed tags.",
1885                                    ),
1886                                ),
1887                                format: None,
1888                                default: None,
1889                                min_length: None,
1890                                max_length: None,
1891                                min_graphemes: None,
1892                                max_graphemes: None,
1893                                r#enum: None,
1894                                r#const: None,
1895                                known_values: None,
1896                            }),
1897                        );
1898                        map.insert(
1899                            ::jacquard_common::smol_str::SmolStr::new_static("remove"),
1900                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
1901                                description: Some(
1902                                    ::jacquard_common::CowStr::new_static(
1903                                        "Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated.",
1904                                    ),
1905                                ),
1906                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
1907                                    description: None,
1908                                    format: None,
1909                                    default: None,
1910                                    min_length: None,
1911                                    max_length: None,
1912                                    min_graphemes: None,
1913                                    max_graphemes: None,
1914                                    r#enum: None,
1915                                    r#const: None,
1916                                    known_values: None,
1917                                }),
1918                                min_length: None,
1919                                max_length: None,
1920                            }),
1921                        );
1922                        map
1923                    },
1924                }),
1925            );
1926            map.insert(
1927                ::jacquard_common::smol_str::SmolStr::new_static("modEventTakedown"),
1928                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
1929                    description: Some(
1930                        ::jacquard_common::CowStr::new_static(
1931                            "Take down a subject permanently or temporarily",
1932                        ),
1933                    ),
1934                    required: None,
1935                    nullable: None,
1936                    properties: {
1937                        #[allow(unused_mut)]
1938                        let mut map = ::std::collections::BTreeMap::new();
1939                        map.insert(
1940                            ::jacquard_common::smol_str::SmolStr::new_static(
1941                                "acknowledgeAccountSubjects",
1942                            ),
1943                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
1944                                description: None,
1945                                default: None,
1946                                r#const: None,
1947                            }),
1948                        );
1949                        map.insert(
1950                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
1951                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
1952                                description: None,
1953                                format: None,
1954                                default: None,
1955                                min_length: None,
1956                                max_length: None,
1957                                min_graphemes: None,
1958                                max_graphemes: None,
1959                                r#enum: None,
1960                                r#const: None,
1961                                known_values: None,
1962                            }),
1963                        );
1964                        map.insert(
1965                            ::jacquard_common::smol_str::SmolStr::new_static(
1966                                "durationInHours",
1967                            ),
1968                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
1969                                description: None,
1970                                default: None,
1971                                minimum: None,
1972                                maximum: None,
1973                                r#enum: None,
1974                                r#const: None,
1975                            }),
1976                        );
1977                        map.insert(
1978                            ::jacquard_common::smol_str::SmolStr::new_static("policies"),
1979                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
1980                                description: Some(
1981                                    ::jacquard_common::CowStr::new_static(
1982                                        "Names/Keywords of the policies that drove the decision.",
1983                                    ),
1984                                ),
1985                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
1986                                    description: None,
1987                                    format: None,
1988                                    default: None,
1989                                    min_length: None,
1990                                    max_length: None,
1991                                    min_graphemes: None,
1992                                    max_graphemes: None,
1993                                    r#enum: None,
1994                                    r#const: None,
1995                                    known_values: None,
1996                                }),
1997                                min_length: None,
1998                                max_length: Some(5usize),
1999                            }),
2000                        );
2001                        map.insert(
2002                            ::jacquard_common::smol_str::SmolStr::new_static(
2003                                "severityLevel",
2004                            ),
2005                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2006                                description: Some(
2007                                    ::jacquard_common::CowStr::new_static(
2008                                        "Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).",
2009                                    ),
2010                                ),
2011                                format: None,
2012                                default: None,
2013                                min_length: None,
2014                                max_length: None,
2015                                min_graphemes: None,
2016                                max_graphemes: None,
2017                                r#enum: None,
2018                                r#const: None,
2019                                known_values: None,
2020                            }),
2021                        );
2022                        map.insert(
2023                            ::jacquard_common::smol_str::SmolStr::new_static(
2024                                "strikeCount",
2025                            ),
2026                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
2027                                description: None,
2028                                default: None,
2029                                minimum: None,
2030                                maximum: None,
2031                                r#enum: None,
2032                                r#const: None,
2033                            }),
2034                        );
2035                        map.insert(
2036                            ::jacquard_common::smol_str::SmolStr::new_static(
2037                                "strikeExpiresAt",
2038                            ),
2039                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2040                                description: Some(
2041                                    ::jacquard_common::CowStr::new_static(
2042                                        "When the strike should expire. If not provided, the strike never expires.",
2043                                    ),
2044                                ),
2045                                format: Some(
2046                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2047                                ),
2048                                default: None,
2049                                min_length: None,
2050                                max_length: None,
2051                                min_graphemes: None,
2052                                max_graphemes: None,
2053                                r#enum: None,
2054                                r#const: None,
2055                                known_values: None,
2056                            }),
2057                        );
2058                        map
2059                    },
2060                }),
2061            );
2062            map.insert(
2063                ::jacquard_common::smol_str::SmolStr::new_static("modEventUnmute"),
2064                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2065                    description: Some(
2066                        ::jacquard_common::CowStr::new_static(
2067                            "Unmute action on a subject",
2068                        ),
2069                    ),
2070                    required: None,
2071                    nullable: None,
2072                    properties: {
2073                        #[allow(unused_mut)]
2074                        let mut map = ::std::collections::BTreeMap::new();
2075                        map.insert(
2076                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
2077                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2078                                description: Some(
2079                                    ::jacquard_common::CowStr::new_static(
2080                                        "Describe reasoning behind the reversal.",
2081                                    ),
2082                                ),
2083                                format: None,
2084                                default: None,
2085                                min_length: None,
2086                                max_length: None,
2087                                min_graphemes: None,
2088                                max_graphemes: None,
2089                                r#enum: None,
2090                                r#const: None,
2091                                known_values: None,
2092                            }),
2093                        );
2094                        map
2095                    },
2096                }),
2097            );
2098            map.insert(
2099                ::jacquard_common::smol_str::SmolStr::new_static(
2100                    "modEventUnmuteReporter",
2101                ),
2102                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2103                    description: Some(
2104                        ::jacquard_common::CowStr::new_static(
2105                            "Unmute incoming reports from an account",
2106                        ),
2107                    ),
2108                    required: None,
2109                    nullable: None,
2110                    properties: {
2111                        #[allow(unused_mut)]
2112                        let mut map = ::std::collections::BTreeMap::new();
2113                        map.insert(
2114                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
2115                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2116                                description: Some(
2117                                    ::jacquard_common::CowStr::new_static(
2118                                        "Describe reasoning behind the reversal.",
2119                                    ),
2120                                ),
2121                                format: None,
2122                                default: None,
2123                                min_length: None,
2124                                max_length: None,
2125                                min_graphemes: None,
2126                                max_graphemes: None,
2127                                r#enum: None,
2128                                r#const: None,
2129                                known_values: None,
2130                            }),
2131                        );
2132                        map
2133                    },
2134                }),
2135            );
2136            map.insert(
2137                ::jacquard_common::smol_str::SmolStr::new_static("modEventView"),
2138                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2139                    description: None,
2140                    required: Some(
2141                        vec![
2142                            ::jacquard_common::smol_str::SmolStr::new_static("id"),
2143                            ::jacquard_common::smol_str::SmolStr::new_static("event"),
2144                            ::jacquard_common::smol_str::SmolStr::new_static("subject"),
2145                            ::jacquard_common::smol_str::SmolStr::new_static("subjectBlobCids"),
2146                            ::jacquard_common::smol_str::SmolStr::new_static("createdBy"),
2147                            ::jacquard_common::smol_str::SmolStr::new_static("createdAt")
2148                        ],
2149                    ),
2150                    nullable: None,
2151                    properties: {
2152                        #[allow(unused_mut)]
2153                        let mut map = ::std::collections::BTreeMap::new();
2154                        map.insert(
2155                            ::jacquard_common::smol_str::SmolStr::new_static(
2156                                "createdAt",
2157                            ),
2158                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2159                                description: None,
2160                                format: Some(
2161                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2162                                ),
2163                                default: None,
2164                                min_length: None,
2165                                max_length: None,
2166                                min_graphemes: None,
2167                                max_graphemes: None,
2168                                r#enum: None,
2169                                r#const: None,
2170                                known_values: None,
2171                            }),
2172                        );
2173                        map.insert(
2174                            ::jacquard_common::smol_str::SmolStr::new_static(
2175                                "createdBy",
2176                            ),
2177                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2178                                description: None,
2179                                format: Some(
2180                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
2181                                ),
2182                                default: None,
2183                                min_length: None,
2184                                max_length: None,
2185                                min_graphemes: None,
2186                                max_graphemes: None,
2187                                r#enum: None,
2188                                r#const: None,
2189                                known_values: None,
2190                            }),
2191                        );
2192                        map.insert(
2193                            ::jacquard_common::smol_str::SmolStr::new_static(
2194                                "creatorHandle",
2195                            ),
2196                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2197                                description: None,
2198                                format: None,
2199                                default: None,
2200                                min_length: None,
2201                                max_length: None,
2202                                min_graphemes: None,
2203                                max_graphemes: None,
2204                                r#enum: None,
2205                                r#const: None,
2206                                known_values: None,
2207                            }),
2208                        );
2209                        map.insert(
2210                            ::jacquard_common::smol_str::SmolStr::new_static("event"),
2211                            ::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
2212                                description: None,
2213                                refs: vec![
2214                                    ::jacquard_common::CowStr::new_static("#modEventTakedown"),
2215                                    ::jacquard_common::CowStr::new_static("#modEventReverseTakedown"),
2216                                    ::jacquard_common::CowStr::new_static("#modEventComment"),
2217                                    ::jacquard_common::CowStr::new_static("#modEventReport"),
2218                                    ::jacquard_common::CowStr::new_static("#modEventLabel"),
2219                                    ::jacquard_common::CowStr::new_static("#modEventAcknowledge"),
2220                                    ::jacquard_common::CowStr::new_static("#modEventEscalate"),
2221                                    ::jacquard_common::CowStr::new_static("#modEventMute"),
2222                                    ::jacquard_common::CowStr::new_static("#modEventUnmute"),
2223                                    ::jacquard_common::CowStr::new_static("#modEventMuteReporter"),
2224                                    ::jacquard_common::CowStr::new_static("#modEventUnmuteReporter"),
2225                                    ::jacquard_common::CowStr::new_static("#modEventEmail"),
2226                                    ::jacquard_common::CowStr::new_static("#modEventResolveAppeal"),
2227                                    ::jacquard_common::CowStr::new_static("#modEventDivert"),
2228                                    ::jacquard_common::CowStr::new_static("#modEventTag"),
2229                                    ::jacquard_common::CowStr::new_static("#accountEvent"),
2230                                    ::jacquard_common::CowStr::new_static("#identityEvent"),
2231                                    ::jacquard_common::CowStr::new_static("#recordEvent"),
2232                                    ::jacquard_common::CowStr::new_static("#modEventPriorityScore"),
2233                                    ::jacquard_common::CowStr::new_static("#ageAssuranceEvent"),
2234                                    ::jacquard_common::CowStr::new_static("#ageAssuranceOverrideEvent"),
2235                                    ::jacquard_common::CowStr::new_static("#revokeAccountCredentialsEvent"),
2236                                    ::jacquard_common::CowStr::new_static("#scheduleTakedownEvent"),
2237                                    ::jacquard_common::CowStr::new_static("#cancelScheduledTakedownEvent")
2238                                ],
2239                                closed: None,
2240                            }),
2241                        );
2242                        map.insert(
2243                            ::jacquard_common::smol_str::SmolStr::new_static("id"),
2244                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
2245                                description: None,
2246                                default: None,
2247                                minimum: None,
2248                                maximum: None,
2249                                r#enum: None,
2250                                r#const: None,
2251                            }),
2252                        );
2253                        map.insert(
2254                            ::jacquard_common::smol_str::SmolStr::new_static("modTool"),
2255                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
2256                                description: None,
2257                                r#ref: ::jacquard_common::CowStr::new_static("#modTool"),
2258                            }),
2259                        );
2260                        map.insert(
2261                            ::jacquard_common::smol_str::SmolStr::new_static("subject"),
2262                            ::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
2263                                description: None,
2264                                refs: vec![
2265                                    ::jacquard_common::CowStr::new_static("com.atproto.admin.defs#repoRef"),
2266                                    ::jacquard_common::CowStr::new_static("com.atproto.repo.strongRef"),
2267                                    ::jacquard_common::CowStr::new_static("chat.bsky.convo.defs#messageRef")
2268                                ],
2269                                closed: None,
2270                            }),
2271                        );
2272                        map.insert(
2273                            ::jacquard_common::smol_str::SmolStr::new_static(
2274                                "subjectBlobCids",
2275                            ),
2276                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
2277                                description: None,
2278                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
2279                                    description: None,
2280                                    format: None,
2281                                    default: None,
2282                                    min_length: None,
2283                                    max_length: None,
2284                                    min_graphemes: None,
2285                                    max_graphemes: None,
2286                                    r#enum: None,
2287                                    r#const: None,
2288                                    known_values: None,
2289                                }),
2290                                min_length: None,
2291                                max_length: None,
2292                            }),
2293                        );
2294                        map.insert(
2295                            ::jacquard_common::smol_str::SmolStr::new_static(
2296                                "subjectHandle",
2297                            ),
2298                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2299                                description: None,
2300                                format: None,
2301                                default: None,
2302                                min_length: None,
2303                                max_length: None,
2304                                min_graphemes: None,
2305                                max_graphemes: None,
2306                                r#enum: None,
2307                                r#const: None,
2308                                known_values: None,
2309                            }),
2310                        );
2311                        map
2312                    },
2313                }),
2314            );
2315            map.insert(
2316                ::jacquard_common::smol_str::SmolStr::new_static("modEventViewDetail"),
2317                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2318                    description: None,
2319                    required: Some(
2320                        vec![
2321                            ::jacquard_common::smol_str::SmolStr::new_static("id"),
2322                            ::jacquard_common::smol_str::SmolStr::new_static("event"),
2323                            ::jacquard_common::smol_str::SmolStr::new_static("subject"),
2324                            ::jacquard_common::smol_str::SmolStr::new_static("subjectBlobs"),
2325                            ::jacquard_common::smol_str::SmolStr::new_static("createdBy"),
2326                            ::jacquard_common::smol_str::SmolStr::new_static("createdAt")
2327                        ],
2328                    ),
2329                    nullable: None,
2330                    properties: {
2331                        #[allow(unused_mut)]
2332                        let mut map = ::std::collections::BTreeMap::new();
2333                        map.insert(
2334                            ::jacquard_common::smol_str::SmolStr::new_static(
2335                                "createdAt",
2336                            ),
2337                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2338                                description: None,
2339                                format: Some(
2340                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2341                                ),
2342                                default: None,
2343                                min_length: None,
2344                                max_length: None,
2345                                min_graphemes: None,
2346                                max_graphemes: None,
2347                                r#enum: None,
2348                                r#const: None,
2349                                known_values: None,
2350                            }),
2351                        );
2352                        map.insert(
2353                            ::jacquard_common::smol_str::SmolStr::new_static(
2354                                "createdBy",
2355                            ),
2356                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2357                                description: None,
2358                                format: Some(
2359                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
2360                                ),
2361                                default: None,
2362                                min_length: None,
2363                                max_length: None,
2364                                min_graphemes: None,
2365                                max_graphemes: None,
2366                                r#enum: None,
2367                                r#const: None,
2368                                known_values: None,
2369                            }),
2370                        );
2371                        map.insert(
2372                            ::jacquard_common::smol_str::SmolStr::new_static("event"),
2373                            ::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
2374                                description: None,
2375                                refs: vec![
2376                                    ::jacquard_common::CowStr::new_static("#modEventTakedown"),
2377                                    ::jacquard_common::CowStr::new_static("#modEventReverseTakedown"),
2378                                    ::jacquard_common::CowStr::new_static("#modEventComment"),
2379                                    ::jacquard_common::CowStr::new_static("#modEventReport"),
2380                                    ::jacquard_common::CowStr::new_static("#modEventLabel"),
2381                                    ::jacquard_common::CowStr::new_static("#modEventAcknowledge"),
2382                                    ::jacquard_common::CowStr::new_static("#modEventEscalate"),
2383                                    ::jacquard_common::CowStr::new_static("#modEventMute"),
2384                                    ::jacquard_common::CowStr::new_static("#modEventUnmute"),
2385                                    ::jacquard_common::CowStr::new_static("#modEventMuteReporter"),
2386                                    ::jacquard_common::CowStr::new_static("#modEventUnmuteReporter"),
2387                                    ::jacquard_common::CowStr::new_static("#modEventEmail"),
2388                                    ::jacquard_common::CowStr::new_static("#modEventResolveAppeal"),
2389                                    ::jacquard_common::CowStr::new_static("#modEventDivert"),
2390                                    ::jacquard_common::CowStr::new_static("#modEventTag"),
2391                                    ::jacquard_common::CowStr::new_static("#accountEvent"),
2392                                    ::jacquard_common::CowStr::new_static("#identityEvent"),
2393                                    ::jacquard_common::CowStr::new_static("#recordEvent"),
2394                                    ::jacquard_common::CowStr::new_static("#modEventPriorityScore"),
2395                                    ::jacquard_common::CowStr::new_static("#ageAssuranceEvent"),
2396                                    ::jacquard_common::CowStr::new_static("#ageAssuranceOverrideEvent"),
2397                                    ::jacquard_common::CowStr::new_static("#revokeAccountCredentialsEvent"),
2398                                    ::jacquard_common::CowStr::new_static("#scheduleTakedownEvent"),
2399                                    ::jacquard_common::CowStr::new_static("#cancelScheduledTakedownEvent")
2400                                ],
2401                                closed: None,
2402                            }),
2403                        );
2404                        map.insert(
2405                            ::jacquard_common::smol_str::SmolStr::new_static("id"),
2406                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
2407                                description: None,
2408                                default: None,
2409                                minimum: None,
2410                                maximum: None,
2411                                r#enum: None,
2412                                r#const: None,
2413                            }),
2414                        );
2415                        map.insert(
2416                            ::jacquard_common::smol_str::SmolStr::new_static("modTool"),
2417                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
2418                                description: None,
2419                                r#ref: ::jacquard_common::CowStr::new_static("#modTool"),
2420                            }),
2421                        );
2422                        map.insert(
2423                            ::jacquard_common::smol_str::SmolStr::new_static("subject"),
2424                            ::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
2425                                description: None,
2426                                refs: vec![
2427                                    ::jacquard_common::CowStr::new_static("#repoView"),
2428                                    ::jacquard_common::CowStr::new_static("#repoViewNotFound"),
2429                                    ::jacquard_common::CowStr::new_static("#recordView"),
2430                                    ::jacquard_common::CowStr::new_static("#recordViewNotFound")
2431                                ],
2432                                closed: None,
2433                            }),
2434                        );
2435                        map.insert(
2436                            ::jacquard_common::smol_str::SmolStr::new_static(
2437                                "subjectBlobs",
2438                            ),
2439                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
2440                                description: None,
2441                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
2442                                    description: None,
2443                                    r#ref: ::jacquard_common::CowStr::new_static("#blobView"),
2444                                }),
2445                                min_length: None,
2446                                max_length: None,
2447                            }),
2448                        );
2449                        map
2450                    },
2451                }),
2452            );
2453            map.insert(
2454                ::jacquard_common::smol_str::SmolStr::new_static("modTool"),
2455                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2456                    description: Some(
2457                        ::jacquard_common::CowStr::new_static(
2458                            "Moderation tool information for tracing the source of the action",
2459                        ),
2460                    ),
2461                    required: Some(
2462                        vec![::jacquard_common::smol_str::SmolStr::new_static("name")],
2463                    ),
2464                    nullable: None,
2465                    properties: {
2466                        #[allow(unused_mut)]
2467                        let mut map = ::std::collections::BTreeMap::new();
2468                        map.insert(
2469                            ::jacquard_common::smol_str::SmolStr::new_static("meta"),
2470                            ::jacquard_lexicon::lexicon::LexObjectProperty::Unknown(::jacquard_lexicon::lexicon::LexUnknown {
2471                                description: None,
2472                            }),
2473                        );
2474                        map.insert(
2475                            ::jacquard_common::smol_str::SmolStr::new_static("name"),
2476                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2477                                description: Some(
2478                                    ::jacquard_common::CowStr::new_static(
2479                                        "Name/identifier of the source (e.g., 'automod', 'ozone/workspace')",
2480                                    ),
2481                                ),
2482                                format: None,
2483                                default: None,
2484                                min_length: None,
2485                                max_length: None,
2486                                min_graphemes: None,
2487                                max_graphemes: None,
2488                                r#enum: None,
2489                                r#const: None,
2490                                known_values: None,
2491                            }),
2492                        );
2493                        map
2494                    },
2495                }),
2496            );
2497            map.insert(
2498                ::jacquard_common::smol_str::SmolStr::new_static("moderation"),
2499                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2500                    description: None,
2501                    required: None,
2502                    nullable: None,
2503                    properties: {
2504                        #[allow(unused_mut)]
2505                        let mut map = ::std::collections::BTreeMap::new();
2506                        map.insert(
2507                            ::jacquard_common::smol_str::SmolStr::new_static(
2508                                "subjectStatus",
2509                            ),
2510                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
2511                                description: None,
2512                                r#ref: ::jacquard_common::CowStr::new_static(
2513                                    "#subjectStatusView",
2514                                ),
2515                            }),
2516                        );
2517                        map
2518                    },
2519                }),
2520            );
2521            map.insert(
2522                ::jacquard_common::smol_str::SmolStr::new_static("moderationDetail"),
2523                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2524                    description: None,
2525                    required: None,
2526                    nullable: None,
2527                    properties: {
2528                        #[allow(unused_mut)]
2529                        let mut map = ::std::collections::BTreeMap::new();
2530                        map.insert(
2531                            ::jacquard_common::smol_str::SmolStr::new_static(
2532                                "subjectStatus",
2533                            ),
2534                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
2535                                description: None,
2536                                r#ref: ::jacquard_common::CowStr::new_static(
2537                                    "#subjectStatusView",
2538                                ),
2539                            }),
2540                        );
2541                        map
2542                    },
2543                }),
2544            );
2545            map.insert(
2546                ::jacquard_common::smol_str::SmolStr::new_static("recordEvent"),
2547                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2548                    description: Some(
2549                        ::jacquard_common::CowStr::new_static(
2550                            "Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
2551                        ),
2552                    ),
2553                    required: Some(
2554                        vec![
2555                            ::jacquard_common::smol_str::SmolStr::new_static("timestamp"),
2556                            ::jacquard_common::smol_str::SmolStr::new_static("op")
2557                        ],
2558                    ),
2559                    nullable: None,
2560                    properties: {
2561                        #[allow(unused_mut)]
2562                        let mut map = ::std::collections::BTreeMap::new();
2563                        map.insert(
2564                            ::jacquard_common::smol_str::SmolStr::new_static("cid"),
2565                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2566                                description: None,
2567                                format: Some(
2568                                    ::jacquard_lexicon::lexicon::LexStringFormat::Cid,
2569                                ),
2570                                default: None,
2571                                min_length: None,
2572                                max_length: None,
2573                                min_graphemes: None,
2574                                max_graphemes: None,
2575                                r#enum: None,
2576                                r#const: None,
2577                                known_values: None,
2578                            }),
2579                        );
2580                        map.insert(
2581                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
2582                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2583                                description: None,
2584                                format: None,
2585                                default: None,
2586                                min_length: None,
2587                                max_length: None,
2588                                min_graphemes: None,
2589                                max_graphemes: None,
2590                                r#enum: None,
2591                                r#const: None,
2592                                known_values: None,
2593                            }),
2594                        );
2595                        map.insert(
2596                            ::jacquard_common::smol_str::SmolStr::new_static("op"),
2597                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2598                                description: None,
2599                                format: None,
2600                                default: None,
2601                                min_length: None,
2602                                max_length: None,
2603                                min_graphemes: None,
2604                                max_graphemes: None,
2605                                r#enum: None,
2606                                r#const: None,
2607                                known_values: None,
2608                            }),
2609                        );
2610                        map.insert(
2611                            ::jacquard_common::smol_str::SmolStr::new_static(
2612                                "timestamp",
2613                            ),
2614                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2615                                description: None,
2616                                format: Some(
2617                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2618                                ),
2619                                default: None,
2620                                min_length: None,
2621                                max_length: None,
2622                                min_graphemes: None,
2623                                max_graphemes: None,
2624                                r#enum: None,
2625                                r#const: None,
2626                                known_values: None,
2627                            }),
2628                        );
2629                        map
2630                    },
2631                }),
2632            );
2633            map.insert(
2634                ::jacquard_common::smol_str::SmolStr::new_static("recordHosting"),
2635                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2636                    description: None,
2637                    required: Some(
2638                        vec![::jacquard_common::smol_str::SmolStr::new_static("status")],
2639                    ),
2640                    nullable: None,
2641                    properties: {
2642                        #[allow(unused_mut)]
2643                        let mut map = ::std::collections::BTreeMap::new();
2644                        map.insert(
2645                            ::jacquard_common::smol_str::SmolStr::new_static(
2646                                "createdAt",
2647                            ),
2648                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2649                                description: None,
2650                                format: Some(
2651                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2652                                ),
2653                                default: None,
2654                                min_length: None,
2655                                max_length: None,
2656                                min_graphemes: None,
2657                                max_graphemes: None,
2658                                r#enum: None,
2659                                r#const: None,
2660                                known_values: None,
2661                            }),
2662                        );
2663                        map.insert(
2664                            ::jacquard_common::smol_str::SmolStr::new_static(
2665                                "deletedAt",
2666                            ),
2667                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2668                                description: None,
2669                                format: Some(
2670                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2671                                ),
2672                                default: None,
2673                                min_length: None,
2674                                max_length: None,
2675                                min_graphemes: None,
2676                                max_graphemes: None,
2677                                r#enum: None,
2678                                r#const: None,
2679                                known_values: None,
2680                            }),
2681                        );
2682                        map.insert(
2683                            ::jacquard_common::smol_str::SmolStr::new_static("status"),
2684                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2685                                description: None,
2686                                format: None,
2687                                default: None,
2688                                min_length: None,
2689                                max_length: None,
2690                                min_graphemes: None,
2691                                max_graphemes: None,
2692                                r#enum: None,
2693                                r#const: None,
2694                                known_values: None,
2695                            }),
2696                        );
2697                        map.insert(
2698                            ::jacquard_common::smol_str::SmolStr::new_static(
2699                                "updatedAt",
2700                            ),
2701                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2702                                description: None,
2703                                format: Some(
2704                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2705                                ),
2706                                default: None,
2707                                min_length: None,
2708                                max_length: None,
2709                                min_graphemes: None,
2710                                max_graphemes: None,
2711                                r#enum: None,
2712                                r#const: None,
2713                                known_values: None,
2714                            }),
2715                        );
2716                        map
2717                    },
2718                }),
2719            );
2720            map.insert(
2721                ::jacquard_common::smol_str::SmolStr::new_static("recordView"),
2722                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2723                    description: None,
2724                    required: Some(
2725                        vec![
2726                            ::jacquard_common::smol_str::SmolStr::new_static("uri"),
2727                            ::jacquard_common::smol_str::SmolStr::new_static("cid"),
2728                            ::jacquard_common::smol_str::SmolStr::new_static("value"),
2729                            ::jacquard_common::smol_str::SmolStr::new_static("blobCids"),
2730                            ::jacquard_common::smol_str::SmolStr::new_static("indexedAt"),
2731                            ::jacquard_common::smol_str::SmolStr::new_static("moderation"),
2732                            ::jacquard_common::smol_str::SmolStr::new_static("repo")
2733                        ],
2734                    ),
2735                    nullable: None,
2736                    properties: {
2737                        #[allow(unused_mut)]
2738                        let mut map = ::std::collections::BTreeMap::new();
2739                        map.insert(
2740                            ::jacquard_common::smol_str::SmolStr::new_static("blobCids"),
2741                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
2742                                description: None,
2743                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
2744                                    description: None,
2745                                    format: Some(
2746                                        ::jacquard_lexicon::lexicon::LexStringFormat::Cid,
2747                                    ),
2748                                    default: None,
2749                                    min_length: None,
2750                                    max_length: None,
2751                                    min_graphemes: None,
2752                                    max_graphemes: None,
2753                                    r#enum: None,
2754                                    r#const: None,
2755                                    known_values: None,
2756                                }),
2757                                min_length: None,
2758                                max_length: None,
2759                            }),
2760                        );
2761                        map.insert(
2762                            ::jacquard_common::smol_str::SmolStr::new_static("cid"),
2763                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2764                                description: None,
2765                                format: Some(
2766                                    ::jacquard_lexicon::lexicon::LexStringFormat::Cid,
2767                                ),
2768                                default: None,
2769                                min_length: None,
2770                                max_length: None,
2771                                min_graphemes: None,
2772                                max_graphemes: None,
2773                                r#enum: None,
2774                                r#const: None,
2775                                known_values: None,
2776                            }),
2777                        );
2778                        map.insert(
2779                            ::jacquard_common::smol_str::SmolStr::new_static(
2780                                "indexedAt",
2781                            ),
2782                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2783                                description: None,
2784                                format: Some(
2785                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2786                                ),
2787                                default: None,
2788                                min_length: None,
2789                                max_length: None,
2790                                min_graphemes: None,
2791                                max_graphemes: None,
2792                                r#enum: None,
2793                                r#const: None,
2794                                known_values: None,
2795                            }),
2796                        );
2797                        map.insert(
2798                            ::jacquard_common::smol_str::SmolStr::new_static(
2799                                "moderation",
2800                            ),
2801                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
2802                                description: None,
2803                                r#ref: ::jacquard_common::CowStr::new_static("#moderation"),
2804                            }),
2805                        );
2806                        map.insert(
2807                            ::jacquard_common::smol_str::SmolStr::new_static("repo"),
2808                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
2809                                description: None,
2810                                r#ref: ::jacquard_common::CowStr::new_static("#repoView"),
2811                            }),
2812                        );
2813                        map.insert(
2814                            ::jacquard_common::smol_str::SmolStr::new_static("uri"),
2815                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2816                                description: None,
2817                                format: Some(
2818                                    ::jacquard_lexicon::lexicon::LexStringFormat::AtUri,
2819                                ),
2820                                default: None,
2821                                min_length: None,
2822                                max_length: None,
2823                                min_graphemes: None,
2824                                max_graphemes: None,
2825                                r#enum: None,
2826                                r#const: None,
2827                                known_values: None,
2828                            }),
2829                        );
2830                        map.insert(
2831                            ::jacquard_common::smol_str::SmolStr::new_static("value"),
2832                            ::jacquard_lexicon::lexicon::LexObjectProperty::Unknown(::jacquard_lexicon::lexicon::LexUnknown {
2833                                description: None,
2834                            }),
2835                        );
2836                        map
2837                    },
2838                }),
2839            );
2840            map.insert(
2841                ::jacquard_common::smol_str::SmolStr::new_static("recordViewDetail"),
2842                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2843                    description: None,
2844                    required: Some(
2845                        vec![
2846                            ::jacquard_common::smol_str::SmolStr::new_static("uri"),
2847                            ::jacquard_common::smol_str::SmolStr::new_static("cid"),
2848                            ::jacquard_common::smol_str::SmolStr::new_static("value"),
2849                            ::jacquard_common::smol_str::SmolStr::new_static("blobs"),
2850                            ::jacquard_common::smol_str::SmolStr::new_static("indexedAt"),
2851                            ::jacquard_common::smol_str::SmolStr::new_static("moderation"),
2852                            ::jacquard_common::smol_str::SmolStr::new_static("repo")
2853                        ],
2854                    ),
2855                    nullable: None,
2856                    properties: {
2857                        #[allow(unused_mut)]
2858                        let mut map = ::std::collections::BTreeMap::new();
2859                        map.insert(
2860                            ::jacquard_common::smol_str::SmolStr::new_static("blobs"),
2861                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
2862                                description: None,
2863                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
2864                                    description: None,
2865                                    r#ref: ::jacquard_common::CowStr::new_static("#blobView"),
2866                                }),
2867                                min_length: None,
2868                                max_length: None,
2869                            }),
2870                        );
2871                        map.insert(
2872                            ::jacquard_common::smol_str::SmolStr::new_static("cid"),
2873                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2874                                description: None,
2875                                format: Some(
2876                                    ::jacquard_lexicon::lexicon::LexStringFormat::Cid,
2877                                ),
2878                                default: None,
2879                                min_length: None,
2880                                max_length: None,
2881                                min_graphemes: None,
2882                                max_graphemes: None,
2883                                r#enum: None,
2884                                r#const: None,
2885                                known_values: None,
2886                            }),
2887                        );
2888                        map.insert(
2889                            ::jacquard_common::smol_str::SmolStr::new_static(
2890                                "indexedAt",
2891                            ),
2892                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2893                                description: None,
2894                                format: Some(
2895                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
2896                                ),
2897                                default: None,
2898                                min_length: None,
2899                                max_length: None,
2900                                min_graphemes: None,
2901                                max_graphemes: None,
2902                                r#enum: None,
2903                                r#const: None,
2904                                known_values: None,
2905                            }),
2906                        );
2907                        map.insert(
2908                            ::jacquard_common::smol_str::SmolStr::new_static("labels"),
2909                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
2910                                description: None,
2911                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
2912                                    description: None,
2913                                    r#ref: ::jacquard_common::CowStr::new_static(
2914                                        "com.atproto.label.defs#label",
2915                                    ),
2916                                }),
2917                                min_length: None,
2918                                max_length: None,
2919                            }),
2920                        );
2921                        map.insert(
2922                            ::jacquard_common::smol_str::SmolStr::new_static(
2923                                "moderation",
2924                            ),
2925                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
2926                                description: None,
2927                                r#ref: ::jacquard_common::CowStr::new_static(
2928                                    "#moderationDetail",
2929                                ),
2930                            }),
2931                        );
2932                        map.insert(
2933                            ::jacquard_common::smol_str::SmolStr::new_static("repo"),
2934                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
2935                                description: None,
2936                                r#ref: ::jacquard_common::CowStr::new_static("#repoView"),
2937                            }),
2938                        );
2939                        map.insert(
2940                            ::jacquard_common::smol_str::SmolStr::new_static("uri"),
2941                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2942                                description: None,
2943                                format: Some(
2944                                    ::jacquard_lexicon::lexicon::LexStringFormat::AtUri,
2945                                ),
2946                                default: None,
2947                                min_length: None,
2948                                max_length: None,
2949                                min_graphemes: None,
2950                                max_graphemes: None,
2951                                r#enum: None,
2952                                r#const: None,
2953                                known_values: None,
2954                            }),
2955                        );
2956                        map.insert(
2957                            ::jacquard_common::smol_str::SmolStr::new_static("value"),
2958                            ::jacquard_lexicon::lexicon::LexObjectProperty::Unknown(::jacquard_lexicon::lexicon::LexUnknown {
2959                                description: None,
2960                            }),
2961                        );
2962                        map
2963                    },
2964                }),
2965            );
2966            map.insert(
2967                ::jacquard_common::smol_str::SmolStr::new_static("recordViewNotFound"),
2968                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
2969                    description: None,
2970                    required: Some(
2971                        vec![::jacquard_common::smol_str::SmolStr::new_static("uri")],
2972                    ),
2973                    nullable: None,
2974                    properties: {
2975                        #[allow(unused_mut)]
2976                        let mut map = ::std::collections::BTreeMap::new();
2977                        map.insert(
2978                            ::jacquard_common::smol_str::SmolStr::new_static("uri"),
2979                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
2980                                description: None,
2981                                format: Some(
2982                                    ::jacquard_lexicon::lexicon::LexStringFormat::AtUri,
2983                                ),
2984                                default: None,
2985                                min_length: None,
2986                                max_length: None,
2987                                min_graphemes: None,
2988                                max_graphemes: None,
2989                                r#enum: None,
2990                                r#const: None,
2991                                known_values: None,
2992                            }),
2993                        );
2994                        map
2995                    },
2996                }),
2997            );
2998            map.insert(
2999                ::jacquard_common::smol_str::SmolStr::new_static("recordsStats"),
3000                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
3001                    description: Some(
3002                        ::jacquard_common::CowStr::new_static(
3003                            "Statistics about a set of record subject items",
3004                        ),
3005                    ),
3006                    required: None,
3007                    nullable: None,
3008                    properties: {
3009                        #[allow(unused_mut)]
3010                        let mut map = ::std::collections::BTreeMap::new();
3011                        map.insert(
3012                            ::jacquard_common::smol_str::SmolStr::new_static(
3013                                "appealedCount",
3014                            ),
3015                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3016                                description: None,
3017                                default: None,
3018                                minimum: None,
3019                                maximum: None,
3020                                r#enum: None,
3021                                r#const: None,
3022                            }),
3023                        );
3024                        map.insert(
3025                            ::jacquard_common::smol_str::SmolStr::new_static(
3026                                "escalatedCount",
3027                            ),
3028                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3029                                description: None,
3030                                default: None,
3031                                minimum: None,
3032                                maximum: None,
3033                                r#enum: None,
3034                                r#const: None,
3035                            }),
3036                        );
3037                        map.insert(
3038                            ::jacquard_common::smol_str::SmolStr::new_static(
3039                                "pendingCount",
3040                            ),
3041                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3042                                description: None,
3043                                default: None,
3044                                minimum: None,
3045                                maximum: None,
3046                                r#enum: None,
3047                                r#const: None,
3048                            }),
3049                        );
3050                        map.insert(
3051                            ::jacquard_common::smol_str::SmolStr::new_static(
3052                                "processedCount",
3053                            ),
3054                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3055                                description: None,
3056                                default: None,
3057                                minimum: None,
3058                                maximum: None,
3059                                r#enum: None,
3060                                r#const: None,
3061                            }),
3062                        );
3063                        map.insert(
3064                            ::jacquard_common::smol_str::SmolStr::new_static(
3065                                "reportedCount",
3066                            ),
3067                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3068                                description: None,
3069                                default: None,
3070                                minimum: None,
3071                                maximum: None,
3072                                r#enum: None,
3073                                r#const: None,
3074                            }),
3075                        );
3076                        map.insert(
3077                            ::jacquard_common::smol_str::SmolStr::new_static(
3078                                "subjectCount",
3079                            ),
3080                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3081                                description: None,
3082                                default: None,
3083                                minimum: None,
3084                                maximum: None,
3085                                r#enum: None,
3086                                r#const: None,
3087                            }),
3088                        );
3089                        map.insert(
3090                            ::jacquard_common::smol_str::SmolStr::new_static(
3091                                "takendownCount",
3092                            ),
3093                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3094                                description: None,
3095                                default: None,
3096                                minimum: None,
3097                                maximum: None,
3098                                r#enum: None,
3099                                r#const: None,
3100                            }),
3101                        );
3102                        map.insert(
3103                            ::jacquard_common::smol_str::SmolStr::new_static(
3104                                "totalReports",
3105                            ),
3106                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3107                                description: None,
3108                                default: None,
3109                                minimum: None,
3110                                maximum: None,
3111                                r#enum: None,
3112                                r#const: None,
3113                            }),
3114                        );
3115                        map
3116                    },
3117                }),
3118            );
3119            map.insert(
3120                ::jacquard_common::smol_str::SmolStr::new_static("repoView"),
3121                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
3122                    description: None,
3123                    required: Some(
3124                        vec![
3125                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3126                            ::jacquard_common::smol_str::SmolStr::new_static("handle"),
3127                            ::jacquard_common::smol_str::SmolStr::new_static("relatedRecords"),
3128                            ::jacquard_common::smol_str::SmolStr::new_static("indexedAt"),
3129                            ::jacquard_common::smol_str::SmolStr::new_static("moderation")
3130                        ],
3131                    ),
3132                    nullable: None,
3133                    properties: {
3134                        #[allow(unused_mut)]
3135                        let mut map = ::std::collections::BTreeMap::new();
3136                        map.insert(
3137                            ::jacquard_common::smol_str::SmolStr::new_static(
3138                                "deactivatedAt",
3139                            ),
3140                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3141                                description: None,
3142                                format: Some(
3143                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3144                                ),
3145                                default: None,
3146                                min_length: None,
3147                                max_length: None,
3148                                min_graphemes: None,
3149                                max_graphemes: None,
3150                                r#enum: None,
3151                                r#const: None,
3152                                known_values: None,
3153                            }),
3154                        );
3155                        map.insert(
3156                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3157                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3158                                description: None,
3159                                format: Some(
3160                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
3161                                ),
3162                                default: None,
3163                                min_length: None,
3164                                max_length: None,
3165                                min_graphemes: None,
3166                                max_graphemes: None,
3167                                r#enum: None,
3168                                r#const: None,
3169                                known_values: None,
3170                            }),
3171                        );
3172                        map.insert(
3173                            ::jacquard_common::smol_str::SmolStr::new_static("email"),
3174                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3175                                description: None,
3176                                format: None,
3177                                default: None,
3178                                min_length: None,
3179                                max_length: None,
3180                                min_graphemes: None,
3181                                max_graphemes: None,
3182                                r#enum: None,
3183                                r#const: None,
3184                                known_values: None,
3185                            }),
3186                        );
3187                        map.insert(
3188                            ::jacquard_common::smol_str::SmolStr::new_static("handle"),
3189                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3190                                description: None,
3191                                format: Some(
3192                                    ::jacquard_lexicon::lexicon::LexStringFormat::Handle,
3193                                ),
3194                                default: None,
3195                                min_length: None,
3196                                max_length: None,
3197                                min_graphemes: None,
3198                                max_graphemes: None,
3199                                r#enum: None,
3200                                r#const: None,
3201                                known_values: None,
3202                            }),
3203                        );
3204                        map.insert(
3205                            ::jacquard_common::smol_str::SmolStr::new_static(
3206                                "indexedAt",
3207                            ),
3208                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3209                                description: None,
3210                                format: Some(
3211                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3212                                ),
3213                                default: None,
3214                                min_length: None,
3215                                max_length: None,
3216                                min_graphemes: None,
3217                                max_graphemes: None,
3218                                r#enum: None,
3219                                r#const: None,
3220                                known_values: None,
3221                            }),
3222                        );
3223                        map.insert(
3224                            ::jacquard_common::smol_str::SmolStr::new_static(
3225                                "inviteNote",
3226                            ),
3227                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3228                                description: None,
3229                                format: None,
3230                                default: None,
3231                                min_length: None,
3232                                max_length: None,
3233                                min_graphemes: None,
3234                                max_graphemes: None,
3235                                r#enum: None,
3236                                r#const: None,
3237                                known_values: None,
3238                            }),
3239                        );
3240                        map.insert(
3241                            ::jacquard_common::smol_str::SmolStr::new_static(
3242                                "invitedBy",
3243                            ),
3244                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
3245                                description: None,
3246                                r#ref: ::jacquard_common::CowStr::new_static(
3247                                    "com.atproto.server.defs#inviteCode",
3248                                ),
3249                            }),
3250                        );
3251                        map.insert(
3252                            ::jacquard_common::smol_str::SmolStr::new_static(
3253                                "invitesDisabled",
3254                            ),
3255                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
3256                                description: None,
3257                                default: None,
3258                                r#const: None,
3259                            }),
3260                        );
3261                        map.insert(
3262                            ::jacquard_common::smol_str::SmolStr::new_static(
3263                                "moderation",
3264                            ),
3265                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
3266                                description: None,
3267                                r#ref: ::jacquard_common::CowStr::new_static("#moderation"),
3268                            }),
3269                        );
3270                        map.insert(
3271                            ::jacquard_common::smol_str::SmolStr::new_static(
3272                                "relatedRecords",
3273                            ),
3274                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
3275                                description: None,
3276                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Unknown(::jacquard_lexicon::lexicon::LexUnknown {
3277                                    description: None,
3278                                }),
3279                                min_length: None,
3280                                max_length: None,
3281                            }),
3282                        );
3283                        map.insert(
3284                            ::jacquard_common::smol_str::SmolStr::new_static(
3285                                "threatSignatures",
3286                            ),
3287                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
3288                                description: None,
3289                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
3290                                    description: None,
3291                                    r#ref: ::jacquard_common::CowStr::new_static(
3292                                        "com.atproto.admin.defs#threatSignature",
3293                                    ),
3294                                }),
3295                                min_length: None,
3296                                max_length: None,
3297                            }),
3298                        );
3299                        map
3300                    },
3301                }),
3302            );
3303            map.insert(
3304                ::jacquard_common::smol_str::SmolStr::new_static("repoViewDetail"),
3305                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
3306                    description: None,
3307                    required: Some(
3308                        vec![
3309                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3310                            ::jacquard_common::smol_str::SmolStr::new_static("handle"),
3311                            ::jacquard_common::smol_str::SmolStr::new_static("relatedRecords"),
3312                            ::jacquard_common::smol_str::SmolStr::new_static("indexedAt"),
3313                            ::jacquard_common::smol_str::SmolStr::new_static("moderation")
3314                        ],
3315                    ),
3316                    nullable: None,
3317                    properties: {
3318                        #[allow(unused_mut)]
3319                        let mut map = ::std::collections::BTreeMap::new();
3320                        map.insert(
3321                            ::jacquard_common::smol_str::SmolStr::new_static(
3322                                "deactivatedAt",
3323                            ),
3324                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3325                                description: None,
3326                                format: Some(
3327                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3328                                ),
3329                                default: None,
3330                                min_length: None,
3331                                max_length: None,
3332                                min_graphemes: None,
3333                                max_graphemes: None,
3334                                r#enum: None,
3335                                r#const: None,
3336                                known_values: None,
3337                            }),
3338                        );
3339                        map.insert(
3340                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3341                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3342                                description: None,
3343                                format: Some(
3344                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
3345                                ),
3346                                default: None,
3347                                min_length: None,
3348                                max_length: None,
3349                                min_graphemes: None,
3350                                max_graphemes: None,
3351                                r#enum: None,
3352                                r#const: None,
3353                                known_values: None,
3354                            }),
3355                        );
3356                        map.insert(
3357                            ::jacquard_common::smol_str::SmolStr::new_static("email"),
3358                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3359                                description: None,
3360                                format: None,
3361                                default: None,
3362                                min_length: None,
3363                                max_length: None,
3364                                min_graphemes: None,
3365                                max_graphemes: None,
3366                                r#enum: None,
3367                                r#const: None,
3368                                known_values: None,
3369                            }),
3370                        );
3371                        map.insert(
3372                            ::jacquard_common::smol_str::SmolStr::new_static(
3373                                "emailConfirmedAt",
3374                            ),
3375                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3376                                description: None,
3377                                format: Some(
3378                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3379                                ),
3380                                default: None,
3381                                min_length: None,
3382                                max_length: None,
3383                                min_graphemes: None,
3384                                max_graphemes: None,
3385                                r#enum: None,
3386                                r#const: None,
3387                                known_values: None,
3388                            }),
3389                        );
3390                        map.insert(
3391                            ::jacquard_common::smol_str::SmolStr::new_static("handle"),
3392                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3393                                description: None,
3394                                format: Some(
3395                                    ::jacquard_lexicon::lexicon::LexStringFormat::Handle,
3396                                ),
3397                                default: None,
3398                                min_length: None,
3399                                max_length: None,
3400                                min_graphemes: None,
3401                                max_graphemes: None,
3402                                r#enum: None,
3403                                r#const: None,
3404                                known_values: None,
3405                            }),
3406                        );
3407                        map.insert(
3408                            ::jacquard_common::smol_str::SmolStr::new_static(
3409                                "indexedAt",
3410                            ),
3411                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3412                                description: None,
3413                                format: Some(
3414                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3415                                ),
3416                                default: None,
3417                                min_length: None,
3418                                max_length: None,
3419                                min_graphemes: None,
3420                                max_graphemes: None,
3421                                r#enum: None,
3422                                r#const: None,
3423                                known_values: None,
3424                            }),
3425                        );
3426                        map.insert(
3427                            ::jacquard_common::smol_str::SmolStr::new_static(
3428                                "inviteNote",
3429                            ),
3430                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3431                                description: None,
3432                                format: None,
3433                                default: None,
3434                                min_length: None,
3435                                max_length: None,
3436                                min_graphemes: None,
3437                                max_graphemes: None,
3438                                r#enum: None,
3439                                r#const: None,
3440                                known_values: None,
3441                            }),
3442                        );
3443                        map.insert(
3444                            ::jacquard_common::smol_str::SmolStr::new_static(
3445                                "invitedBy",
3446                            ),
3447                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
3448                                description: None,
3449                                r#ref: ::jacquard_common::CowStr::new_static(
3450                                    "com.atproto.server.defs#inviteCode",
3451                                ),
3452                            }),
3453                        );
3454                        map.insert(
3455                            ::jacquard_common::smol_str::SmolStr::new_static("invites"),
3456                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
3457                                description: None,
3458                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
3459                                    description: None,
3460                                    r#ref: ::jacquard_common::CowStr::new_static(
3461                                        "com.atproto.server.defs#inviteCode",
3462                                    ),
3463                                }),
3464                                min_length: None,
3465                                max_length: None,
3466                            }),
3467                        );
3468                        map.insert(
3469                            ::jacquard_common::smol_str::SmolStr::new_static(
3470                                "invitesDisabled",
3471                            ),
3472                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
3473                                description: None,
3474                                default: None,
3475                                r#const: None,
3476                            }),
3477                        );
3478                        map.insert(
3479                            ::jacquard_common::smol_str::SmolStr::new_static("labels"),
3480                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
3481                                description: None,
3482                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
3483                                    description: None,
3484                                    r#ref: ::jacquard_common::CowStr::new_static(
3485                                        "com.atproto.label.defs#label",
3486                                    ),
3487                                }),
3488                                min_length: None,
3489                                max_length: None,
3490                            }),
3491                        );
3492                        map.insert(
3493                            ::jacquard_common::smol_str::SmolStr::new_static(
3494                                "moderation",
3495                            ),
3496                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
3497                                description: None,
3498                                r#ref: ::jacquard_common::CowStr::new_static(
3499                                    "#moderationDetail",
3500                                ),
3501                            }),
3502                        );
3503                        map.insert(
3504                            ::jacquard_common::smol_str::SmolStr::new_static(
3505                                "relatedRecords",
3506                            ),
3507                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
3508                                description: None,
3509                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Unknown(::jacquard_lexicon::lexicon::LexUnknown {
3510                                    description: None,
3511                                }),
3512                                min_length: None,
3513                                max_length: None,
3514                            }),
3515                        );
3516                        map.insert(
3517                            ::jacquard_common::smol_str::SmolStr::new_static(
3518                                "threatSignatures",
3519                            ),
3520                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
3521                                description: None,
3522                                items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
3523                                    description: None,
3524                                    r#ref: ::jacquard_common::CowStr::new_static(
3525                                        "com.atproto.admin.defs#threatSignature",
3526                                    ),
3527                                }),
3528                                min_length: None,
3529                                max_length: None,
3530                            }),
3531                        );
3532                        map
3533                    },
3534                }),
3535            );
3536            map.insert(
3537                ::jacquard_common::smol_str::SmolStr::new_static("repoViewNotFound"),
3538                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
3539                    description: None,
3540                    required: Some(
3541                        vec![::jacquard_common::smol_str::SmolStr::new_static("did")],
3542                    ),
3543                    nullable: None,
3544                    properties: {
3545                        #[allow(unused_mut)]
3546                        let mut map = ::std::collections::BTreeMap::new();
3547                        map.insert(
3548                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3549                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3550                                description: None,
3551                                format: Some(
3552                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
3553                                ),
3554                                default: None,
3555                                min_length: None,
3556                                max_length: None,
3557                                min_graphemes: None,
3558                                max_graphemes: None,
3559                                r#enum: None,
3560                                r#const: None,
3561                                known_values: None,
3562                            }),
3563                        );
3564                        map
3565                    },
3566                }),
3567            );
3568            map.insert(
3569                ::jacquard_common::smol_str::SmolStr::new_static("reporterStats"),
3570                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
3571                    description: None,
3572                    required: Some(
3573                        vec![
3574                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3575                            ::jacquard_common::smol_str::SmolStr::new_static("accountReportCount"),
3576                            ::jacquard_common::smol_str::SmolStr::new_static("recordReportCount"),
3577                            ::jacquard_common::smol_str::SmolStr::new_static("reportedAccountCount"),
3578                            ::jacquard_common::smol_str::SmolStr::new_static("reportedRecordCount"),
3579                            ::jacquard_common::smol_str::SmolStr::new_static("takendownAccountCount"),
3580                            ::jacquard_common::smol_str::SmolStr::new_static("takendownRecordCount"),
3581                            ::jacquard_common::smol_str::SmolStr::new_static("labeledAccountCount"),
3582                            ::jacquard_common::smol_str::SmolStr::new_static("labeledRecordCount")
3583                        ],
3584                    ),
3585                    nullable: None,
3586                    properties: {
3587                        #[allow(unused_mut)]
3588                        let mut map = ::std::collections::BTreeMap::new();
3589                        map.insert(
3590                            ::jacquard_common::smol_str::SmolStr::new_static(
3591                                "accountReportCount",
3592                            ),
3593                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3594                                description: None,
3595                                default: None,
3596                                minimum: None,
3597                                maximum: None,
3598                                r#enum: None,
3599                                r#const: None,
3600                            }),
3601                        );
3602                        map.insert(
3603                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3604                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3605                                description: None,
3606                                format: Some(
3607                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
3608                                ),
3609                                default: None,
3610                                min_length: None,
3611                                max_length: None,
3612                                min_graphemes: None,
3613                                max_graphemes: None,
3614                                r#enum: None,
3615                                r#const: None,
3616                                known_values: None,
3617                            }),
3618                        );
3619                        map.insert(
3620                            ::jacquard_common::smol_str::SmolStr::new_static(
3621                                "labeledAccountCount",
3622                            ),
3623                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3624                                description: None,
3625                                default: None,
3626                                minimum: None,
3627                                maximum: None,
3628                                r#enum: None,
3629                                r#const: None,
3630                            }),
3631                        );
3632                        map.insert(
3633                            ::jacquard_common::smol_str::SmolStr::new_static(
3634                                "labeledRecordCount",
3635                            ),
3636                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3637                                description: None,
3638                                default: None,
3639                                minimum: None,
3640                                maximum: None,
3641                                r#enum: None,
3642                                r#const: None,
3643                            }),
3644                        );
3645                        map.insert(
3646                            ::jacquard_common::smol_str::SmolStr::new_static(
3647                                "recordReportCount",
3648                            ),
3649                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3650                                description: None,
3651                                default: None,
3652                                minimum: None,
3653                                maximum: None,
3654                                r#enum: None,
3655                                r#const: None,
3656                            }),
3657                        );
3658                        map.insert(
3659                            ::jacquard_common::smol_str::SmolStr::new_static(
3660                                "reportedAccountCount",
3661                            ),
3662                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3663                                description: None,
3664                                default: None,
3665                                minimum: None,
3666                                maximum: None,
3667                                r#enum: None,
3668                                r#const: None,
3669                            }),
3670                        );
3671                        map.insert(
3672                            ::jacquard_common::smol_str::SmolStr::new_static(
3673                                "reportedRecordCount",
3674                            ),
3675                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3676                                description: None,
3677                                default: None,
3678                                minimum: None,
3679                                maximum: None,
3680                                r#enum: None,
3681                                r#const: None,
3682                            }),
3683                        );
3684                        map.insert(
3685                            ::jacquard_common::smol_str::SmolStr::new_static(
3686                                "takendownAccountCount",
3687                            ),
3688                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3689                                description: None,
3690                                default: None,
3691                                minimum: None,
3692                                maximum: None,
3693                                r#enum: None,
3694                                r#const: None,
3695                            }),
3696                        );
3697                        map.insert(
3698                            ::jacquard_common::smol_str::SmolStr::new_static(
3699                                "takendownRecordCount",
3700                            ),
3701                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
3702                                description: None,
3703                                default: None,
3704                                minimum: None,
3705                                maximum: None,
3706                                r#enum: None,
3707                                r#const: None,
3708                            }),
3709                        );
3710                        map
3711                    },
3712                }),
3713            );
3714            map.insert(
3715                ::jacquard_common::smol_str::SmolStr::new_static("reviewClosed"),
3716                ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
3717                    description: None,
3718                }),
3719            );
3720            map.insert(
3721                ::jacquard_common::smol_str::SmolStr::new_static("reviewEscalated"),
3722                ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
3723                    description: None,
3724                }),
3725            );
3726            map.insert(
3727                ::jacquard_common::smol_str::SmolStr::new_static("reviewNone"),
3728                ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
3729                    description: None,
3730                }),
3731            );
3732            map.insert(
3733                ::jacquard_common::smol_str::SmolStr::new_static("reviewOpen"),
3734                ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
3735                    description: None,
3736                }),
3737            );
3738            map.insert(
3739                ::jacquard_common::smol_str::SmolStr::new_static(
3740                    "revokeAccountCredentialsEvent",
3741                ),
3742                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
3743                    description: Some(
3744                        ::jacquard_common::CowStr::new_static(
3745                            "Account credentials revocation by moderators. Only works on DID subjects.",
3746                        ),
3747                    ),
3748                    required: Some(
3749                        vec![::jacquard_common::smol_str::SmolStr::new_static("comment")],
3750                    ),
3751                    nullable: None,
3752                    properties: {
3753                        #[allow(unused_mut)]
3754                        let mut map = ::std::collections::BTreeMap::new();
3755                        map.insert(
3756                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
3757                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3758                                description: Some(
3759                                    ::jacquard_common::CowStr::new_static(
3760                                        "Comment describing the reason for the revocation.",
3761                                    ),
3762                                ),
3763                                format: None,
3764                                default: None,
3765                                min_length: None,
3766                                max_length: None,
3767                                min_graphemes: None,
3768                                max_graphemes: None,
3769                                r#enum: None,
3770                                r#const: None,
3771                                known_values: None,
3772                            }),
3773                        );
3774                        map
3775                    },
3776                }),
3777            );
3778            map.insert(
3779                ::jacquard_common::smol_str::SmolStr::new_static(
3780                    "scheduleTakedownEvent",
3781                ),
3782                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
3783                    description: Some(
3784                        ::jacquard_common::CowStr::new_static(
3785                            "Logs a scheduled takedown action for an account.",
3786                        ),
3787                    ),
3788                    required: None,
3789                    nullable: None,
3790                    properties: {
3791                        #[allow(unused_mut)]
3792                        let mut map = ::std::collections::BTreeMap::new();
3793                        map.insert(
3794                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
3795                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3796                                description: None,
3797                                format: None,
3798                                default: None,
3799                                min_length: None,
3800                                max_length: None,
3801                                min_graphemes: None,
3802                                max_graphemes: None,
3803                                r#enum: None,
3804                                r#const: None,
3805                                known_values: None,
3806                            }),
3807                        );
3808                        map.insert(
3809                            ::jacquard_common::smol_str::SmolStr::new_static(
3810                                "executeAfter",
3811                            ),
3812                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3813                                description: None,
3814                                format: Some(
3815                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3816                                ),
3817                                default: None,
3818                                min_length: None,
3819                                max_length: None,
3820                                min_graphemes: None,
3821                                max_graphemes: None,
3822                                r#enum: None,
3823                                r#const: None,
3824                                known_values: None,
3825                            }),
3826                        );
3827                        map.insert(
3828                            ::jacquard_common::smol_str::SmolStr::new_static(
3829                                "executeAt",
3830                            ),
3831                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3832                                description: None,
3833                                format: Some(
3834                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3835                                ),
3836                                default: None,
3837                                min_length: None,
3838                                max_length: None,
3839                                min_graphemes: None,
3840                                max_graphemes: None,
3841                                r#enum: None,
3842                                r#const: None,
3843                                known_values: None,
3844                            }),
3845                        );
3846                        map.insert(
3847                            ::jacquard_common::smol_str::SmolStr::new_static(
3848                                "executeUntil",
3849                            ),
3850                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3851                                description: None,
3852                                format: Some(
3853                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3854                                ),
3855                                default: None,
3856                                min_length: None,
3857                                max_length: None,
3858                                min_graphemes: None,
3859                                max_graphemes: None,
3860                                r#enum: None,
3861                                r#const: None,
3862                                known_values: None,
3863                            }),
3864                        );
3865                        map
3866                    },
3867                }),
3868            );
3869            map.insert(
3870                ::jacquard_common::smol_str::SmolStr::new_static("scheduledActionView"),
3871                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
3872                    description: Some(
3873                        ::jacquard_common::CowStr::new_static(
3874                            "View of a scheduled moderation action",
3875                        ),
3876                    ),
3877                    required: Some(
3878                        vec![
3879                            ::jacquard_common::smol_str::SmolStr::new_static("id"),
3880                            ::jacquard_common::smol_str::SmolStr::new_static("action"),
3881                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3882                            ::jacquard_common::smol_str::SmolStr::new_static("createdBy"),
3883                            ::jacquard_common::smol_str::SmolStr::new_static("createdAt"),
3884                            ::jacquard_common::smol_str::SmolStr::new_static("status")
3885                        ],
3886                    ),
3887                    nullable: None,
3888                    properties: {
3889                        #[allow(unused_mut)]
3890                        let mut map = ::std::collections::BTreeMap::new();
3891                        map.insert(
3892                            ::jacquard_common::smol_str::SmolStr::new_static("action"),
3893                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3894                                description: Some(
3895                                    ::jacquard_common::CowStr::new_static(
3896                                        "Type of action to be executed",
3897                                    ),
3898                                ),
3899                                format: None,
3900                                default: None,
3901                                min_length: None,
3902                                max_length: None,
3903                                min_graphemes: None,
3904                                max_graphemes: None,
3905                                r#enum: None,
3906                                r#const: None,
3907                                known_values: None,
3908                            }),
3909                        );
3910                        map.insert(
3911                            ::jacquard_common::smol_str::SmolStr::new_static(
3912                                "createdAt",
3913                            ),
3914                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3915                                description: Some(
3916                                    ::jacquard_common::CowStr::new_static(
3917                                        "When the scheduled action was created",
3918                                    ),
3919                                ),
3920                                format: Some(
3921                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3922                                ),
3923                                default: None,
3924                                min_length: None,
3925                                max_length: None,
3926                                min_graphemes: None,
3927                                max_graphemes: None,
3928                                r#enum: None,
3929                                r#const: None,
3930                                known_values: None,
3931                            }),
3932                        );
3933                        map.insert(
3934                            ::jacquard_common::smol_str::SmolStr::new_static(
3935                                "createdBy",
3936                            ),
3937                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3938                                description: Some(
3939                                    ::jacquard_common::CowStr::new_static(
3940                                        "DID of the user who created this scheduled action",
3941                                    ),
3942                                ),
3943                                format: Some(
3944                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
3945                                ),
3946                                default: None,
3947                                min_length: None,
3948                                max_length: None,
3949                                min_graphemes: None,
3950                                max_graphemes: None,
3951                                r#enum: None,
3952                                r#const: None,
3953                                known_values: None,
3954                            }),
3955                        );
3956                        map.insert(
3957                            ::jacquard_common::smol_str::SmolStr::new_static("did"),
3958                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3959                                description: Some(
3960                                    ::jacquard_common::CowStr::new_static(
3961                                        "Subject DID for the action",
3962                                    ),
3963                                ),
3964                                format: Some(
3965                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
3966                                ),
3967                                default: None,
3968                                min_length: None,
3969                                max_length: None,
3970                                min_graphemes: None,
3971                                max_graphemes: None,
3972                                r#enum: None,
3973                                r#const: None,
3974                                known_values: None,
3975                            }),
3976                        );
3977                        map.insert(
3978                            ::jacquard_common::smol_str::SmolStr::new_static(
3979                                "eventData",
3980                            ),
3981                            ::jacquard_lexicon::lexicon::LexObjectProperty::Unknown(::jacquard_lexicon::lexicon::LexUnknown {
3982                                description: None,
3983                            }),
3984                        );
3985                        map.insert(
3986                            ::jacquard_common::smol_str::SmolStr::new_static(
3987                                "executeAfter",
3988                            ),
3989                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
3990                                description: Some(
3991                                    ::jacquard_common::CowStr::new_static(
3992                                        "Earliest time to execute the action (for randomized scheduling)",
3993                                    ),
3994                                ),
3995                                format: Some(
3996                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
3997                                ),
3998                                default: None,
3999                                min_length: None,
4000                                max_length: None,
4001                                min_graphemes: None,
4002                                max_graphemes: None,
4003                                r#enum: None,
4004                                r#const: None,
4005                                known_values: None,
4006                            }),
4007                        );
4008                        map.insert(
4009                            ::jacquard_common::smol_str::SmolStr::new_static(
4010                                "executeAt",
4011                            ),
4012                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4013                                description: Some(
4014                                    ::jacquard_common::CowStr::new_static(
4015                                        "Exact time to execute the action",
4016                                    ),
4017                                ),
4018                                format: Some(
4019                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4020                                ),
4021                                default: None,
4022                                min_length: None,
4023                                max_length: None,
4024                                min_graphemes: None,
4025                                max_graphemes: None,
4026                                r#enum: None,
4027                                r#const: None,
4028                                known_values: None,
4029                            }),
4030                        );
4031                        map.insert(
4032                            ::jacquard_common::smol_str::SmolStr::new_static(
4033                                "executeUntil",
4034                            ),
4035                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4036                                description: Some(
4037                                    ::jacquard_common::CowStr::new_static(
4038                                        "Latest time to execute the action (for randomized scheduling)",
4039                                    ),
4040                                ),
4041                                format: Some(
4042                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4043                                ),
4044                                default: None,
4045                                min_length: None,
4046                                max_length: None,
4047                                min_graphemes: None,
4048                                max_graphemes: None,
4049                                r#enum: None,
4050                                r#const: None,
4051                                known_values: None,
4052                            }),
4053                        );
4054                        map.insert(
4055                            ::jacquard_common::smol_str::SmolStr::new_static(
4056                                "executionEventId",
4057                            ),
4058                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
4059                                description: None,
4060                                default: None,
4061                                minimum: None,
4062                                maximum: None,
4063                                r#enum: None,
4064                                r#const: None,
4065                            }),
4066                        );
4067                        map.insert(
4068                            ::jacquard_common::smol_str::SmolStr::new_static("id"),
4069                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
4070                                description: None,
4071                                default: None,
4072                                minimum: None,
4073                                maximum: None,
4074                                r#enum: None,
4075                                r#const: None,
4076                            }),
4077                        );
4078                        map.insert(
4079                            ::jacquard_common::smol_str::SmolStr::new_static(
4080                                "lastExecutedAt",
4081                            ),
4082                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4083                                description: Some(
4084                                    ::jacquard_common::CowStr::new_static(
4085                                        "When the action was last attempted to be executed",
4086                                    ),
4087                                ),
4088                                format: Some(
4089                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4090                                ),
4091                                default: None,
4092                                min_length: None,
4093                                max_length: None,
4094                                min_graphemes: None,
4095                                max_graphemes: None,
4096                                r#enum: None,
4097                                r#const: None,
4098                                known_values: None,
4099                            }),
4100                        );
4101                        map.insert(
4102                            ::jacquard_common::smol_str::SmolStr::new_static(
4103                                "lastFailureReason",
4104                            ),
4105                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4106                                description: Some(
4107                                    ::jacquard_common::CowStr::new_static(
4108                                        "Reason for the last execution failure",
4109                                    ),
4110                                ),
4111                                format: None,
4112                                default: None,
4113                                min_length: None,
4114                                max_length: None,
4115                                min_graphemes: None,
4116                                max_graphemes: None,
4117                                r#enum: None,
4118                                r#const: None,
4119                                known_values: None,
4120                            }),
4121                        );
4122                        map.insert(
4123                            ::jacquard_common::smol_str::SmolStr::new_static(
4124                                "randomizeExecution",
4125                            ),
4126                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
4127                                description: None,
4128                                default: None,
4129                                r#const: None,
4130                            }),
4131                        );
4132                        map.insert(
4133                            ::jacquard_common::smol_str::SmolStr::new_static("status"),
4134                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4135                                description: Some(
4136                                    ::jacquard_common::CowStr::new_static(
4137                                        "Current status of the scheduled action",
4138                                    ),
4139                                ),
4140                                format: None,
4141                                default: None,
4142                                min_length: None,
4143                                max_length: None,
4144                                min_graphemes: None,
4145                                max_graphemes: None,
4146                                r#enum: None,
4147                                r#const: None,
4148                                known_values: None,
4149                            }),
4150                        );
4151                        map.insert(
4152                            ::jacquard_common::smol_str::SmolStr::new_static(
4153                                "updatedAt",
4154                            ),
4155                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4156                                description: Some(
4157                                    ::jacquard_common::CowStr::new_static(
4158                                        "When the scheduled action was last updated",
4159                                    ),
4160                                ),
4161                                format: Some(
4162                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4163                                ),
4164                                default: None,
4165                                min_length: None,
4166                                max_length: None,
4167                                min_graphemes: None,
4168                                max_graphemes: None,
4169                                r#enum: None,
4170                                r#const: None,
4171                                known_values: None,
4172                            }),
4173                        );
4174                        map
4175                    },
4176                }),
4177            );
4178            map.insert(
4179                ::jacquard_common::smol_str::SmolStr::new_static("subjectReviewState"),
4180                ::jacquard_lexicon::lexicon::LexUserType::String(::jacquard_lexicon::lexicon::LexString {
4181                    description: None,
4182                    format: None,
4183                    default: None,
4184                    min_length: None,
4185                    max_length: None,
4186                    min_graphemes: None,
4187                    max_graphemes: None,
4188                    r#enum: None,
4189                    r#const: None,
4190                    known_values: None,
4191                }),
4192            );
4193            map.insert(
4194                ::jacquard_common::smol_str::SmolStr::new_static("subjectStatusView"),
4195                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
4196                    description: None,
4197                    required: Some(
4198                        vec![
4199                            ::jacquard_common::smol_str::SmolStr::new_static("id"),
4200                            ::jacquard_common::smol_str::SmolStr::new_static("subject"),
4201                            ::jacquard_common::smol_str::SmolStr::new_static("createdAt"),
4202                            ::jacquard_common::smol_str::SmolStr::new_static("updatedAt"),
4203                            ::jacquard_common::smol_str::SmolStr::new_static("reviewState")
4204                        ],
4205                    ),
4206                    nullable: None,
4207                    properties: {
4208                        #[allow(unused_mut)]
4209                        let mut map = ::std::collections::BTreeMap::new();
4210                        map.insert(
4211                            ::jacquard_common::smol_str::SmolStr::new_static(
4212                                "accountStats",
4213                            ),
4214                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
4215                                description: None,
4216                                r#ref: ::jacquard_common::CowStr::new_static(
4217                                    "#accountStats",
4218                                ),
4219                            }),
4220                        );
4221                        map.insert(
4222                            ::jacquard_common::smol_str::SmolStr::new_static(
4223                                "accountStrike",
4224                            ),
4225                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
4226                                description: None,
4227                                r#ref: ::jacquard_common::CowStr::new_static(
4228                                    "#accountStrike",
4229                                ),
4230                            }),
4231                        );
4232                        map.insert(
4233                            ::jacquard_common::smol_str::SmolStr::new_static(
4234                                "ageAssuranceState",
4235                            ),
4236                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4237                                description: Some(
4238                                    ::jacquard_common::CowStr::new_static(
4239                                        "Current age assurance state of the subject.",
4240                                    ),
4241                                ),
4242                                format: None,
4243                                default: None,
4244                                min_length: None,
4245                                max_length: None,
4246                                min_graphemes: None,
4247                                max_graphemes: None,
4248                                r#enum: None,
4249                                r#const: None,
4250                                known_values: None,
4251                            }),
4252                        );
4253                        map.insert(
4254                            ::jacquard_common::smol_str::SmolStr::new_static(
4255                                "ageAssuranceUpdatedBy",
4256                            ),
4257                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4258                                description: Some(
4259                                    ::jacquard_common::CowStr::new_static(
4260                                        "Whether or not the last successful update to age assurance was made by the user or admin.",
4261                                    ),
4262                                ),
4263                                format: None,
4264                                default: None,
4265                                min_length: None,
4266                                max_length: None,
4267                                min_graphemes: None,
4268                                max_graphemes: None,
4269                                r#enum: None,
4270                                r#const: None,
4271                                known_values: None,
4272                            }),
4273                        );
4274                        map.insert(
4275                            ::jacquard_common::smol_str::SmolStr::new_static("appealed"),
4276                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
4277                                description: None,
4278                                default: None,
4279                                r#const: None,
4280                            }),
4281                        );
4282                        map.insert(
4283                            ::jacquard_common::smol_str::SmolStr::new_static("comment"),
4284                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4285                                description: Some(
4286                                    ::jacquard_common::CowStr::new_static(
4287                                        "Sticky comment on the subject.",
4288                                    ),
4289                                ),
4290                                format: None,
4291                                default: None,
4292                                min_length: None,
4293                                max_length: None,
4294                                min_graphemes: None,
4295                                max_graphemes: None,
4296                                r#enum: None,
4297                                r#const: None,
4298                                known_values: None,
4299                            }),
4300                        );
4301                        map.insert(
4302                            ::jacquard_common::smol_str::SmolStr::new_static(
4303                                "createdAt",
4304                            ),
4305                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4306                                description: Some(
4307                                    ::jacquard_common::CowStr::new_static(
4308                                        "Timestamp referencing the first moderation status impacting event was emitted on the subject",
4309                                    ),
4310                                ),
4311                                format: Some(
4312                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4313                                ),
4314                                default: None,
4315                                min_length: None,
4316                                max_length: None,
4317                                min_graphemes: None,
4318                                max_graphemes: None,
4319                                r#enum: None,
4320                                r#const: None,
4321                                known_values: None,
4322                            }),
4323                        );
4324                        map.insert(
4325                            ::jacquard_common::smol_str::SmolStr::new_static("hosting"),
4326                            ::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
4327                                description: None,
4328                                refs: vec![
4329                                    ::jacquard_common::CowStr::new_static("#accountHosting"),
4330                                    ::jacquard_common::CowStr::new_static("#recordHosting")
4331                                ],
4332                                closed: None,
4333                            }),
4334                        );
4335                        map.insert(
4336                            ::jacquard_common::smol_str::SmolStr::new_static("id"),
4337                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
4338                                description: None,
4339                                default: None,
4340                                minimum: None,
4341                                maximum: None,
4342                                r#enum: None,
4343                                r#const: None,
4344                            }),
4345                        );
4346                        map.insert(
4347                            ::jacquard_common::smol_str::SmolStr::new_static(
4348                                "lastAppealedAt",
4349                            ),
4350                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4351                                description: Some(
4352                                    ::jacquard_common::CowStr::new_static(
4353                                        "Timestamp referencing when the author of the subject appealed a moderation action",
4354                                    ),
4355                                ),
4356                                format: Some(
4357                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4358                                ),
4359                                default: None,
4360                                min_length: None,
4361                                max_length: None,
4362                                min_graphemes: None,
4363                                max_graphemes: None,
4364                                r#enum: None,
4365                                r#const: None,
4366                                known_values: None,
4367                            }),
4368                        );
4369                        map.insert(
4370                            ::jacquard_common::smol_str::SmolStr::new_static(
4371                                "lastReportedAt",
4372                            ),
4373                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4374                                description: None,
4375                                format: Some(
4376                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4377                                ),
4378                                default: None,
4379                                min_length: None,
4380                                max_length: None,
4381                                min_graphemes: None,
4382                                max_graphemes: None,
4383                                r#enum: None,
4384                                r#const: None,
4385                                known_values: None,
4386                            }),
4387                        );
4388                        map.insert(
4389                            ::jacquard_common::smol_str::SmolStr::new_static(
4390                                "lastReviewedAt",
4391                            ),
4392                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4393                                description: None,
4394                                format: Some(
4395                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4396                                ),
4397                                default: None,
4398                                min_length: None,
4399                                max_length: None,
4400                                min_graphemes: None,
4401                                max_graphemes: None,
4402                                r#enum: None,
4403                                r#const: None,
4404                                known_values: None,
4405                            }),
4406                        );
4407                        map.insert(
4408                            ::jacquard_common::smol_str::SmolStr::new_static(
4409                                "lastReviewedBy",
4410                            ),
4411                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4412                                description: None,
4413                                format: Some(
4414                                    ::jacquard_lexicon::lexicon::LexStringFormat::Did,
4415                                ),
4416                                default: None,
4417                                min_length: None,
4418                                max_length: None,
4419                                min_graphemes: None,
4420                                max_graphemes: None,
4421                                r#enum: None,
4422                                r#const: None,
4423                                known_values: None,
4424                            }),
4425                        );
4426                        map.insert(
4427                            ::jacquard_common::smol_str::SmolStr::new_static(
4428                                "muteReportingUntil",
4429                            ),
4430                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4431                                description: None,
4432                                format: Some(
4433                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4434                                ),
4435                                default: None,
4436                                min_length: None,
4437                                max_length: None,
4438                                min_graphemes: None,
4439                                max_graphemes: None,
4440                                r#enum: None,
4441                                r#const: None,
4442                                known_values: None,
4443                            }),
4444                        );
4445                        map.insert(
4446                            ::jacquard_common::smol_str::SmolStr::new_static(
4447                                "muteUntil",
4448                            ),
4449                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4450                                description: None,
4451                                format: Some(
4452                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4453                                ),
4454                                default: None,
4455                                min_length: None,
4456                                max_length: None,
4457                                min_graphemes: None,
4458                                max_graphemes: None,
4459                                r#enum: None,
4460                                r#const: None,
4461                                known_values: None,
4462                            }),
4463                        );
4464                        map.insert(
4465                            ::jacquard_common::smol_str::SmolStr::new_static(
4466                                "priorityScore",
4467                            ),
4468                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
4469                                description: None,
4470                                default: None,
4471                                minimum: Some(0i64),
4472                                maximum: Some(100i64),
4473                                r#enum: None,
4474                                r#const: None,
4475                            }),
4476                        );
4477                        map.insert(
4478                            ::jacquard_common::smol_str::SmolStr::new_static(
4479                                "recordsStats",
4480                            ),
4481                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
4482                                description: None,
4483                                r#ref: ::jacquard_common::CowStr::new_static(
4484                                    "#recordsStats",
4485                                ),
4486                            }),
4487                        );
4488                        map.insert(
4489                            ::jacquard_common::smol_str::SmolStr::new_static(
4490                                "reviewState",
4491                            ),
4492                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
4493                                description: None,
4494                                r#ref: ::jacquard_common::CowStr::new_static(
4495                                    "#subjectReviewState",
4496                                ),
4497                            }),
4498                        );
4499                        map.insert(
4500                            ::jacquard_common::smol_str::SmolStr::new_static("subject"),
4501                            ::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
4502                                description: None,
4503                                refs: vec![
4504                                    ::jacquard_common::CowStr::new_static("com.atproto.admin.defs#repoRef"),
4505                                    ::jacquard_common::CowStr::new_static("com.atproto.repo.strongRef"),
4506                                    ::jacquard_common::CowStr::new_static("chat.bsky.convo.defs#messageRef")
4507                                ],
4508                                closed: None,
4509                            }),
4510                        );
4511                        map.insert(
4512                            ::jacquard_common::smol_str::SmolStr::new_static(
4513                                "subjectBlobCids",
4514                            ),
4515                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
4516                                description: None,
4517                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
4518                                    description: None,
4519                                    format: Some(
4520                                        ::jacquard_lexicon::lexicon::LexStringFormat::Cid,
4521                                    ),
4522                                    default: None,
4523                                    min_length: None,
4524                                    max_length: None,
4525                                    min_graphemes: None,
4526                                    max_graphemes: None,
4527                                    r#enum: None,
4528                                    r#const: None,
4529                                    known_values: None,
4530                                }),
4531                                min_length: None,
4532                                max_length: None,
4533                            }),
4534                        );
4535                        map.insert(
4536                            ::jacquard_common::smol_str::SmolStr::new_static(
4537                                "subjectRepoHandle",
4538                            ),
4539                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4540                                description: None,
4541                                format: None,
4542                                default: None,
4543                                min_length: None,
4544                                max_length: None,
4545                                min_graphemes: None,
4546                                max_graphemes: None,
4547                                r#enum: None,
4548                                r#const: None,
4549                                known_values: None,
4550                            }),
4551                        );
4552                        map.insert(
4553                            ::jacquard_common::smol_str::SmolStr::new_static(
4554                                "suspendUntil",
4555                            ),
4556                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4557                                description: None,
4558                                format: Some(
4559                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4560                                ),
4561                                default: None,
4562                                min_length: None,
4563                                max_length: None,
4564                                min_graphemes: None,
4565                                max_graphemes: None,
4566                                r#enum: None,
4567                                r#const: None,
4568                                known_values: None,
4569                            }),
4570                        );
4571                        map.insert(
4572                            ::jacquard_common::smol_str::SmolStr::new_static("tags"),
4573                            ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
4574                                description: None,
4575                                items: ::jacquard_lexicon::lexicon::LexArrayItem::String(::jacquard_lexicon::lexicon::LexString {
4576                                    description: None,
4577                                    format: None,
4578                                    default: None,
4579                                    min_length: None,
4580                                    max_length: None,
4581                                    min_graphemes: None,
4582                                    max_graphemes: None,
4583                                    r#enum: None,
4584                                    r#const: None,
4585                                    known_values: None,
4586                                }),
4587                                min_length: None,
4588                                max_length: None,
4589                            }),
4590                        );
4591                        map.insert(
4592                            ::jacquard_common::smol_str::SmolStr::new_static(
4593                                "takendown",
4594                            ),
4595                            ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
4596                                description: None,
4597                                default: None,
4598                                r#const: None,
4599                            }),
4600                        );
4601                        map.insert(
4602                            ::jacquard_common::smol_str::SmolStr::new_static(
4603                                "updatedAt",
4604                            ),
4605                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4606                                description: Some(
4607                                    ::jacquard_common::CowStr::new_static(
4608                                        "Timestamp referencing when the last update was made to the moderation status of the subject",
4609                                    ),
4610                                ),
4611                                format: Some(
4612                                    ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
4613                                ),
4614                                default: None,
4615                                min_length: None,
4616                                max_length: None,
4617                                min_graphemes: None,
4618                                max_graphemes: None,
4619                                r#enum: None,
4620                                r#const: None,
4621                                known_values: None,
4622                            }),
4623                        );
4624                        map
4625                    },
4626                }),
4627            );
4628            map.insert(
4629                ::jacquard_common::smol_str::SmolStr::new_static("subjectView"),
4630                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
4631                    description: Some(
4632                        ::jacquard_common::CowStr::new_static(
4633                            "Detailed view of a subject. For record subjects, the author's repo and profile will be returned.",
4634                        ),
4635                    ),
4636                    required: Some(
4637                        vec![
4638                            ::jacquard_common::smol_str::SmolStr::new_static("type"),
4639                            ::jacquard_common::smol_str::SmolStr::new_static("subject")
4640                        ],
4641                    ),
4642                    nullable: None,
4643                    properties: {
4644                        #[allow(unused_mut)]
4645                        let mut map = ::std::collections::BTreeMap::new();
4646                        map.insert(
4647                            ::jacquard_common::smol_str::SmolStr::new_static("profile"),
4648                            ::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
4649                                description: None,
4650                                refs: vec![],
4651                                closed: None,
4652                            }),
4653                        );
4654                        map.insert(
4655                            ::jacquard_common::smol_str::SmolStr::new_static("record"),
4656                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
4657                                description: None,
4658                                r#ref: ::jacquard_common::CowStr::new_static(
4659                                    "#recordViewDetail",
4660                                ),
4661                            }),
4662                        );
4663                        map.insert(
4664                            ::jacquard_common::smol_str::SmolStr::new_static("repo"),
4665                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
4666                                description: None,
4667                                r#ref: ::jacquard_common::CowStr::new_static(
4668                                    "#repoViewDetail",
4669                                ),
4670                            }),
4671                        );
4672                        map.insert(
4673                            ::jacquard_common::smol_str::SmolStr::new_static("status"),
4674                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
4675                                description: None,
4676                                r#ref: ::jacquard_common::CowStr::new_static(
4677                                    "#subjectStatusView",
4678                                ),
4679                            }),
4680                        );
4681                        map.insert(
4682                            ::jacquard_common::smol_str::SmolStr::new_static("subject"),
4683                            ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
4684                                description: None,
4685                                format: None,
4686                                default: None,
4687                                min_length: None,
4688                                max_length: None,
4689                                min_graphemes: None,
4690                                max_graphemes: None,
4691                                r#enum: None,
4692                                r#const: None,
4693                                known_values: None,
4694                            }),
4695                        );
4696                        map.insert(
4697                            ::jacquard_common::smol_str::SmolStr::new_static("type"),
4698                            ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
4699                                description: None,
4700                                r#ref: ::jacquard_common::CowStr::new_static(
4701                                    "com.atproto.moderation.defs#subjectType",
4702                                ),
4703                            }),
4704                        );
4705                        map
4706                    },
4707                }),
4708            );
4709            map.insert(
4710                ::jacquard_common::smol_str::SmolStr::new_static(
4711                    "timelineEventPlcCreate",
4712                ),
4713                ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
4714                    description: None,
4715                }),
4716            );
4717            map.insert(
4718                ::jacquard_common::smol_str::SmolStr::new_static(
4719                    "timelineEventPlcOperation",
4720                ),
4721                ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
4722                    description: None,
4723                }),
4724            );
4725            map.insert(
4726                ::jacquard_common::smol_str::SmolStr::new_static(
4727                    "timelineEventPlcTombstone",
4728                ),
4729                ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
4730                    description: None,
4731                }),
4732            );
4733            map.insert(
4734                ::jacquard_common::smol_str::SmolStr::new_static("videoDetails"),
4735                ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
4736                    description: None,
4737                    required: Some(
4738                        vec![
4739                            ::jacquard_common::smol_str::SmolStr::new_static("width"),
4740                            ::jacquard_common::smol_str::SmolStr::new_static("height"),
4741                            ::jacquard_common::smol_str::SmolStr::new_static("length")
4742                        ],
4743                    ),
4744                    nullable: None,
4745                    properties: {
4746                        #[allow(unused_mut)]
4747                        let mut map = ::std::collections::BTreeMap::new();
4748                        map.insert(
4749                            ::jacquard_common::smol_str::SmolStr::new_static("height"),
4750                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
4751                                description: None,
4752                                default: None,
4753                                minimum: None,
4754                                maximum: None,
4755                                r#enum: None,
4756                                r#const: None,
4757                            }),
4758                        );
4759                        map.insert(
4760                            ::jacquard_common::smol_str::SmolStr::new_static("length"),
4761                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
4762                                description: None,
4763                                default: None,
4764                                minimum: None,
4765                                maximum: None,
4766                                r#enum: None,
4767                                r#const: None,
4768                            }),
4769                        );
4770                        map.insert(
4771                            ::jacquard_common::smol_str::SmolStr::new_static("width"),
4772                            ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
4773                                description: None,
4774                                default: None,
4775                                minimum: None,
4776                                maximum: None,
4777                                r#enum: None,
4778                                r#const: None,
4779                            }),
4780                        );
4781                        map
4782                    },
4783                }),
4784            );
4785            map
4786        },
4787    }
4788}
4789
4790impl<'a> ::jacquard_lexicon::schema::LexiconSchema for AccountEvent<'a> {
4791    fn nsid() -> &'static str {
4792        "tools.ozone.moderation.defs"
4793    }
4794    fn def_name() -> &'static str {
4795        "accountEvent"
4796    }
4797    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
4798        lexicon_doc_tools_ozone_moderation_defs()
4799    }
4800    fn validate(
4801        &self,
4802    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
4803        Ok(())
4804    }
4805}
4806
4807#[jacquard_derive::lexicon]
4808#[derive(
4809    serde::Serialize,
4810    serde::Deserialize,
4811    Debug,
4812    Clone,
4813    PartialEq,
4814    Eq,
4815    jacquard_derive::IntoStatic,
4816    Default
4817)]
4818#[serde(rename_all = "camelCase")]
4819pub struct AccountHosting<'a> {
4820    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4821    pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
4822    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4823    pub deactivated_at: std::option::Option<jacquard_common::types::string::Datetime>,
4824    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4825    pub deleted_at: std::option::Option<jacquard_common::types::string::Datetime>,
4826    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4827    pub reactivated_at: std::option::Option<jacquard_common::types::string::Datetime>,
4828    #[serde(borrow)]
4829    pub status: jacquard_common::CowStr<'a>,
4830    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4831    pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>,
4832}
4833
4834impl<'a> ::jacquard_lexicon::schema::LexiconSchema for AccountHosting<'a> {
4835    fn nsid() -> &'static str {
4836        "tools.ozone.moderation.defs"
4837    }
4838    fn def_name() -> &'static str {
4839        "accountHosting"
4840    }
4841    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
4842        lexicon_doc_tools_ozone_moderation_defs()
4843    }
4844    fn validate(
4845        &self,
4846    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
4847        Ok(())
4848    }
4849}
4850
4851/// Statistics about a particular account subject
4852#[jacquard_derive::lexicon]
4853#[derive(
4854    serde::Serialize,
4855    serde::Deserialize,
4856    Debug,
4857    Clone,
4858    PartialEq,
4859    Eq,
4860    jacquard_derive::IntoStatic,
4861    Default
4862)]
4863#[serde(rename_all = "camelCase")]
4864pub struct AccountStats<'a> {
4865    /// Total number of appeals against a moderation action on the account
4866    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4867    pub appeal_count: std::option::Option<i64>,
4868    /// Number of times the account was escalated
4869    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4870    pub escalate_count: std::option::Option<i64>,
4871    /// Total number of reports on the account
4872    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4873    pub report_count: std::option::Option<i64>,
4874    /// Number of times the account was suspended
4875    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4876    pub suspend_count: std::option::Option<i64>,
4877    /// Number of times the account was taken down
4878    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4879    pub takedown_count: std::option::Option<i64>,
4880}
4881
4882impl<'a> ::jacquard_lexicon::schema::LexiconSchema for AccountStats<'a> {
4883    fn nsid() -> &'static str {
4884        "tools.ozone.moderation.defs"
4885    }
4886    fn def_name() -> &'static str {
4887        "accountStats"
4888    }
4889    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
4890        lexicon_doc_tools_ozone_moderation_defs()
4891    }
4892    fn validate(
4893        &self,
4894    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
4895        Ok(())
4896    }
4897}
4898
4899/// Strike information for an account
4900#[jacquard_derive::lexicon]
4901#[derive(
4902    serde::Serialize,
4903    serde::Deserialize,
4904    Debug,
4905    Clone,
4906    PartialEq,
4907    Eq,
4908    jacquard_derive::IntoStatic,
4909    Default
4910)]
4911#[serde(rename_all = "camelCase")]
4912pub struct AccountStrike<'a> {
4913    /// Current number of active strikes (excluding expired strikes)
4914    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4915    pub active_strike_count: std::option::Option<i64>,
4916    /// Timestamp of the first strike received
4917    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4918    pub first_strike_at: std::option::Option<jacquard_common::types::string::Datetime>,
4919    /// Timestamp of the most recent strike received
4920    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4921    pub last_strike_at: std::option::Option<jacquard_common::types::string::Datetime>,
4922    /// Total number of strikes ever received (including expired strikes)
4923    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4924    pub total_strike_count: std::option::Option<i64>,
4925}
4926
4927impl<'a> ::jacquard_lexicon::schema::LexiconSchema for AccountStrike<'a> {
4928    fn nsid() -> &'static str {
4929        "tools.ozone.moderation.defs"
4930    }
4931    fn def_name() -> &'static str {
4932        "accountStrike"
4933    }
4934    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
4935        lexicon_doc_tools_ozone_moderation_defs()
4936    }
4937    fn validate(
4938        &self,
4939    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
4940        Ok(())
4941    }
4942}
4943
4944/// Age assurance info coming directly from users. Only works on DID subjects.
4945#[jacquard_derive::lexicon]
4946#[derive(
4947    serde::Serialize,
4948    serde::Deserialize,
4949    Debug,
4950    Clone,
4951    PartialEq,
4952    Eq,
4953    jacquard_derive::IntoStatic
4954)]
4955#[serde(rename_all = "camelCase")]
4956pub struct AgeAssuranceEvent<'a> {
4957    /// The unique identifier for this instance of the age assurance flow, in UUID format.
4958    #[serde(borrow)]
4959    pub attempt_id: jacquard_common::CowStr<'a>,
4960    /// The IP address used when completing the AA flow.
4961    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4962    #[serde(borrow)]
4963    pub complete_ip: Option<jacquard_common::CowStr<'a>>,
4964    /// The user agent used when completing the AA flow.
4965    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4966    #[serde(borrow)]
4967    pub complete_ua: Option<jacquard_common::CowStr<'a>>,
4968    /// The date and time of this write operation.
4969    pub created_at: jacquard_common::types::string::Datetime,
4970    /// The IP address used when initiating the AA flow.
4971    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4972    #[serde(borrow)]
4973    pub init_ip: Option<jacquard_common::CowStr<'a>>,
4974    /// The user agent used when initiating the AA flow.
4975    #[serde(skip_serializing_if = "std::option::Option::is_none")]
4976    #[serde(borrow)]
4977    pub init_ua: Option<jacquard_common::CowStr<'a>>,
4978    /// The status of the age assurance process.
4979    #[serde(borrow)]
4980    pub status: jacquard_common::CowStr<'a>,
4981}
4982
4983pub mod age_assurance_event_state {
4984
4985    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
4986    #[allow(unused)]
4987    use ::core::marker::PhantomData;
4988    mod sealed {
4989        pub trait Sealed {}
4990    }
4991    /// State trait tracking which required fields have been set
4992    pub trait State: sealed::Sealed {
4993        type CreatedAt;
4994        type Status;
4995        type AttemptId;
4996    }
4997    /// Empty state - all required fields are unset
4998    pub struct Empty(());
4999    impl sealed::Sealed for Empty {}
5000    impl State for Empty {
5001        type CreatedAt = Unset;
5002        type Status = Unset;
5003        type AttemptId = Unset;
5004    }
5005    ///State transition - sets the `created_at` field to Set
5006    pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
5007    impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
5008    impl<S: State> State for SetCreatedAt<S> {
5009        type CreatedAt = Set<members::created_at>;
5010        type Status = S::Status;
5011        type AttemptId = S::AttemptId;
5012    }
5013    ///State transition - sets the `status` field to Set
5014    pub struct SetStatus<S: State = Empty>(PhantomData<fn() -> S>);
5015    impl<S: State> sealed::Sealed for SetStatus<S> {}
5016    impl<S: State> State for SetStatus<S> {
5017        type CreatedAt = S::CreatedAt;
5018        type Status = Set<members::status>;
5019        type AttemptId = S::AttemptId;
5020    }
5021    ///State transition - sets the `attempt_id` field to Set
5022    pub struct SetAttemptId<S: State = Empty>(PhantomData<fn() -> S>);
5023    impl<S: State> sealed::Sealed for SetAttemptId<S> {}
5024    impl<S: State> State for SetAttemptId<S> {
5025        type CreatedAt = S::CreatedAt;
5026        type Status = S::Status;
5027        type AttemptId = Set<members::attempt_id>;
5028    }
5029    /// Marker types for field names
5030    #[allow(non_camel_case_types)]
5031    pub mod members {
5032        ///Marker type for the `created_at` field
5033        pub struct created_at(());
5034        ///Marker type for the `status` field
5035        pub struct status(());
5036        ///Marker type for the `attempt_id` field
5037        pub struct attempt_id(());
5038    }
5039}
5040
5041/// Builder for constructing an instance of this type
5042pub struct AgeAssuranceEventBuilder<'a, S: age_assurance_event_state::State> {
5043    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
5044    __unsafe_private_named: (
5045        ::core::option::Option<jacquard_common::CowStr<'a>>,
5046        ::core::option::Option<jacquard_common::CowStr<'a>>,
5047        ::core::option::Option<jacquard_common::CowStr<'a>>,
5048        ::core::option::Option<jacquard_common::types::string::Datetime>,
5049        ::core::option::Option<jacquard_common::CowStr<'a>>,
5050        ::core::option::Option<jacquard_common::CowStr<'a>>,
5051        ::core::option::Option<jacquard_common::CowStr<'a>>,
5052    ),
5053    _phantom: ::core::marker::PhantomData<&'a ()>,
5054}
5055
5056impl<'a> AgeAssuranceEvent<'a> {
5057    /// Create a new builder for this type
5058    pub fn new() -> AgeAssuranceEventBuilder<'a, age_assurance_event_state::Empty> {
5059        AgeAssuranceEventBuilder::new()
5060    }
5061}
5062
5063impl<'a> AgeAssuranceEventBuilder<'a, age_assurance_event_state::Empty> {
5064    /// Create a new builder with all fields unset
5065    pub fn new() -> Self {
5066        AgeAssuranceEventBuilder {
5067            _phantom_state: ::core::marker::PhantomData,
5068            __unsafe_private_named: (None, None, None, None, None, None, None),
5069            _phantom: ::core::marker::PhantomData,
5070        }
5071    }
5072}
5073
5074impl<'a, S> AgeAssuranceEventBuilder<'a, S>
5075where
5076    S: age_assurance_event_state::State,
5077    S::AttemptId: age_assurance_event_state::IsUnset,
5078{
5079    /// Set the `attemptId` field (required)
5080    pub fn attempt_id(
5081        mut self,
5082        value: impl Into<jacquard_common::CowStr<'a>>,
5083    ) -> AgeAssuranceEventBuilder<'a, age_assurance_event_state::SetAttemptId<S>> {
5084        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
5085        AgeAssuranceEventBuilder {
5086            _phantom_state: ::core::marker::PhantomData,
5087            __unsafe_private_named: self.__unsafe_private_named,
5088            _phantom: ::core::marker::PhantomData,
5089        }
5090    }
5091}
5092
5093impl<'a, S: age_assurance_event_state::State> AgeAssuranceEventBuilder<'a, S> {
5094    /// Set the `completeIp` field (optional)
5095    pub fn complete_ip(
5096        mut self,
5097        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
5098    ) -> Self {
5099        self.__unsafe_private_named.1 = value.into();
5100        self
5101    }
5102    /// Set the `completeIp` field to an Option value (optional)
5103    pub fn maybe_complete_ip(
5104        mut self,
5105        value: Option<jacquard_common::CowStr<'a>>,
5106    ) -> Self {
5107        self.__unsafe_private_named.1 = value;
5108        self
5109    }
5110}
5111
5112impl<'a, S: age_assurance_event_state::State> AgeAssuranceEventBuilder<'a, S> {
5113    /// Set the `completeUa` field (optional)
5114    pub fn complete_ua(
5115        mut self,
5116        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
5117    ) -> Self {
5118        self.__unsafe_private_named.2 = value.into();
5119        self
5120    }
5121    /// Set the `completeUa` field to an Option value (optional)
5122    pub fn maybe_complete_ua(
5123        mut self,
5124        value: Option<jacquard_common::CowStr<'a>>,
5125    ) -> Self {
5126        self.__unsafe_private_named.2 = value;
5127        self
5128    }
5129}
5130
5131impl<'a, S> AgeAssuranceEventBuilder<'a, S>
5132where
5133    S: age_assurance_event_state::State,
5134    S::CreatedAt: age_assurance_event_state::IsUnset,
5135{
5136    /// Set the `createdAt` field (required)
5137    pub fn created_at(
5138        mut self,
5139        value: impl Into<jacquard_common::types::string::Datetime>,
5140    ) -> AgeAssuranceEventBuilder<'a, age_assurance_event_state::SetCreatedAt<S>> {
5141        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
5142        AgeAssuranceEventBuilder {
5143            _phantom_state: ::core::marker::PhantomData,
5144            __unsafe_private_named: self.__unsafe_private_named,
5145            _phantom: ::core::marker::PhantomData,
5146        }
5147    }
5148}
5149
5150impl<'a, S: age_assurance_event_state::State> AgeAssuranceEventBuilder<'a, S> {
5151    /// Set the `initIp` field (optional)
5152    pub fn init_ip(
5153        mut self,
5154        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
5155    ) -> Self {
5156        self.__unsafe_private_named.4 = value.into();
5157        self
5158    }
5159    /// Set the `initIp` field to an Option value (optional)
5160    pub fn maybe_init_ip(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
5161        self.__unsafe_private_named.4 = value;
5162        self
5163    }
5164}
5165
5166impl<'a, S: age_assurance_event_state::State> AgeAssuranceEventBuilder<'a, S> {
5167    /// Set the `initUa` field (optional)
5168    pub fn init_ua(
5169        mut self,
5170        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
5171    ) -> Self {
5172        self.__unsafe_private_named.5 = value.into();
5173        self
5174    }
5175    /// Set the `initUa` field to an Option value (optional)
5176    pub fn maybe_init_ua(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
5177        self.__unsafe_private_named.5 = value;
5178        self
5179    }
5180}
5181
5182impl<'a, S> AgeAssuranceEventBuilder<'a, S>
5183where
5184    S: age_assurance_event_state::State,
5185    S::Status: age_assurance_event_state::IsUnset,
5186{
5187    /// Set the `status` field (required)
5188    pub fn status(
5189        mut self,
5190        value: impl Into<jacquard_common::CowStr<'a>>,
5191    ) -> AgeAssuranceEventBuilder<'a, age_assurance_event_state::SetStatus<S>> {
5192        self.__unsafe_private_named.6 = ::core::option::Option::Some(value.into());
5193        AgeAssuranceEventBuilder {
5194            _phantom_state: ::core::marker::PhantomData,
5195            __unsafe_private_named: self.__unsafe_private_named,
5196            _phantom: ::core::marker::PhantomData,
5197        }
5198    }
5199}
5200
5201impl<'a, S> AgeAssuranceEventBuilder<'a, S>
5202where
5203    S: age_assurance_event_state::State,
5204    S::CreatedAt: age_assurance_event_state::IsSet,
5205    S::Status: age_assurance_event_state::IsSet,
5206    S::AttemptId: age_assurance_event_state::IsSet,
5207{
5208    /// Build the final struct
5209    pub fn build(self) -> AgeAssuranceEvent<'a> {
5210        AgeAssuranceEvent {
5211            attempt_id: self.__unsafe_private_named.0.unwrap(),
5212            complete_ip: self.__unsafe_private_named.1,
5213            complete_ua: self.__unsafe_private_named.2,
5214            created_at: self.__unsafe_private_named.3.unwrap(),
5215            init_ip: self.__unsafe_private_named.4,
5216            init_ua: self.__unsafe_private_named.5,
5217            status: self.__unsafe_private_named.6.unwrap(),
5218            extra_data: Default::default(),
5219        }
5220    }
5221    /// Build the final struct with custom extra_data
5222    pub fn build_with_data(
5223        self,
5224        extra_data: std::collections::BTreeMap<
5225            jacquard_common::smol_str::SmolStr,
5226            jacquard_common::types::value::Data<'a>,
5227        >,
5228    ) -> AgeAssuranceEvent<'a> {
5229        AgeAssuranceEvent {
5230            attempt_id: self.__unsafe_private_named.0.unwrap(),
5231            complete_ip: self.__unsafe_private_named.1,
5232            complete_ua: self.__unsafe_private_named.2,
5233            created_at: self.__unsafe_private_named.3.unwrap(),
5234            init_ip: self.__unsafe_private_named.4,
5235            init_ua: self.__unsafe_private_named.5,
5236            status: self.__unsafe_private_named.6.unwrap(),
5237            extra_data: Some(extra_data),
5238        }
5239    }
5240}
5241
5242impl<'a> ::jacquard_lexicon::schema::LexiconSchema for AgeAssuranceEvent<'a> {
5243    fn nsid() -> &'static str {
5244        "tools.ozone.moderation.defs"
5245    }
5246    fn def_name() -> &'static str {
5247        "ageAssuranceEvent"
5248    }
5249    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
5250        lexicon_doc_tools_ozone_moderation_defs()
5251    }
5252    fn validate(
5253        &self,
5254    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
5255        Ok(())
5256    }
5257}
5258
5259/// Age assurance status override by moderators. Only works on DID subjects.
5260#[jacquard_derive::lexicon]
5261#[derive(
5262    serde::Serialize,
5263    serde::Deserialize,
5264    Debug,
5265    Clone,
5266    PartialEq,
5267    Eq,
5268    jacquard_derive::IntoStatic,
5269    Default
5270)]
5271#[serde(rename_all = "camelCase")]
5272pub struct AgeAssuranceOverrideEvent<'a> {
5273    /// Comment describing the reason for the override.
5274    #[serde(borrow)]
5275    pub comment: jacquard_common::CowStr<'a>,
5276    /// 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.
5277    #[serde(borrow)]
5278    pub status: jacquard_common::CowStr<'a>,
5279}
5280
5281impl<'a> ::jacquard_lexicon::schema::LexiconSchema for AgeAssuranceOverrideEvent<'a> {
5282    fn nsid() -> &'static str {
5283        "tools.ozone.moderation.defs"
5284    }
5285    fn def_name() -> &'static str {
5286        "ageAssuranceOverrideEvent"
5287    }
5288    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
5289        lexicon_doc_tools_ozone_moderation_defs()
5290    }
5291    fn validate(
5292        &self,
5293    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
5294        Ok(())
5295    }
5296}
5297
5298#[jacquard_derive::lexicon]
5299#[derive(
5300    serde::Serialize,
5301    serde::Deserialize,
5302    Debug,
5303    Clone,
5304    PartialEq,
5305    Eq,
5306    jacquard_derive::IntoStatic
5307)]
5308#[serde(rename_all = "camelCase")]
5309pub struct BlobView<'a> {
5310    #[serde(borrow)]
5311    pub cid: jacquard_common::types::string::Cid<'a>,
5312    pub created_at: jacquard_common::types::string::Datetime,
5313    #[serde(skip_serializing_if = "std::option::Option::is_none")]
5314    #[serde(borrow)]
5315    pub details: Option<BlobViewDetails<'a>>,
5316    #[serde(borrow)]
5317    pub mime_type: jacquard_common::CowStr<'a>,
5318    #[serde(skip_serializing_if = "std::option::Option::is_none")]
5319    #[serde(borrow)]
5320    pub moderation: Option<crate::tools_ozone::moderation::Moderation<'a>>,
5321    pub size: i64,
5322}
5323
5324pub mod blob_view_state {
5325
5326    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
5327    #[allow(unused)]
5328    use ::core::marker::PhantomData;
5329    mod sealed {
5330        pub trait Sealed {}
5331    }
5332    /// State trait tracking which required fields have been set
5333    pub trait State: sealed::Sealed {
5334        type Cid;
5335        type MimeType;
5336        type Size;
5337        type CreatedAt;
5338    }
5339    /// Empty state - all required fields are unset
5340    pub struct Empty(());
5341    impl sealed::Sealed for Empty {}
5342    impl State for Empty {
5343        type Cid = Unset;
5344        type MimeType = Unset;
5345        type Size = Unset;
5346        type CreatedAt = Unset;
5347    }
5348    ///State transition - sets the `cid` field to Set
5349    pub struct SetCid<S: State = Empty>(PhantomData<fn() -> S>);
5350    impl<S: State> sealed::Sealed for SetCid<S> {}
5351    impl<S: State> State for SetCid<S> {
5352        type Cid = Set<members::cid>;
5353        type MimeType = S::MimeType;
5354        type Size = S::Size;
5355        type CreatedAt = S::CreatedAt;
5356    }
5357    ///State transition - sets the `mime_type` field to Set
5358    pub struct SetMimeType<S: State = Empty>(PhantomData<fn() -> S>);
5359    impl<S: State> sealed::Sealed for SetMimeType<S> {}
5360    impl<S: State> State for SetMimeType<S> {
5361        type Cid = S::Cid;
5362        type MimeType = Set<members::mime_type>;
5363        type Size = S::Size;
5364        type CreatedAt = S::CreatedAt;
5365    }
5366    ///State transition - sets the `size` field to Set
5367    pub struct SetSize<S: State = Empty>(PhantomData<fn() -> S>);
5368    impl<S: State> sealed::Sealed for SetSize<S> {}
5369    impl<S: State> State for SetSize<S> {
5370        type Cid = S::Cid;
5371        type MimeType = S::MimeType;
5372        type Size = Set<members::size>;
5373        type CreatedAt = S::CreatedAt;
5374    }
5375    ///State transition - sets the `created_at` field to Set
5376    pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
5377    impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
5378    impl<S: State> State for SetCreatedAt<S> {
5379        type Cid = S::Cid;
5380        type MimeType = S::MimeType;
5381        type Size = S::Size;
5382        type CreatedAt = Set<members::created_at>;
5383    }
5384    /// Marker types for field names
5385    #[allow(non_camel_case_types)]
5386    pub mod members {
5387        ///Marker type for the `cid` field
5388        pub struct cid(());
5389        ///Marker type for the `mime_type` field
5390        pub struct mime_type(());
5391        ///Marker type for the `size` field
5392        pub struct size(());
5393        ///Marker type for the `created_at` field
5394        pub struct created_at(());
5395    }
5396}
5397
5398/// Builder for constructing an instance of this type
5399pub struct BlobViewBuilder<'a, S: blob_view_state::State> {
5400    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
5401    __unsafe_private_named: (
5402        ::core::option::Option<jacquard_common::types::string::Cid<'a>>,
5403        ::core::option::Option<jacquard_common::types::string::Datetime>,
5404        ::core::option::Option<BlobViewDetails<'a>>,
5405        ::core::option::Option<jacquard_common::CowStr<'a>>,
5406        ::core::option::Option<crate::tools_ozone::moderation::Moderation<'a>>,
5407        ::core::option::Option<i64>,
5408    ),
5409    _phantom: ::core::marker::PhantomData<&'a ()>,
5410}
5411
5412impl<'a> BlobView<'a> {
5413    /// Create a new builder for this type
5414    pub fn new() -> BlobViewBuilder<'a, blob_view_state::Empty> {
5415        BlobViewBuilder::new()
5416    }
5417}
5418
5419impl<'a> BlobViewBuilder<'a, blob_view_state::Empty> {
5420    /// Create a new builder with all fields unset
5421    pub fn new() -> Self {
5422        BlobViewBuilder {
5423            _phantom_state: ::core::marker::PhantomData,
5424            __unsafe_private_named: (None, None, None, None, None, None),
5425            _phantom: ::core::marker::PhantomData,
5426        }
5427    }
5428}
5429
5430impl<'a, S> BlobViewBuilder<'a, S>
5431where
5432    S: blob_view_state::State,
5433    S::Cid: blob_view_state::IsUnset,
5434{
5435    /// Set the `cid` field (required)
5436    pub fn cid(
5437        mut self,
5438        value: impl Into<jacquard_common::types::string::Cid<'a>>,
5439    ) -> BlobViewBuilder<'a, blob_view_state::SetCid<S>> {
5440        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
5441        BlobViewBuilder {
5442            _phantom_state: ::core::marker::PhantomData,
5443            __unsafe_private_named: self.__unsafe_private_named,
5444            _phantom: ::core::marker::PhantomData,
5445        }
5446    }
5447}
5448
5449impl<'a, S> BlobViewBuilder<'a, S>
5450where
5451    S: blob_view_state::State,
5452    S::CreatedAt: blob_view_state::IsUnset,
5453{
5454    /// Set the `createdAt` field (required)
5455    pub fn created_at(
5456        mut self,
5457        value: impl Into<jacquard_common::types::string::Datetime>,
5458    ) -> BlobViewBuilder<'a, blob_view_state::SetCreatedAt<S>> {
5459        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
5460        BlobViewBuilder {
5461            _phantom_state: ::core::marker::PhantomData,
5462            __unsafe_private_named: self.__unsafe_private_named,
5463            _phantom: ::core::marker::PhantomData,
5464        }
5465    }
5466}
5467
5468impl<'a, S: blob_view_state::State> BlobViewBuilder<'a, S> {
5469    /// Set the `details` field (optional)
5470    pub fn details(mut self, value: impl Into<Option<BlobViewDetails<'a>>>) -> Self {
5471        self.__unsafe_private_named.2 = value.into();
5472        self
5473    }
5474    /// Set the `details` field to an Option value (optional)
5475    pub fn maybe_details(mut self, value: Option<BlobViewDetails<'a>>) -> Self {
5476        self.__unsafe_private_named.2 = value;
5477        self
5478    }
5479}
5480
5481impl<'a, S> BlobViewBuilder<'a, S>
5482where
5483    S: blob_view_state::State,
5484    S::MimeType: blob_view_state::IsUnset,
5485{
5486    /// Set the `mimeType` field (required)
5487    pub fn mime_type(
5488        mut self,
5489        value: impl Into<jacquard_common::CowStr<'a>>,
5490    ) -> BlobViewBuilder<'a, blob_view_state::SetMimeType<S>> {
5491        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
5492        BlobViewBuilder {
5493            _phantom_state: ::core::marker::PhantomData,
5494            __unsafe_private_named: self.__unsafe_private_named,
5495            _phantom: ::core::marker::PhantomData,
5496        }
5497    }
5498}
5499
5500impl<'a, S: blob_view_state::State> BlobViewBuilder<'a, S> {
5501    /// Set the `moderation` field (optional)
5502    pub fn moderation(
5503        mut self,
5504        value: impl Into<Option<crate::tools_ozone::moderation::Moderation<'a>>>,
5505    ) -> Self {
5506        self.__unsafe_private_named.4 = value.into();
5507        self
5508    }
5509    /// Set the `moderation` field to an Option value (optional)
5510    pub fn maybe_moderation(
5511        mut self,
5512        value: Option<crate::tools_ozone::moderation::Moderation<'a>>,
5513    ) -> Self {
5514        self.__unsafe_private_named.4 = value;
5515        self
5516    }
5517}
5518
5519impl<'a, S> BlobViewBuilder<'a, S>
5520where
5521    S: blob_view_state::State,
5522    S::Size: blob_view_state::IsUnset,
5523{
5524    /// Set the `size` field (required)
5525    pub fn size(
5526        mut self,
5527        value: impl Into<i64>,
5528    ) -> BlobViewBuilder<'a, blob_view_state::SetSize<S>> {
5529        self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
5530        BlobViewBuilder {
5531            _phantom_state: ::core::marker::PhantomData,
5532            __unsafe_private_named: self.__unsafe_private_named,
5533            _phantom: ::core::marker::PhantomData,
5534        }
5535    }
5536}
5537
5538impl<'a, S> BlobViewBuilder<'a, S>
5539where
5540    S: blob_view_state::State,
5541    S::Cid: blob_view_state::IsSet,
5542    S::MimeType: blob_view_state::IsSet,
5543    S::Size: blob_view_state::IsSet,
5544    S::CreatedAt: blob_view_state::IsSet,
5545{
5546    /// Build the final struct
5547    pub fn build(self) -> BlobView<'a> {
5548        BlobView {
5549            cid: self.__unsafe_private_named.0.unwrap(),
5550            created_at: self.__unsafe_private_named.1.unwrap(),
5551            details: self.__unsafe_private_named.2,
5552            mime_type: self.__unsafe_private_named.3.unwrap(),
5553            moderation: self.__unsafe_private_named.4,
5554            size: self.__unsafe_private_named.5.unwrap(),
5555            extra_data: Default::default(),
5556        }
5557    }
5558    /// Build the final struct with custom extra_data
5559    pub fn build_with_data(
5560        self,
5561        extra_data: std::collections::BTreeMap<
5562            jacquard_common::smol_str::SmolStr,
5563            jacquard_common::types::value::Data<'a>,
5564        >,
5565    ) -> BlobView<'a> {
5566        BlobView {
5567            cid: self.__unsafe_private_named.0.unwrap(),
5568            created_at: self.__unsafe_private_named.1.unwrap(),
5569            details: self.__unsafe_private_named.2,
5570            mime_type: self.__unsafe_private_named.3.unwrap(),
5571            moderation: self.__unsafe_private_named.4,
5572            size: self.__unsafe_private_named.5.unwrap(),
5573            extra_data: Some(extra_data),
5574        }
5575    }
5576}
5577
5578#[jacquard_derive::open_union]
5579#[derive(
5580    serde::Serialize,
5581    serde::Deserialize,
5582    Debug,
5583    Clone,
5584    PartialEq,
5585    Eq,
5586    jacquard_derive::IntoStatic
5587)]
5588#[serde(tag = "$type")]
5589#[serde(bound(deserialize = "'de: 'a"))]
5590pub enum BlobViewDetails<'a> {
5591    #[serde(rename = "tools.ozone.moderation.defs#imageDetails")]
5592    ImageDetails(Box<crate::tools_ozone::moderation::ImageDetails<'a>>),
5593    #[serde(rename = "tools.ozone.moderation.defs#videoDetails")]
5594    VideoDetails(Box<crate::tools_ozone::moderation::VideoDetails<'a>>),
5595}
5596
5597impl<'a> ::jacquard_lexicon::schema::LexiconSchema for BlobView<'a> {
5598    fn nsid() -> &'static str {
5599        "tools.ozone.moderation.defs"
5600    }
5601    fn def_name() -> &'static str {
5602        "blobView"
5603    }
5604    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
5605        lexicon_doc_tools_ozone_moderation_defs()
5606    }
5607    fn validate(
5608        &self,
5609    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
5610        Ok(())
5611    }
5612}
5613
5614/// Logs cancellation of a scheduled takedown action for an account.
5615#[jacquard_derive::lexicon]
5616#[derive(
5617    serde::Serialize,
5618    serde::Deserialize,
5619    Debug,
5620    Clone,
5621    PartialEq,
5622    Eq,
5623    jacquard_derive::IntoStatic,
5624    Default
5625)]
5626#[serde(rename_all = "camelCase")]
5627pub struct CancelScheduledTakedownEvent<'a> {
5628    #[serde(skip_serializing_if = "std::option::Option::is_none")]
5629    #[serde(borrow)]
5630    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
5631}
5632
5633impl<'a> ::jacquard_lexicon::schema::LexiconSchema for CancelScheduledTakedownEvent<'a> {
5634    fn nsid() -> &'static str {
5635        "tools.ozone.moderation.defs"
5636    }
5637    fn def_name() -> &'static str {
5638        "cancelScheduledTakedownEvent"
5639    }
5640    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
5641        lexicon_doc_tools_ozone_moderation_defs()
5642    }
5643    fn validate(
5644        &self,
5645    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
5646        Ok(())
5647    }
5648}
5649
5650/// Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.
5651#[jacquard_derive::lexicon]
5652#[derive(
5653    serde::Serialize,
5654    serde::Deserialize,
5655    Debug,
5656    Clone,
5657    PartialEq,
5658    Eq,
5659    jacquard_derive::IntoStatic
5660)]
5661#[serde(rename_all = "camelCase")]
5662pub struct IdentityEvent<'a> {
5663    #[serde(skip_serializing_if = "std::option::Option::is_none")]
5664    #[serde(borrow)]
5665    pub comment: Option<jacquard_common::CowStr<'a>>,
5666    #[serde(skip_serializing_if = "std::option::Option::is_none")]
5667    #[serde(borrow)]
5668    pub handle: Option<jacquard_common::types::string::Handle<'a>>,
5669    #[serde(skip_serializing_if = "std::option::Option::is_none")]
5670    #[serde(borrow)]
5671    pub pds_host: Option<jacquard_common::types::string::Uri<'a>>,
5672    pub timestamp: jacquard_common::types::string::Datetime,
5673    #[serde(skip_serializing_if = "std::option::Option::is_none")]
5674    pub tombstone: Option<bool>,
5675}
5676
5677pub mod identity_event_state {
5678
5679    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
5680    #[allow(unused)]
5681    use ::core::marker::PhantomData;
5682    mod sealed {
5683        pub trait Sealed {}
5684    }
5685    /// State trait tracking which required fields have been set
5686    pub trait State: sealed::Sealed {
5687        type Timestamp;
5688    }
5689    /// Empty state - all required fields are unset
5690    pub struct Empty(());
5691    impl sealed::Sealed for Empty {}
5692    impl State for Empty {
5693        type Timestamp = Unset;
5694    }
5695    ///State transition - sets the `timestamp` field to Set
5696    pub struct SetTimestamp<S: State = Empty>(PhantomData<fn() -> S>);
5697    impl<S: State> sealed::Sealed for SetTimestamp<S> {}
5698    impl<S: State> State for SetTimestamp<S> {
5699        type Timestamp = Set<members::timestamp>;
5700    }
5701    /// Marker types for field names
5702    #[allow(non_camel_case_types)]
5703    pub mod members {
5704        ///Marker type for the `timestamp` field
5705        pub struct timestamp(());
5706    }
5707}
5708
5709/// Builder for constructing an instance of this type
5710pub struct IdentityEventBuilder<'a, S: identity_event_state::State> {
5711    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
5712    __unsafe_private_named: (
5713        ::core::option::Option<jacquard_common::CowStr<'a>>,
5714        ::core::option::Option<jacquard_common::types::string::Handle<'a>>,
5715        ::core::option::Option<jacquard_common::types::string::Uri<'a>>,
5716        ::core::option::Option<jacquard_common::types::string::Datetime>,
5717        ::core::option::Option<bool>,
5718    ),
5719    _phantom: ::core::marker::PhantomData<&'a ()>,
5720}
5721
5722impl<'a> IdentityEvent<'a> {
5723    /// Create a new builder for this type
5724    pub fn new() -> IdentityEventBuilder<'a, identity_event_state::Empty> {
5725        IdentityEventBuilder::new()
5726    }
5727}
5728
5729impl<'a> IdentityEventBuilder<'a, identity_event_state::Empty> {
5730    /// Create a new builder with all fields unset
5731    pub fn new() -> Self {
5732        IdentityEventBuilder {
5733            _phantom_state: ::core::marker::PhantomData,
5734            __unsafe_private_named: (None, None, None, None, None),
5735            _phantom: ::core::marker::PhantomData,
5736        }
5737    }
5738}
5739
5740impl<'a, S: identity_event_state::State> IdentityEventBuilder<'a, S> {
5741    /// Set the `comment` field (optional)
5742    pub fn comment(
5743        mut self,
5744        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
5745    ) -> Self {
5746        self.__unsafe_private_named.0 = value.into();
5747        self
5748    }
5749    /// Set the `comment` field to an Option value (optional)
5750    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
5751        self.__unsafe_private_named.0 = value;
5752        self
5753    }
5754}
5755
5756impl<'a, S: identity_event_state::State> IdentityEventBuilder<'a, S> {
5757    /// Set the `handle` field (optional)
5758    pub fn handle(
5759        mut self,
5760        value: impl Into<Option<jacquard_common::types::string::Handle<'a>>>,
5761    ) -> Self {
5762        self.__unsafe_private_named.1 = value.into();
5763        self
5764    }
5765    /// Set the `handle` field to an Option value (optional)
5766    pub fn maybe_handle(
5767        mut self,
5768        value: Option<jacquard_common::types::string::Handle<'a>>,
5769    ) -> Self {
5770        self.__unsafe_private_named.1 = value;
5771        self
5772    }
5773}
5774
5775impl<'a, S: identity_event_state::State> IdentityEventBuilder<'a, S> {
5776    /// Set the `pdsHost` field (optional)
5777    pub fn pds_host(
5778        mut self,
5779        value: impl Into<Option<jacquard_common::types::string::Uri<'a>>>,
5780    ) -> Self {
5781        self.__unsafe_private_named.2 = value.into();
5782        self
5783    }
5784    /// Set the `pdsHost` field to an Option value (optional)
5785    pub fn maybe_pds_host(
5786        mut self,
5787        value: Option<jacquard_common::types::string::Uri<'a>>,
5788    ) -> Self {
5789        self.__unsafe_private_named.2 = value;
5790        self
5791    }
5792}
5793
5794impl<'a, S> IdentityEventBuilder<'a, S>
5795where
5796    S: identity_event_state::State,
5797    S::Timestamp: identity_event_state::IsUnset,
5798{
5799    /// Set the `timestamp` field (required)
5800    pub fn timestamp(
5801        mut self,
5802        value: impl Into<jacquard_common::types::string::Datetime>,
5803    ) -> IdentityEventBuilder<'a, identity_event_state::SetTimestamp<S>> {
5804        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
5805        IdentityEventBuilder {
5806            _phantom_state: ::core::marker::PhantomData,
5807            __unsafe_private_named: self.__unsafe_private_named,
5808            _phantom: ::core::marker::PhantomData,
5809        }
5810    }
5811}
5812
5813impl<'a, S: identity_event_state::State> IdentityEventBuilder<'a, S> {
5814    /// Set the `tombstone` field (optional)
5815    pub fn tombstone(mut self, value: impl Into<Option<bool>>) -> Self {
5816        self.__unsafe_private_named.4 = value.into();
5817        self
5818    }
5819    /// Set the `tombstone` field to an Option value (optional)
5820    pub fn maybe_tombstone(mut self, value: Option<bool>) -> Self {
5821        self.__unsafe_private_named.4 = value;
5822        self
5823    }
5824}
5825
5826impl<'a, S> IdentityEventBuilder<'a, S>
5827where
5828    S: identity_event_state::State,
5829    S::Timestamp: identity_event_state::IsSet,
5830{
5831    /// Build the final struct
5832    pub fn build(self) -> IdentityEvent<'a> {
5833        IdentityEvent {
5834            comment: self.__unsafe_private_named.0,
5835            handle: self.__unsafe_private_named.1,
5836            pds_host: self.__unsafe_private_named.2,
5837            timestamp: self.__unsafe_private_named.3.unwrap(),
5838            tombstone: self.__unsafe_private_named.4,
5839            extra_data: Default::default(),
5840        }
5841    }
5842    /// Build the final struct with custom extra_data
5843    pub fn build_with_data(
5844        self,
5845        extra_data: std::collections::BTreeMap<
5846            jacquard_common::smol_str::SmolStr,
5847            jacquard_common::types::value::Data<'a>,
5848        >,
5849    ) -> IdentityEvent<'a> {
5850        IdentityEvent {
5851            comment: self.__unsafe_private_named.0,
5852            handle: self.__unsafe_private_named.1,
5853            pds_host: self.__unsafe_private_named.2,
5854            timestamp: self.__unsafe_private_named.3.unwrap(),
5855            tombstone: self.__unsafe_private_named.4,
5856            extra_data: Some(extra_data),
5857        }
5858    }
5859}
5860
5861impl<'a> ::jacquard_lexicon::schema::LexiconSchema for IdentityEvent<'a> {
5862    fn nsid() -> &'static str {
5863        "tools.ozone.moderation.defs"
5864    }
5865    fn def_name() -> &'static str {
5866        "identityEvent"
5867    }
5868    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
5869        lexicon_doc_tools_ozone_moderation_defs()
5870    }
5871    fn validate(
5872        &self,
5873    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
5874        Ok(())
5875    }
5876}
5877
5878#[jacquard_derive::lexicon]
5879#[derive(
5880    serde::Serialize,
5881    serde::Deserialize,
5882    Debug,
5883    Clone,
5884    PartialEq,
5885    Eq,
5886    jacquard_derive::IntoStatic
5887)]
5888#[serde(rename_all = "camelCase")]
5889pub struct ImageDetails<'a> {
5890    pub height: i64,
5891    pub width: i64,
5892}
5893
5894pub mod image_details_state {
5895
5896    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
5897    #[allow(unused)]
5898    use ::core::marker::PhantomData;
5899    mod sealed {
5900        pub trait Sealed {}
5901    }
5902    /// State trait tracking which required fields have been set
5903    pub trait State: sealed::Sealed {
5904        type Width;
5905        type Height;
5906    }
5907    /// Empty state - all required fields are unset
5908    pub struct Empty(());
5909    impl sealed::Sealed for Empty {}
5910    impl State for Empty {
5911        type Width = Unset;
5912        type Height = Unset;
5913    }
5914    ///State transition - sets the `width` field to Set
5915    pub struct SetWidth<S: State = Empty>(PhantomData<fn() -> S>);
5916    impl<S: State> sealed::Sealed for SetWidth<S> {}
5917    impl<S: State> State for SetWidth<S> {
5918        type Width = Set<members::width>;
5919        type Height = S::Height;
5920    }
5921    ///State transition - sets the `height` field to Set
5922    pub struct SetHeight<S: State = Empty>(PhantomData<fn() -> S>);
5923    impl<S: State> sealed::Sealed for SetHeight<S> {}
5924    impl<S: State> State for SetHeight<S> {
5925        type Width = S::Width;
5926        type Height = Set<members::height>;
5927    }
5928    /// Marker types for field names
5929    #[allow(non_camel_case_types)]
5930    pub mod members {
5931        ///Marker type for the `width` field
5932        pub struct width(());
5933        ///Marker type for the `height` field
5934        pub struct height(());
5935    }
5936}
5937
5938/// Builder for constructing an instance of this type
5939pub struct ImageDetailsBuilder<'a, S: image_details_state::State> {
5940    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
5941    __unsafe_private_named: (::core::option::Option<i64>, ::core::option::Option<i64>),
5942    _phantom: ::core::marker::PhantomData<&'a ()>,
5943}
5944
5945impl<'a> ImageDetails<'a> {
5946    /// Create a new builder for this type
5947    pub fn new() -> ImageDetailsBuilder<'a, image_details_state::Empty> {
5948        ImageDetailsBuilder::new()
5949    }
5950}
5951
5952impl<'a> ImageDetailsBuilder<'a, image_details_state::Empty> {
5953    /// Create a new builder with all fields unset
5954    pub fn new() -> Self {
5955        ImageDetailsBuilder {
5956            _phantom_state: ::core::marker::PhantomData,
5957            __unsafe_private_named: (None, None),
5958            _phantom: ::core::marker::PhantomData,
5959        }
5960    }
5961}
5962
5963impl<'a, S> ImageDetailsBuilder<'a, S>
5964where
5965    S: image_details_state::State,
5966    S::Height: image_details_state::IsUnset,
5967{
5968    /// Set the `height` field (required)
5969    pub fn height(
5970        mut self,
5971        value: impl Into<i64>,
5972    ) -> ImageDetailsBuilder<'a, image_details_state::SetHeight<S>> {
5973        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
5974        ImageDetailsBuilder {
5975            _phantom_state: ::core::marker::PhantomData,
5976            __unsafe_private_named: self.__unsafe_private_named,
5977            _phantom: ::core::marker::PhantomData,
5978        }
5979    }
5980}
5981
5982impl<'a, S> ImageDetailsBuilder<'a, S>
5983where
5984    S: image_details_state::State,
5985    S::Width: image_details_state::IsUnset,
5986{
5987    /// Set the `width` field (required)
5988    pub fn width(
5989        mut self,
5990        value: impl Into<i64>,
5991    ) -> ImageDetailsBuilder<'a, image_details_state::SetWidth<S>> {
5992        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
5993        ImageDetailsBuilder {
5994            _phantom_state: ::core::marker::PhantomData,
5995            __unsafe_private_named: self.__unsafe_private_named,
5996            _phantom: ::core::marker::PhantomData,
5997        }
5998    }
5999}
6000
6001impl<'a, S> ImageDetailsBuilder<'a, S>
6002where
6003    S: image_details_state::State,
6004    S::Width: image_details_state::IsSet,
6005    S::Height: image_details_state::IsSet,
6006{
6007    /// Build the final struct
6008    pub fn build(self) -> ImageDetails<'a> {
6009        ImageDetails {
6010            height: self.__unsafe_private_named.0.unwrap(),
6011            width: self.__unsafe_private_named.1.unwrap(),
6012            extra_data: Default::default(),
6013        }
6014    }
6015    /// Build the final struct with custom extra_data
6016    pub fn build_with_data(
6017        self,
6018        extra_data: std::collections::BTreeMap<
6019            jacquard_common::smol_str::SmolStr,
6020            jacquard_common::types::value::Data<'a>,
6021        >,
6022    ) -> ImageDetails<'a> {
6023        ImageDetails {
6024            height: self.__unsafe_private_named.0.unwrap(),
6025            width: self.__unsafe_private_named.1.unwrap(),
6026            extra_data: Some(extra_data),
6027        }
6028    }
6029}
6030
6031impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ImageDetails<'a> {
6032    fn nsid() -> &'static str {
6033        "tools.ozone.moderation.defs"
6034    }
6035    fn def_name() -> &'static str {
6036        "imageDetails"
6037    }
6038    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6039        lexicon_doc_tools_ozone_moderation_defs()
6040    }
6041    fn validate(
6042        &self,
6043    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6044        Ok(())
6045    }
6046}
6047
6048#[jacquard_derive::lexicon]
6049#[derive(
6050    serde::Serialize,
6051    serde::Deserialize,
6052    Debug,
6053    Clone,
6054    PartialEq,
6055    Eq,
6056    jacquard_derive::IntoStatic,
6057    Default
6058)]
6059#[serde(rename_all = "camelCase")]
6060pub struct ModEventAcknowledge<'a> {
6061    /// If true, all other reports on content authored by this account will be resolved (acknowledged).
6062    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6063    pub acknowledge_account_subjects: std::option::Option<bool>,
6064    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6065    #[serde(borrow)]
6066    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
6067}
6068
6069impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventAcknowledge<'a> {
6070    fn nsid() -> &'static str {
6071        "tools.ozone.moderation.defs"
6072    }
6073    fn def_name() -> &'static str {
6074        "modEventAcknowledge"
6075    }
6076    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6077        lexicon_doc_tools_ozone_moderation_defs()
6078    }
6079    fn validate(
6080        &self,
6081    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6082        Ok(())
6083    }
6084}
6085
6086/// Add a comment to a subject. An empty comment will clear any previously set sticky comment.
6087#[jacquard_derive::lexicon]
6088#[derive(
6089    serde::Serialize,
6090    serde::Deserialize,
6091    Debug,
6092    Clone,
6093    PartialEq,
6094    Eq,
6095    jacquard_derive::IntoStatic,
6096    Default
6097)]
6098#[serde(rename_all = "camelCase")]
6099pub struct ModEventComment<'a> {
6100    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6101    #[serde(borrow)]
6102    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
6103    /// Make the comment persistent on the subject
6104    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6105    pub sticky: std::option::Option<bool>,
6106}
6107
6108impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventComment<'a> {
6109    fn nsid() -> &'static str {
6110        "tools.ozone.moderation.defs"
6111    }
6112    fn def_name() -> &'static str {
6113        "modEventComment"
6114    }
6115    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6116        lexicon_doc_tools_ozone_moderation_defs()
6117    }
6118    fn validate(
6119        &self,
6120    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6121        Ok(())
6122    }
6123}
6124
6125/// Divert a record's blobs to a 3rd party service for further scanning/tagging
6126#[jacquard_derive::lexicon]
6127#[derive(
6128    serde::Serialize,
6129    serde::Deserialize,
6130    Debug,
6131    Clone,
6132    PartialEq,
6133    Eq,
6134    jacquard_derive::IntoStatic,
6135    Default
6136)]
6137#[serde(rename_all = "camelCase")]
6138pub struct ModEventDivert<'a> {
6139    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6140    #[serde(borrow)]
6141    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
6142}
6143
6144impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventDivert<'a> {
6145    fn nsid() -> &'static str {
6146        "tools.ozone.moderation.defs"
6147    }
6148    fn def_name() -> &'static str {
6149        "modEventDivert"
6150    }
6151    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6152        lexicon_doc_tools_ozone_moderation_defs()
6153    }
6154    fn validate(
6155        &self,
6156    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6157        Ok(())
6158    }
6159}
6160
6161/// Keep a log of outgoing email to a user
6162#[jacquard_derive::lexicon]
6163#[derive(
6164    serde::Serialize,
6165    serde::Deserialize,
6166    Debug,
6167    Clone,
6168    PartialEq,
6169    Eq,
6170    jacquard_derive::IntoStatic,
6171    Default
6172)]
6173#[serde(rename_all = "camelCase")]
6174pub struct ModEventEmail<'a> {
6175    /// Additional comment about the outgoing comm.
6176    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6177    #[serde(borrow)]
6178    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
6179    /// The content of the email sent to the user.
6180    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6181    #[serde(borrow)]
6182    pub content: std::option::Option<jacquard_common::CowStr<'a>>,
6183    /// Names/Keywords of the policies that necessitated the email.
6184    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6185    #[serde(borrow)]
6186    pub policies: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
6187    /// Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense
6188    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6189    #[serde(borrow)]
6190    pub severity_level: std::option::Option<jacquard_common::CowStr<'a>>,
6191    /// Number of strikes to assign to the user for this violation. Normally 0 as an indicator of a warning and only added as a strike on a repeat offense.
6192    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6193    pub strike_count: std::option::Option<i64>,
6194    /// When the strike should expire. If not provided, the strike never expires.
6195    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6196    pub strike_expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
6197    /// The subject line of the email sent to the user.
6198    #[serde(borrow)]
6199    pub subject_line: jacquard_common::CowStr<'a>,
6200}
6201
6202impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventEmail<'a> {
6203    fn nsid() -> &'static str {
6204        "tools.ozone.moderation.defs"
6205    }
6206    fn def_name() -> &'static str {
6207        "modEventEmail"
6208    }
6209    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6210        lexicon_doc_tools_ozone_moderation_defs()
6211    }
6212    fn validate(
6213        &self,
6214    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6215        if let Some(ref value) = self.policies {
6216            #[allow(unused_comparisons)]
6217            if value.len() > 5usize {
6218                return Err(::jacquard_lexicon::validation::ConstraintError::MaxLength {
6219                    path: ::jacquard_lexicon::validation::ValidationPath::from_field(
6220                        "policies",
6221                    ),
6222                    max: 5usize,
6223                    actual: value.len(),
6224                });
6225            }
6226        }
6227        Ok(())
6228    }
6229}
6230
6231#[jacquard_derive::lexicon]
6232#[derive(
6233    serde::Serialize,
6234    serde::Deserialize,
6235    Debug,
6236    Clone,
6237    PartialEq,
6238    Eq,
6239    jacquard_derive::IntoStatic,
6240    Default
6241)]
6242#[serde(rename_all = "camelCase")]
6243pub struct ModEventEscalate<'a> {
6244    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6245    #[serde(borrow)]
6246    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
6247}
6248
6249impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventEscalate<'a> {
6250    fn nsid() -> &'static str {
6251        "tools.ozone.moderation.defs"
6252    }
6253    fn def_name() -> &'static str {
6254        "modEventEscalate"
6255    }
6256    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6257        lexicon_doc_tools_ozone_moderation_defs()
6258    }
6259    fn validate(
6260        &self,
6261    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6262        Ok(())
6263    }
6264}
6265
6266/// Apply/Negate labels on a subject
6267#[jacquard_derive::lexicon]
6268#[derive(
6269    serde::Serialize,
6270    serde::Deserialize,
6271    Debug,
6272    Clone,
6273    PartialEq,
6274    Eq,
6275    jacquard_derive::IntoStatic
6276)]
6277#[serde(rename_all = "camelCase")]
6278pub struct ModEventLabel<'a> {
6279    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6280    #[serde(borrow)]
6281    pub comment: Option<jacquard_common::CowStr<'a>>,
6282    #[serde(borrow)]
6283    pub create_label_vals: Vec<jacquard_common::CowStr<'a>>,
6284    /// Indicates how long the label will remain on the subject. Only applies on labels that are being added.
6285    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6286    pub duration_in_hours: Option<i64>,
6287    #[serde(borrow)]
6288    pub negate_label_vals: Vec<jacquard_common::CowStr<'a>>,
6289}
6290
6291pub mod mod_event_label_state {
6292
6293    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
6294    #[allow(unused)]
6295    use ::core::marker::PhantomData;
6296    mod sealed {
6297        pub trait Sealed {}
6298    }
6299    /// State trait tracking which required fields have been set
6300    pub trait State: sealed::Sealed {
6301        type CreateLabelVals;
6302        type NegateLabelVals;
6303    }
6304    /// Empty state - all required fields are unset
6305    pub struct Empty(());
6306    impl sealed::Sealed for Empty {}
6307    impl State for Empty {
6308        type CreateLabelVals = Unset;
6309        type NegateLabelVals = Unset;
6310    }
6311    ///State transition - sets the `create_label_vals` field to Set
6312    pub struct SetCreateLabelVals<S: State = Empty>(PhantomData<fn() -> S>);
6313    impl<S: State> sealed::Sealed for SetCreateLabelVals<S> {}
6314    impl<S: State> State for SetCreateLabelVals<S> {
6315        type CreateLabelVals = Set<members::create_label_vals>;
6316        type NegateLabelVals = S::NegateLabelVals;
6317    }
6318    ///State transition - sets the `negate_label_vals` field to Set
6319    pub struct SetNegateLabelVals<S: State = Empty>(PhantomData<fn() -> S>);
6320    impl<S: State> sealed::Sealed for SetNegateLabelVals<S> {}
6321    impl<S: State> State for SetNegateLabelVals<S> {
6322        type CreateLabelVals = S::CreateLabelVals;
6323        type NegateLabelVals = Set<members::negate_label_vals>;
6324    }
6325    /// Marker types for field names
6326    #[allow(non_camel_case_types)]
6327    pub mod members {
6328        ///Marker type for the `create_label_vals` field
6329        pub struct create_label_vals(());
6330        ///Marker type for the `negate_label_vals` field
6331        pub struct negate_label_vals(());
6332    }
6333}
6334
6335/// Builder for constructing an instance of this type
6336pub struct ModEventLabelBuilder<'a, S: mod_event_label_state::State> {
6337    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
6338    __unsafe_private_named: (
6339        ::core::option::Option<jacquard_common::CowStr<'a>>,
6340        ::core::option::Option<Vec<jacquard_common::CowStr<'a>>>,
6341        ::core::option::Option<i64>,
6342        ::core::option::Option<Vec<jacquard_common::CowStr<'a>>>,
6343    ),
6344    _phantom: ::core::marker::PhantomData<&'a ()>,
6345}
6346
6347impl<'a> ModEventLabel<'a> {
6348    /// Create a new builder for this type
6349    pub fn new() -> ModEventLabelBuilder<'a, mod_event_label_state::Empty> {
6350        ModEventLabelBuilder::new()
6351    }
6352}
6353
6354impl<'a> ModEventLabelBuilder<'a, mod_event_label_state::Empty> {
6355    /// Create a new builder with all fields unset
6356    pub fn new() -> Self {
6357        ModEventLabelBuilder {
6358            _phantom_state: ::core::marker::PhantomData,
6359            __unsafe_private_named: (None, None, None, None),
6360            _phantom: ::core::marker::PhantomData,
6361        }
6362    }
6363}
6364
6365impl<'a, S: mod_event_label_state::State> ModEventLabelBuilder<'a, S> {
6366    /// Set the `comment` field (optional)
6367    pub fn comment(
6368        mut self,
6369        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
6370    ) -> Self {
6371        self.__unsafe_private_named.0 = value.into();
6372        self
6373    }
6374    /// Set the `comment` field to an Option value (optional)
6375    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
6376        self.__unsafe_private_named.0 = value;
6377        self
6378    }
6379}
6380
6381impl<'a, S> ModEventLabelBuilder<'a, S>
6382where
6383    S: mod_event_label_state::State,
6384    S::CreateLabelVals: mod_event_label_state::IsUnset,
6385{
6386    /// Set the `createLabelVals` field (required)
6387    pub fn create_label_vals(
6388        mut self,
6389        value: impl Into<Vec<jacquard_common::CowStr<'a>>>,
6390    ) -> ModEventLabelBuilder<'a, mod_event_label_state::SetCreateLabelVals<S>> {
6391        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
6392        ModEventLabelBuilder {
6393            _phantom_state: ::core::marker::PhantomData,
6394            __unsafe_private_named: self.__unsafe_private_named,
6395            _phantom: ::core::marker::PhantomData,
6396        }
6397    }
6398}
6399
6400impl<'a, S: mod_event_label_state::State> ModEventLabelBuilder<'a, S> {
6401    /// Set the `durationInHours` field (optional)
6402    pub fn duration_in_hours(mut self, value: impl Into<Option<i64>>) -> Self {
6403        self.__unsafe_private_named.2 = value.into();
6404        self
6405    }
6406    /// Set the `durationInHours` field to an Option value (optional)
6407    pub fn maybe_duration_in_hours(mut self, value: Option<i64>) -> Self {
6408        self.__unsafe_private_named.2 = value;
6409        self
6410    }
6411}
6412
6413impl<'a, S> ModEventLabelBuilder<'a, S>
6414where
6415    S: mod_event_label_state::State,
6416    S::NegateLabelVals: mod_event_label_state::IsUnset,
6417{
6418    /// Set the `negateLabelVals` field (required)
6419    pub fn negate_label_vals(
6420        mut self,
6421        value: impl Into<Vec<jacquard_common::CowStr<'a>>>,
6422    ) -> ModEventLabelBuilder<'a, mod_event_label_state::SetNegateLabelVals<S>> {
6423        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
6424        ModEventLabelBuilder {
6425            _phantom_state: ::core::marker::PhantomData,
6426            __unsafe_private_named: self.__unsafe_private_named,
6427            _phantom: ::core::marker::PhantomData,
6428        }
6429    }
6430}
6431
6432impl<'a, S> ModEventLabelBuilder<'a, S>
6433where
6434    S: mod_event_label_state::State,
6435    S::CreateLabelVals: mod_event_label_state::IsSet,
6436    S::NegateLabelVals: mod_event_label_state::IsSet,
6437{
6438    /// Build the final struct
6439    pub fn build(self) -> ModEventLabel<'a> {
6440        ModEventLabel {
6441            comment: self.__unsafe_private_named.0,
6442            create_label_vals: self.__unsafe_private_named.1.unwrap(),
6443            duration_in_hours: self.__unsafe_private_named.2,
6444            negate_label_vals: self.__unsafe_private_named.3.unwrap(),
6445            extra_data: Default::default(),
6446        }
6447    }
6448    /// Build the final struct with custom extra_data
6449    pub fn build_with_data(
6450        self,
6451        extra_data: std::collections::BTreeMap<
6452            jacquard_common::smol_str::SmolStr,
6453            jacquard_common::types::value::Data<'a>,
6454        >,
6455    ) -> ModEventLabel<'a> {
6456        ModEventLabel {
6457            comment: self.__unsafe_private_named.0,
6458            create_label_vals: self.__unsafe_private_named.1.unwrap(),
6459            duration_in_hours: self.__unsafe_private_named.2,
6460            negate_label_vals: self.__unsafe_private_named.3.unwrap(),
6461            extra_data: Some(extra_data),
6462        }
6463    }
6464}
6465
6466impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventLabel<'a> {
6467    fn nsid() -> &'static str {
6468        "tools.ozone.moderation.defs"
6469    }
6470    fn def_name() -> &'static str {
6471        "modEventLabel"
6472    }
6473    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6474        lexicon_doc_tools_ozone_moderation_defs()
6475    }
6476    fn validate(
6477        &self,
6478    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6479        Ok(())
6480    }
6481}
6482
6483/// Mute incoming reports on a subject
6484#[jacquard_derive::lexicon]
6485#[derive(
6486    serde::Serialize,
6487    serde::Deserialize,
6488    Debug,
6489    Clone,
6490    PartialEq,
6491    Eq,
6492    jacquard_derive::IntoStatic
6493)]
6494#[serde(rename_all = "camelCase")]
6495pub struct ModEventMute<'a> {
6496    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6497    #[serde(borrow)]
6498    pub comment: Option<jacquard_common::CowStr<'a>>,
6499    /// Indicates how long the subject should remain muted.
6500    pub duration_in_hours: i64,
6501}
6502
6503pub mod mod_event_mute_state {
6504
6505    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
6506    #[allow(unused)]
6507    use ::core::marker::PhantomData;
6508    mod sealed {
6509        pub trait Sealed {}
6510    }
6511    /// State trait tracking which required fields have been set
6512    pub trait State: sealed::Sealed {
6513        type DurationInHours;
6514    }
6515    /// Empty state - all required fields are unset
6516    pub struct Empty(());
6517    impl sealed::Sealed for Empty {}
6518    impl State for Empty {
6519        type DurationInHours = Unset;
6520    }
6521    ///State transition - sets the `duration_in_hours` field to Set
6522    pub struct SetDurationInHours<S: State = Empty>(PhantomData<fn() -> S>);
6523    impl<S: State> sealed::Sealed for SetDurationInHours<S> {}
6524    impl<S: State> State for SetDurationInHours<S> {
6525        type DurationInHours = Set<members::duration_in_hours>;
6526    }
6527    /// Marker types for field names
6528    #[allow(non_camel_case_types)]
6529    pub mod members {
6530        ///Marker type for the `duration_in_hours` field
6531        pub struct duration_in_hours(());
6532    }
6533}
6534
6535/// Builder for constructing an instance of this type
6536pub struct ModEventMuteBuilder<'a, S: mod_event_mute_state::State> {
6537    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
6538    __unsafe_private_named: (
6539        ::core::option::Option<jacquard_common::CowStr<'a>>,
6540        ::core::option::Option<i64>,
6541    ),
6542    _phantom: ::core::marker::PhantomData<&'a ()>,
6543}
6544
6545impl<'a> ModEventMute<'a> {
6546    /// Create a new builder for this type
6547    pub fn new() -> ModEventMuteBuilder<'a, mod_event_mute_state::Empty> {
6548        ModEventMuteBuilder::new()
6549    }
6550}
6551
6552impl<'a> ModEventMuteBuilder<'a, mod_event_mute_state::Empty> {
6553    /// Create a new builder with all fields unset
6554    pub fn new() -> Self {
6555        ModEventMuteBuilder {
6556            _phantom_state: ::core::marker::PhantomData,
6557            __unsafe_private_named: (None, None),
6558            _phantom: ::core::marker::PhantomData,
6559        }
6560    }
6561}
6562
6563impl<'a, S: mod_event_mute_state::State> ModEventMuteBuilder<'a, S> {
6564    /// Set the `comment` field (optional)
6565    pub fn comment(
6566        mut self,
6567        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
6568    ) -> Self {
6569        self.__unsafe_private_named.0 = value.into();
6570        self
6571    }
6572    /// Set the `comment` field to an Option value (optional)
6573    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
6574        self.__unsafe_private_named.0 = value;
6575        self
6576    }
6577}
6578
6579impl<'a, S> ModEventMuteBuilder<'a, S>
6580where
6581    S: mod_event_mute_state::State,
6582    S::DurationInHours: mod_event_mute_state::IsUnset,
6583{
6584    /// Set the `durationInHours` field (required)
6585    pub fn duration_in_hours(
6586        mut self,
6587        value: impl Into<i64>,
6588    ) -> ModEventMuteBuilder<'a, mod_event_mute_state::SetDurationInHours<S>> {
6589        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
6590        ModEventMuteBuilder {
6591            _phantom_state: ::core::marker::PhantomData,
6592            __unsafe_private_named: self.__unsafe_private_named,
6593            _phantom: ::core::marker::PhantomData,
6594        }
6595    }
6596}
6597
6598impl<'a, S> ModEventMuteBuilder<'a, S>
6599where
6600    S: mod_event_mute_state::State,
6601    S::DurationInHours: mod_event_mute_state::IsSet,
6602{
6603    /// Build the final struct
6604    pub fn build(self) -> ModEventMute<'a> {
6605        ModEventMute {
6606            comment: self.__unsafe_private_named.0,
6607            duration_in_hours: self.__unsafe_private_named.1.unwrap(),
6608            extra_data: Default::default(),
6609        }
6610    }
6611    /// Build the final struct with custom extra_data
6612    pub fn build_with_data(
6613        self,
6614        extra_data: std::collections::BTreeMap<
6615            jacquard_common::smol_str::SmolStr,
6616            jacquard_common::types::value::Data<'a>,
6617        >,
6618    ) -> ModEventMute<'a> {
6619        ModEventMute {
6620            comment: self.__unsafe_private_named.0,
6621            duration_in_hours: self.__unsafe_private_named.1.unwrap(),
6622            extra_data: Some(extra_data),
6623        }
6624    }
6625}
6626
6627impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventMute<'a> {
6628    fn nsid() -> &'static str {
6629        "tools.ozone.moderation.defs"
6630    }
6631    fn def_name() -> &'static str {
6632        "modEventMute"
6633    }
6634    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6635        lexicon_doc_tools_ozone_moderation_defs()
6636    }
6637    fn validate(
6638        &self,
6639    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6640        Ok(())
6641    }
6642}
6643
6644/// Mute incoming reports from an account
6645#[jacquard_derive::lexicon]
6646#[derive(
6647    serde::Serialize,
6648    serde::Deserialize,
6649    Debug,
6650    Clone,
6651    PartialEq,
6652    Eq,
6653    jacquard_derive::IntoStatic,
6654    Default
6655)]
6656#[serde(rename_all = "camelCase")]
6657pub struct ModEventMuteReporter<'a> {
6658    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6659    #[serde(borrow)]
6660    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
6661    /// Indicates how long the account should remain muted. Falsy value here means a permanent mute.
6662    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6663    pub duration_in_hours: std::option::Option<i64>,
6664}
6665
6666impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventMuteReporter<'a> {
6667    fn nsid() -> &'static str {
6668        "tools.ozone.moderation.defs"
6669    }
6670    fn def_name() -> &'static str {
6671        "modEventMuteReporter"
6672    }
6673    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6674        lexicon_doc_tools_ozone_moderation_defs()
6675    }
6676    fn validate(
6677        &self,
6678    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6679        Ok(())
6680    }
6681}
6682
6683/// Set priority score of the subject. Higher score means higher priority.
6684#[jacquard_derive::lexicon]
6685#[derive(
6686    serde::Serialize,
6687    serde::Deserialize,
6688    Debug,
6689    Clone,
6690    PartialEq,
6691    Eq,
6692    jacquard_derive::IntoStatic
6693)]
6694#[serde(rename_all = "camelCase")]
6695pub struct ModEventPriorityScore<'a> {
6696    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6697    #[serde(borrow)]
6698    pub comment: Option<jacquard_common::CowStr<'a>>,
6699    pub score: i64,
6700}
6701
6702pub mod mod_event_priority_score_state {
6703
6704    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
6705    #[allow(unused)]
6706    use ::core::marker::PhantomData;
6707    mod sealed {
6708        pub trait Sealed {}
6709    }
6710    /// State trait tracking which required fields have been set
6711    pub trait State: sealed::Sealed {
6712        type Score;
6713    }
6714    /// Empty state - all required fields are unset
6715    pub struct Empty(());
6716    impl sealed::Sealed for Empty {}
6717    impl State for Empty {
6718        type Score = Unset;
6719    }
6720    ///State transition - sets the `score` field to Set
6721    pub struct SetScore<S: State = Empty>(PhantomData<fn() -> S>);
6722    impl<S: State> sealed::Sealed for SetScore<S> {}
6723    impl<S: State> State for SetScore<S> {
6724        type Score = Set<members::score>;
6725    }
6726    /// Marker types for field names
6727    #[allow(non_camel_case_types)]
6728    pub mod members {
6729        ///Marker type for the `score` field
6730        pub struct score(());
6731    }
6732}
6733
6734/// Builder for constructing an instance of this type
6735pub struct ModEventPriorityScoreBuilder<'a, S: mod_event_priority_score_state::State> {
6736    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
6737    __unsafe_private_named: (
6738        ::core::option::Option<jacquard_common::CowStr<'a>>,
6739        ::core::option::Option<i64>,
6740    ),
6741    _phantom: ::core::marker::PhantomData<&'a ()>,
6742}
6743
6744impl<'a> ModEventPriorityScore<'a> {
6745    /// Create a new builder for this type
6746    pub fn new() -> ModEventPriorityScoreBuilder<
6747        'a,
6748        mod_event_priority_score_state::Empty,
6749    > {
6750        ModEventPriorityScoreBuilder::new()
6751    }
6752}
6753
6754impl<'a> ModEventPriorityScoreBuilder<'a, mod_event_priority_score_state::Empty> {
6755    /// Create a new builder with all fields unset
6756    pub fn new() -> Self {
6757        ModEventPriorityScoreBuilder {
6758            _phantom_state: ::core::marker::PhantomData,
6759            __unsafe_private_named: (None, None),
6760            _phantom: ::core::marker::PhantomData,
6761        }
6762    }
6763}
6764
6765impl<'a, S: mod_event_priority_score_state::State> ModEventPriorityScoreBuilder<'a, S> {
6766    /// Set the `comment` field (optional)
6767    pub fn comment(
6768        mut self,
6769        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
6770    ) -> Self {
6771        self.__unsafe_private_named.0 = value.into();
6772        self
6773    }
6774    /// Set the `comment` field to an Option value (optional)
6775    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
6776        self.__unsafe_private_named.0 = value;
6777        self
6778    }
6779}
6780
6781impl<'a, S> ModEventPriorityScoreBuilder<'a, S>
6782where
6783    S: mod_event_priority_score_state::State,
6784    S::Score: mod_event_priority_score_state::IsUnset,
6785{
6786    /// Set the `score` field (required)
6787    pub fn score(
6788        mut self,
6789        value: impl Into<i64>,
6790    ) -> ModEventPriorityScoreBuilder<'a, mod_event_priority_score_state::SetScore<S>> {
6791        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
6792        ModEventPriorityScoreBuilder {
6793            _phantom_state: ::core::marker::PhantomData,
6794            __unsafe_private_named: self.__unsafe_private_named,
6795            _phantom: ::core::marker::PhantomData,
6796        }
6797    }
6798}
6799
6800impl<'a, S> ModEventPriorityScoreBuilder<'a, S>
6801where
6802    S: mod_event_priority_score_state::State,
6803    S::Score: mod_event_priority_score_state::IsSet,
6804{
6805    /// Build the final struct
6806    pub fn build(self) -> ModEventPriorityScore<'a> {
6807        ModEventPriorityScore {
6808            comment: self.__unsafe_private_named.0,
6809            score: self.__unsafe_private_named.1.unwrap(),
6810            extra_data: Default::default(),
6811        }
6812    }
6813    /// Build the final struct with custom extra_data
6814    pub fn build_with_data(
6815        self,
6816        extra_data: std::collections::BTreeMap<
6817            jacquard_common::smol_str::SmolStr,
6818            jacquard_common::types::value::Data<'a>,
6819        >,
6820    ) -> ModEventPriorityScore<'a> {
6821        ModEventPriorityScore {
6822            comment: self.__unsafe_private_named.0,
6823            score: self.__unsafe_private_named.1.unwrap(),
6824            extra_data: Some(extra_data),
6825        }
6826    }
6827}
6828
6829impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventPriorityScore<'a> {
6830    fn nsid() -> &'static str {
6831        "tools.ozone.moderation.defs"
6832    }
6833    fn def_name() -> &'static str {
6834        "modEventPriorityScore"
6835    }
6836    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
6837        lexicon_doc_tools_ozone_moderation_defs()
6838    }
6839    fn validate(
6840        &self,
6841    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
6842        {
6843            let value = &self.score;
6844            if *value > 100i64 {
6845                return Err(::jacquard_lexicon::validation::ConstraintError::Maximum {
6846                    path: ::jacquard_lexicon::validation::ValidationPath::from_field(
6847                        "score",
6848                    ),
6849                    max: 100i64,
6850                    actual: *value,
6851                });
6852            }
6853        }
6854        {
6855            let value = &self.score;
6856            if *value < 0i64 {
6857                return Err(::jacquard_lexicon::validation::ConstraintError::Minimum {
6858                    path: ::jacquard_lexicon::validation::ValidationPath::from_field(
6859                        "score",
6860                    ),
6861                    min: 0i64,
6862                    actual: *value,
6863                });
6864            }
6865        }
6866        Ok(())
6867    }
6868}
6869
6870/// Report a subject
6871#[jacquard_derive::lexicon]
6872#[derive(
6873    serde::Serialize,
6874    serde::Deserialize,
6875    Debug,
6876    Clone,
6877    PartialEq,
6878    Eq,
6879    jacquard_derive::IntoStatic
6880)]
6881#[serde(rename_all = "camelCase")]
6882pub struct ModEventReport<'a> {
6883    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6884    #[serde(borrow)]
6885    pub comment: Option<jacquard_common::CowStr<'a>>,
6886    /// 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.
6887    #[serde(skip_serializing_if = "std::option::Option::is_none")]
6888    pub is_reporter_muted: Option<bool>,
6889    #[serde(borrow)]
6890    pub report_type: crate::com_atproto::moderation::ReasonType<'a>,
6891}
6892
6893pub mod mod_event_report_state {
6894
6895    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
6896    #[allow(unused)]
6897    use ::core::marker::PhantomData;
6898    mod sealed {
6899        pub trait Sealed {}
6900    }
6901    /// State trait tracking which required fields have been set
6902    pub trait State: sealed::Sealed {
6903        type ReportType;
6904    }
6905    /// Empty state - all required fields are unset
6906    pub struct Empty(());
6907    impl sealed::Sealed for Empty {}
6908    impl State for Empty {
6909        type ReportType = Unset;
6910    }
6911    ///State transition - sets the `report_type` field to Set
6912    pub struct SetReportType<S: State = Empty>(PhantomData<fn() -> S>);
6913    impl<S: State> sealed::Sealed for SetReportType<S> {}
6914    impl<S: State> State for SetReportType<S> {
6915        type ReportType = Set<members::report_type>;
6916    }
6917    /// Marker types for field names
6918    #[allow(non_camel_case_types)]
6919    pub mod members {
6920        ///Marker type for the `report_type` field
6921        pub struct report_type(());
6922    }
6923}
6924
6925/// Builder for constructing an instance of this type
6926pub struct ModEventReportBuilder<'a, S: mod_event_report_state::State> {
6927    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
6928    __unsafe_private_named: (
6929        ::core::option::Option<jacquard_common::CowStr<'a>>,
6930        ::core::option::Option<bool>,
6931        ::core::option::Option<crate::com_atproto::moderation::ReasonType<'a>>,
6932    ),
6933    _phantom: ::core::marker::PhantomData<&'a ()>,
6934}
6935
6936impl<'a> ModEventReport<'a> {
6937    /// Create a new builder for this type
6938    pub fn new() -> ModEventReportBuilder<'a, mod_event_report_state::Empty> {
6939        ModEventReportBuilder::new()
6940    }
6941}
6942
6943impl<'a> ModEventReportBuilder<'a, mod_event_report_state::Empty> {
6944    /// Create a new builder with all fields unset
6945    pub fn new() -> Self {
6946        ModEventReportBuilder {
6947            _phantom_state: ::core::marker::PhantomData,
6948            __unsafe_private_named: (None, None, None),
6949            _phantom: ::core::marker::PhantomData,
6950        }
6951    }
6952}
6953
6954impl<'a, S: mod_event_report_state::State> ModEventReportBuilder<'a, S> {
6955    /// Set the `comment` field (optional)
6956    pub fn comment(
6957        mut self,
6958        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
6959    ) -> Self {
6960        self.__unsafe_private_named.0 = value.into();
6961        self
6962    }
6963    /// Set the `comment` field to an Option value (optional)
6964    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
6965        self.__unsafe_private_named.0 = value;
6966        self
6967    }
6968}
6969
6970impl<'a, S: mod_event_report_state::State> ModEventReportBuilder<'a, S> {
6971    /// Set the `isReporterMuted` field (optional)
6972    pub fn is_reporter_muted(mut self, value: impl Into<Option<bool>>) -> Self {
6973        self.__unsafe_private_named.1 = value.into();
6974        self
6975    }
6976    /// Set the `isReporterMuted` field to an Option value (optional)
6977    pub fn maybe_is_reporter_muted(mut self, value: Option<bool>) -> Self {
6978        self.__unsafe_private_named.1 = value;
6979        self
6980    }
6981}
6982
6983impl<'a, S> ModEventReportBuilder<'a, S>
6984where
6985    S: mod_event_report_state::State,
6986    S::ReportType: mod_event_report_state::IsUnset,
6987{
6988    /// Set the `reportType` field (required)
6989    pub fn report_type(
6990        mut self,
6991        value: impl Into<crate::com_atproto::moderation::ReasonType<'a>>,
6992    ) -> ModEventReportBuilder<'a, mod_event_report_state::SetReportType<S>> {
6993        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
6994        ModEventReportBuilder {
6995            _phantom_state: ::core::marker::PhantomData,
6996            __unsafe_private_named: self.__unsafe_private_named,
6997            _phantom: ::core::marker::PhantomData,
6998        }
6999    }
7000}
7001
7002impl<'a, S> ModEventReportBuilder<'a, S>
7003where
7004    S: mod_event_report_state::State,
7005    S::ReportType: mod_event_report_state::IsSet,
7006{
7007    /// Build the final struct
7008    pub fn build(self) -> ModEventReport<'a> {
7009        ModEventReport {
7010            comment: self.__unsafe_private_named.0,
7011            is_reporter_muted: self.__unsafe_private_named.1,
7012            report_type: self.__unsafe_private_named.2.unwrap(),
7013            extra_data: Default::default(),
7014        }
7015    }
7016    /// Build the final struct with custom extra_data
7017    pub fn build_with_data(
7018        self,
7019        extra_data: std::collections::BTreeMap<
7020            jacquard_common::smol_str::SmolStr,
7021            jacquard_common::types::value::Data<'a>,
7022        >,
7023    ) -> ModEventReport<'a> {
7024        ModEventReport {
7025            comment: self.__unsafe_private_named.0,
7026            is_reporter_muted: self.__unsafe_private_named.1,
7027            report_type: self.__unsafe_private_named.2.unwrap(),
7028            extra_data: Some(extra_data),
7029        }
7030    }
7031}
7032
7033impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventReport<'a> {
7034    fn nsid() -> &'static str {
7035        "tools.ozone.moderation.defs"
7036    }
7037    fn def_name() -> &'static str {
7038        "modEventReport"
7039    }
7040    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
7041        lexicon_doc_tools_ozone_moderation_defs()
7042    }
7043    fn validate(
7044        &self,
7045    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
7046        Ok(())
7047    }
7048}
7049
7050/// Resolve appeal on a subject
7051#[jacquard_derive::lexicon]
7052#[derive(
7053    serde::Serialize,
7054    serde::Deserialize,
7055    Debug,
7056    Clone,
7057    PartialEq,
7058    Eq,
7059    jacquard_derive::IntoStatic,
7060    Default
7061)]
7062#[serde(rename_all = "camelCase")]
7063pub struct ModEventResolveAppeal<'a> {
7064    /// Describe resolution.
7065    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7066    #[serde(borrow)]
7067    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
7068}
7069
7070impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventResolveAppeal<'a> {
7071    fn nsid() -> &'static str {
7072        "tools.ozone.moderation.defs"
7073    }
7074    fn def_name() -> &'static str {
7075        "modEventResolveAppeal"
7076    }
7077    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
7078        lexicon_doc_tools_ozone_moderation_defs()
7079    }
7080    fn validate(
7081        &self,
7082    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
7083        Ok(())
7084    }
7085}
7086
7087/// Revert take down action on a subject
7088#[jacquard_derive::lexicon]
7089#[derive(
7090    serde::Serialize,
7091    serde::Deserialize,
7092    Debug,
7093    Clone,
7094    PartialEq,
7095    Eq,
7096    jacquard_derive::IntoStatic,
7097    Default
7098)]
7099#[serde(rename_all = "camelCase")]
7100pub struct ModEventReverseTakedown<'a> {
7101    /// Describe reasoning behind the reversal.
7102    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7103    #[serde(borrow)]
7104    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
7105    /// Names/Keywords of the policy infraction for which takedown is being reversed.
7106    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7107    #[serde(borrow)]
7108    pub policies: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
7109    /// Severity level of the violation. Usually set from the last policy infraction's severity.
7110    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7111    #[serde(borrow)]
7112    pub severity_level: std::option::Option<jacquard_common::CowStr<'a>>,
7113    /// Number of strikes to subtract from the user's strike count. Usually set from the last policy infraction's severity.
7114    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7115    pub strike_count: std::option::Option<i64>,
7116}
7117
7118impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventReverseTakedown<'a> {
7119    fn nsid() -> &'static str {
7120        "tools.ozone.moderation.defs"
7121    }
7122    fn def_name() -> &'static str {
7123        "modEventReverseTakedown"
7124    }
7125    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
7126        lexicon_doc_tools_ozone_moderation_defs()
7127    }
7128    fn validate(
7129        &self,
7130    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
7131        if let Some(ref value) = self.policies {
7132            #[allow(unused_comparisons)]
7133            if value.len() > 5usize {
7134                return Err(::jacquard_lexicon::validation::ConstraintError::MaxLength {
7135                    path: ::jacquard_lexicon::validation::ValidationPath::from_field(
7136                        "policies",
7137                    ),
7138                    max: 5usize,
7139                    actual: value.len(),
7140                });
7141            }
7142        }
7143        Ok(())
7144    }
7145}
7146
7147/// Add/Remove a tag on a subject
7148#[jacquard_derive::lexicon]
7149#[derive(
7150    serde::Serialize,
7151    serde::Deserialize,
7152    Debug,
7153    Clone,
7154    PartialEq,
7155    Eq,
7156    jacquard_derive::IntoStatic
7157)]
7158#[serde(rename_all = "camelCase")]
7159pub struct ModEventTag<'a> {
7160    /// Tags to be added to the subject. If already exists, won't be duplicated.
7161    #[serde(borrow)]
7162    pub add: Vec<jacquard_common::CowStr<'a>>,
7163    /// Additional comment about added/removed tags.
7164    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7165    #[serde(borrow)]
7166    pub comment: Option<jacquard_common::CowStr<'a>>,
7167    /// Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated.
7168    #[serde(borrow)]
7169    pub remove: Vec<jacquard_common::CowStr<'a>>,
7170}
7171
7172pub mod mod_event_tag_state {
7173
7174    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
7175    #[allow(unused)]
7176    use ::core::marker::PhantomData;
7177    mod sealed {
7178        pub trait Sealed {}
7179    }
7180    /// State trait tracking which required fields have been set
7181    pub trait State: sealed::Sealed {
7182        type Add;
7183        type Remove;
7184    }
7185    /// Empty state - all required fields are unset
7186    pub struct Empty(());
7187    impl sealed::Sealed for Empty {}
7188    impl State for Empty {
7189        type Add = Unset;
7190        type Remove = Unset;
7191    }
7192    ///State transition - sets the `add` field to Set
7193    pub struct SetAdd<S: State = Empty>(PhantomData<fn() -> S>);
7194    impl<S: State> sealed::Sealed for SetAdd<S> {}
7195    impl<S: State> State for SetAdd<S> {
7196        type Add = Set<members::add>;
7197        type Remove = S::Remove;
7198    }
7199    ///State transition - sets the `remove` field to Set
7200    pub struct SetRemove<S: State = Empty>(PhantomData<fn() -> S>);
7201    impl<S: State> sealed::Sealed for SetRemove<S> {}
7202    impl<S: State> State for SetRemove<S> {
7203        type Add = S::Add;
7204        type Remove = Set<members::remove>;
7205    }
7206    /// Marker types for field names
7207    #[allow(non_camel_case_types)]
7208    pub mod members {
7209        ///Marker type for the `add` field
7210        pub struct add(());
7211        ///Marker type for the `remove` field
7212        pub struct remove(());
7213    }
7214}
7215
7216/// Builder for constructing an instance of this type
7217pub struct ModEventTagBuilder<'a, S: mod_event_tag_state::State> {
7218    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
7219    __unsafe_private_named: (
7220        ::core::option::Option<Vec<jacquard_common::CowStr<'a>>>,
7221        ::core::option::Option<jacquard_common::CowStr<'a>>,
7222        ::core::option::Option<Vec<jacquard_common::CowStr<'a>>>,
7223    ),
7224    _phantom: ::core::marker::PhantomData<&'a ()>,
7225}
7226
7227impl<'a> ModEventTag<'a> {
7228    /// Create a new builder for this type
7229    pub fn new() -> ModEventTagBuilder<'a, mod_event_tag_state::Empty> {
7230        ModEventTagBuilder::new()
7231    }
7232}
7233
7234impl<'a> ModEventTagBuilder<'a, mod_event_tag_state::Empty> {
7235    /// Create a new builder with all fields unset
7236    pub fn new() -> Self {
7237        ModEventTagBuilder {
7238            _phantom_state: ::core::marker::PhantomData,
7239            __unsafe_private_named: (None, None, None),
7240            _phantom: ::core::marker::PhantomData,
7241        }
7242    }
7243}
7244
7245impl<'a, S> ModEventTagBuilder<'a, S>
7246where
7247    S: mod_event_tag_state::State,
7248    S::Add: mod_event_tag_state::IsUnset,
7249{
7250    /// Set the `add` field (required)
7251    pub fn add(
7252        mut self,
7253        value: impl Into<Vec<jacquard_common::CowStr<'a>>>,
7254    ) -> ModEventTagBuilder<'a, mod_event_tag_state::SetAdd<S>> {
7255        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
7256        ModEventTagBuilder {
7257            _phantom_state: ::core::marker::PhantomData,
7258            __unsafe_private_named: self.__unsafe_private_named,
7259            _phantom: ::core::marker::PhantomData,
7260        }
7261    }
7262}
7263
7264impl<'a, S: mod_event_tag_state::State> ModEventTagBuilder<'a, S> {
7265    /// Set the `comment` field (optional)
7266    pub fn comment(
7267        mut self,
7268        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
7269    ) -> Self {
7270        self.__unsafe_private_named.1 = value.into();
7271        self
7272    }
7273    /// Set the `comment` field to an Option value (optional)
7274    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
7275        self.__unsafe_private_named.1 = value;
7276        self
7277    }
7278}
7279
7280impl<'a, S> ModEventTagBuilder<'a, S>
7281where
7282    S: mod_event_tag_state::State,
7283    S::Remove: mod_event_tag_state::IsUnset,
7284{
7285    /// Set the `remove` field (required)
7286    pub fn remove(
7287        mut self,
7288        value: impl Into<Vec<jacquard_common::CowStr<'a>>>,
7289    ) -> ModEventTagBuilder<'a, mod_event_tag_state::SetRemove<S>> {
7290        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
7291        ModEventTagBuilder {
7292            _phantom_state: ::core::marker::PhantomData,
7293            __unsafe_private_named: self.__unsafe_private_named,
7294            _phantom: ::core::marker::PhantomData,
7295        }
7296    }
7297}
7298
7299impl<'a, S> ModEventTagBuilder<'a, S>
7300where
7301    S: mod_event_tag_state::State,
7302    S::Add: mod_event_tag_state::IsSet,
7303    S::Remove: mod_event_tag_state::IsSet,
7304{
7305    /// Build the final struct
7306    pub fn build(self) -> ModEventTag<'a> {
7307        ModEventTag {
7308            add: self.__unsafe_private_named.0.unwrap(),
7309            comment: self.__unsafe_private_named.1,
7310            remove: self.__unsafe_private_named.2.unwrap(),
7311            extra_data: Default::default(),
7312        }
7313    }
7314    /// Build the final struct with custom extra_data
7315    pub fn build_with_data(
7316        self,
7317        extra_data: std::collections::BTreeMap<
7318            jacquard_common::smol_str::SmolStr,
7319            jacquard_common::types::value::Data<'a>,
7320        >,
7321    ) -> ModEventTag<'a> {
7322        ModEventTag {
7323            add: self.__unsafe_private_named.0.unwrap(),
7324            comment: self.__unsafe_private_named.1,
7325            remove: self.__unsafe_private_named.2.unwrap(),
7326            extra_data: Some(extra_data),
7327        }
7328    }
7329}
7330
7331impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventTag<'a> {
7332    fn nsid() -> &'static str {
7333        "tools.ozone.moderation.defs"
7334    }
7335    fn def_name() -> &'static str {
7336        "modEventTag"
7337    }
7338    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
7339        lexicon_doc_tools_ozone_moderation_defs()
7340    }
7341    fn validate(
7342        &self,
7343    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
7344        Ok(())
7345    }
7346}
7347
7348/// Take down a subject permanently or temporarily
7349#[jacquard_derive::lexicon]
7350#[derive(
7351    serde::Serialize,
7352    serde::Deserialize,
7353    Debug,
7354    Clone,
7355    PartialEq,
7356    Eq,
7357    jacquard_derive::IntoStatic,
7358    Default
7359)]
7360#[serde(rename_all = "camelCase")]
7361pub struct ModEventTakedown<'a> {
7362    /// If true, all other reports on content authored by this account will be resolved (acknowledged).
7363    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7364    pub acknowledge_account_subjects: std::option::Option<bool>,
7365    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7366    #[serde(borrow)]
7367    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
7368    /// Indicates how long the takedown should be in effect before automatically expiring.
7369    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7370    pub duration_in_hours: std::option::Option<i64>,
7371    /// Names/Keywords of the policies that drove the decision.
7372    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7373    #[serde(borrow)]
7374    pub policies: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
7375    /// Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).
7376    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7377    #[serde(borrow)]
7378    pub severity_level: std::option::Option<jacquard_common::CowStr<'a>>,
7379    /// Number of strikes to assign to the user for this violation.
7380    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7381    pub strike_count: std::option::Option<i64>,
7382    /// When the strike should expire. If not provided, the strike never expires.
7383    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7384    pub strike_expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
7385}
7386
7387impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventTakedown<'a> {
7388    fn nsid() -> &'static str {
7389        "tools.ozone.moderation.defs"
7390    }
7391    fn def_name() -> &'static str {
7392        "modEventTakedown"
7393    }
7394    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
7395        lexicon_doc_tools_ozone_moderation_defs()
7396    }
7397    fn validate(
7398        &self,
7399    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
7400        if let Some(ref value) = self.policies {
7401            #[allow(unused_comparisons)]
7402            if value.len() > 5usize {
7403                return Err(::jacquard_lexicon::validation::ConstraintError::MaxLength {
7404                    path: ::jacquard_lexicon::validation::ValidationPath::from_field(
7405                        "policies",
7406                    ),
7407                    max: 5usize,
7408                    actual: value.len(),
7409                });
7410            }
7411        }
7412        Ok(())
7413    }
7414}
7415
7416/// Unmute action on a subject
7417#[jacquard_derive::lexicon]
7418#[derive(
7419    serde::Serialize,
7420    serde::Deserialize,
7421    Debug,
7422    Clone,
7423    PartialEq,
7424    Eq,
7425    jacquard_derive::IntoStatic,
7426    Default
7427)]
7428#[serde(rename_all = "camelCase")]
7429pub struct ModEventUnmute<'a> {
7430    /// Describe reasoning behind the reversal.
7431    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7432    #[serde(borrow)]
7433    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
7434}
7435
7436impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventUnmute<'a> {
7437    fn nsid() -> &'static str {
7438        "tools.ozone.moderation.defs"
7439    }
7440    fn def_name() -> &'static str {
7441        "modEventUnmute"
7442    }
7443    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
7444        lexicon_doc_tools_ozone_moderation_defs()
7445    }
7446    fn validate(
7447        &self,
7448    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
7449        Ok(())
7450    }
7451}
7452
7453/// Unmute incoming reports from an account
7454#[jacquard_derive::lexicon]
7455#[derive(
7456    serde::Serialize,
7457    serde::Deserialize,
7458    Debug,
7459    Clone,
7460    PartialEq,
7461    Eq,
7462    jacquard_derive::IntoStatic,
7463    Default
7464)]
7465#[serde(rename_all = "camelCase")]
7466pub struct ModEventUnmuteReporter<'a> {
7467    /// Describe reasoning behind the reversal.
7468    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7469    #[serde(borrow)]
7470    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
7471}
7472
7473impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventUnmuteReporter<'a> {
7474    fn nsid() -> &'static str {
7475        "tools.ozone.moderation.defs"
7476    }
7477    fn def_name() -> &'static str {
7478        "modEventUnmuteReporter"
7479    }
7480    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
7481        lexicon_doc_tools_ozone_moderation_defs()
7482    }
7483    fn validate(
7484        &self,
7485    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
7486        Ok(())
7487    }
7488}
7489
7490#[jacquard_derive::lexicon]
7491#[derive(
7492    serde::Serialize,
7493    serde::Deserialize,
7494    Debug,
7495    Clone,
7496    PartialEq,
7497    Eq,
7498    jacquard_derive::IntoStatic
7499)]
7500#[serde(rename_all = "camelCase")]
7501pub struct ModEventView<'a> {
7502    pub created_at: jacquard_common::types::string::Datetime,
7503    #[serde(borrow)]
7504    pub created_by: jacquard_common::types::string::Did<'a>,
7505    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7506    #[serde(borrow)]
7507    pub creator_handle: Option<jacquard_common::CowStr<'a>>,
7508    #[serde(borrow)]
7509    pub event: ModEventViewEvent<'a>,
7510    pub id: i64,
7511    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7512    #[serde(borrow)]
7513    pub mod_tool: Option<crate::tools_ozone::moderation::ModTool<'a>>,
7514    #[serde(borrow)]
7515    pub subject: ModEventViewSubject<'a>,
7516    #[serde(borrow)]
7517    pub subject_blob_cids: Vec<jacquard_common::CowStr<'a>>,
7518    #[serde(skip_serializing_if = "std::option::Option::is_none")]
7519    #[serde(borrow)]
7520    pub subject_handle: Option<jacquard_common::CowStr<'a>>,
7521}
7522
7523pub mod mod_event_view_state {
7524
7525    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
7526    #[allow(unused)]
7527    use ::core::marker::PhantomData;
7528    mod sealed {
7529        pub trait Sealed {}
7530    }
7531    /// State trait tracking which required fields have been set
7532    pub trait State: sealed::Sealed {
7533        type Id;
7534        type Event;
7535        type Subject;
7536        type SubjectBlobCids;
7537        type CreatedBy;
7538        type CreatedAt;
7539    }
7540    /// Empty state - all required fields are unset
7541    pub struct Empty(());
7542    impl sealed::Sealed for Empty {}
7543    impl State for Empty {
7544        type Id = Unset;
7545        type Event = Unset;
7546        type Subject = Unset;
7547        type SubjectBlobCids = Unset;
7548        type CreatedBy = Unset;
7549        type CreatedAt = Unset;
7550    }
7551    ///State transition - sets the `id` field to Set
7552    pub struct SetId<S: State = Empty>(PhantomData<fn() -> S>);
7553    impl<S: State> sealed::Sealed for SetId<S> {}
7554    impl<S: State> State for SetId<S> {
7555        type Id = Set<members::id>;
7556        type Event = S::Event;
7557        type Subject = S::Subject;
7558        type SubjectBlobCids = S::SubjectBlobCids;
7559        type CreatedBy = S::CreatedBy;
7560        type CreatedAt = S::CreatedAt;
7561    }
7562    ///State transition - sets the `event` field to Set
7563    pub struct SetEvent<S: State = Empty>(PhantomData<fn() -> S>);
7564    impl<S: State> sealed::Sealed for SetEvent<S> {}
7565    impl<S: State> State for SetEvent<S> {
7566        type Id = S::Id;
7567        type Event = Set<members::event>;
7568        type Subject = S::Subject;
7569        type SubjectBlobCids = S::SubjectBlobCids;
7570        type CreatedBy = S::CreatedBy;
7571        type CreatedAt = S::CreatedAt;
7572    }
7573    ///State transition - sets the `subject` field to Set
7574    pub struct SetSubject<S: State = Empty>(PhantomData<fn() -> S>);
7575    impl<S: State> sealed::Sealed for SetSubject<S> {}
7576    impl<S: State> State for SetSubject<S> {
7577        type Id = S::Id;
7578        type Event = S::Event;
7579        type Subject = Set<members::subject>;
7580        type SubjectBlobCids = S::SubjectBlobCids;
7581        type CreatedBy = S::CreatedBy;
7582        type CreatedAt = S::CreatedAt;
7583    }
7584    ///State transition - sets the `subject_blob_cids` field to Set
7585    pub struct SetSubjectBlobCids<S: State = Empty>(PhantomData<fn() -> S>);
7586    impl<S: State> sealed::Sealed for SetSubjectBlobCids<S> {}
7587    impl<S: State> State for SetSubjectBlobCids<S> {
7588        type Id = S::Id;
7589        type Event = S::Event;
7590        type Subject = S::Subject;
7591        type SubjectBlobCids = Set<members::subject_blob_cids>;
7592        type CreatedBy = S::CreatedBy;
7593        type CreatedAt = S::CreatedAt;
7594    }
7595    ///State transition - sets the `created_by` field to Set
7596    pub struct SetCreatedBy<S: State = Empty>(PhantomData<fn() -> S>);
7597    impl<S: State> sealed::Sealed for SetCreatedBy<S> {}
7598    impl<S: State> State for SetCreatedBy<S> {
7599        type Id = S::Id;
7600        type Event = S::Event;
7601        type Subject = S::Subject;
7602        type SubjectBlobCids = S::SubjectBlobCids;
7603        type CreatedBy = Set<members::created_by>;
7604        type CreatedAt = S::CreatedAt;
7605    }
7606    ///State transition - sets the `created_at` field to Set
7607    pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
7608    impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
7609    impl<S: State> State for SetCreatedAt<S> {
7610        type Id = S::Id;
7611        type Event = S::Event;
7612        type Subject = S::Subject;
7613        type SubjectBlobCids = S::SubjectBlobCids;
7614        type CreatedBy = S::CreatedBy;
7615        type CreatedAt = Set<members::created_at>;
7616    }
7617    /// Marker types for field names
7618    #[allow(non_camel_case_types)]
7619    pub mod members {
7620        ///Marker type for the `id` field
7621        pub struct id(());
7622        ///Marker type for the `event` field
7623        pub struct event(());
7624        ///Marker type for the `subject` field
7625        pub struct subject(());
7626        ///Marker type for the `subject_blob_cids` field
7627        pub struct subject_blob_cids(());
7628        ///Marker type for the `created_by` field
7629        pub struct created_by(());
7630        ///Marker type for the `created_at` field
7631        pub struct created_at(());
7632    }
7633}
7634
7635/// Builder for constructing an instance of this type
7636pub struct ModEventViewBuilder<'a, S: mod_event_view_state::State> {
7637    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
7638    __unsafe_private_named: (
7639        ::core::option::Option<jacquard_common::types::string::Datetime>,
7640        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
7641        ::core::option::Option<jacquard_common::CowStr<'a>>,
7642        ::core::option::Option<ModEventViewEvent<'a>>,
7643        ::core::option::Option<i64>,
7644        ::core::option::Option<crate::tools_ozone::moderation::ModTool<'a>>,
7645        ::core::option::Option<ModEventViewSubject<'a>>,
7646        ::core::option::Option<Vec<jacquard_common::CowStr<'a>>>,
7647        ::core::option::Option<jacquard_common::CowStr<'a>>,
7648    ),
7649    _phantom: ::core::marker::PhantomData<&'a ()>,
7650}
7651
7652impl<'a> ModEventView<'a> {
7653    /// Create a new builder for this type
7654    pub fn new() -> ModEventViewBuilder<'a, mod_event_view_state::Empty> {
7655        ModEventViewBuilder::new()
7656    }
7657}
7658
7659impl<'a> ModEventViewBuilder<'a, mod_event_view_state::Empty> {
7660    /// Create a new builder with all fields unset
7661    pub fn new() -> Self {
7662        ModEventViewBuilder {
7663            _phantom_state: ::core::marker::PhantomData,
7664            __unsafe_private_named: (
7665                None,
7666                None,
7667                None,
7668                None,
7669                None,
7670                None,
7671                None,
7672                None,
7673                None,
7674            ),
7675            _phantom: ::core::marker::PhantomData,
7676        }
7677    }
7678}
7679
7680impl<'a, S> ModEventViewBuilder<'a, S>
7681where
7682    S: mod_event_view_state::State,
7683    S::CreatedAt: mod_event_view_state::IsUnset,
7684{
7685    /// Set the `createdAt` field (required)
7686    pub fn created_at(
7687        mut self,
7688        value: impl Into<jacquard_common::types::string::Datetime>,
7689    ) -> ModEventViewBuilder<'a, mod_event_view_state::SetCreatedAt<S>> {
7690        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
7691        ModEventViewBuilder {
7692            _phantom_state: ::core::marker::PhantomData,
7693            __unsafe_private_named: self.__unsafe_private_named,
7694            _phantom: ::core::marker::PhantomData,
7695        }
7696    }
7697}
7698
7699impl<'a, S> ModEventViewBuilder<'a, S>
7700where
7701    S: mod_event_view_state::State,
7702    S::CreatedBy: mod_event_view_state::IsUnset,
7703{
7704    /// Set the `createdBy` field (required)
7705    pub fn created_by(
7706        mut self,
7707        value: impl Into<jacquard_common::types::string::Did<'a>>,
7708    ) -> ModEventViewBuilder<'a, mod_event_view_state::SetCreatedBy<S>> {
7709        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
7710        ModEventViewBuilder {
7711            _phantom_state: ::core::marker::PhantomData,
7712            __unsafe_private_named: self.__unsafe_private_named,
7713            _phantom: ::core::marker::PhantomData,
7714        }
7715    }
7716}
7717
7718impl<'a, S: mod_event_view_state::State> ModEventViewBuilder<'a, S> {
7719    /// Set the `creatorHandle` field (optional)
7720    pub fn creator_handle(
7721        mut self,
7722        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
7723    ) -> Self {
7724        self.__unsafe_private_named.2 = value.into();
7725        self
7726    }
7727    /// Set the `creatorHandle` field to an Option value (optional)
7728    pub fn maybe_creator_handle(
7729        mut self,
7730        value: Option<jacquard_common::CowStr<'a>>,
7731    ) -> Self {
7732        self.__unsafe_private_named.2 = value;
7733        self
7734    }
7735}
7736
7737impl<'a, S> ModEventViewBuilder<'a, S>
7738where
7739    S: mod_event_view_state::State,
7740    S::Event: mod_event_view_state::IsUnset,
7741{
7742    /// Set the `event` field (required)
7743    pub fn event(
7744        mut self,
7745        value: impl Into<ModEventViewEvent<'a>>,
7746    ) -> ModEventViewBuilder<'a, mod_event_view_state::SetEvent<S>> {
7747        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
7748        ModEventViewBuilder {
7749            _phantom_state: ::core::marker::PhantomData,
7750            __unsafe_private_named: self.__unsafe_private_named,
7751            _phantom: ::core::marker::PhantomData,
7752        }
7753    }
7754}
7755
7756impl<'a, S> ModEventViewBuilder<'a, S>
7757where
7758    S: mod_event_view_state::State,
7759    S::Id: mod_event_view_state::IsUnset,
7760{
7761    /// Set the `id` field (required)
7762    pub fn id(
7763        mut self,
7764        value: impl Into<i64>,
7765    ) -> ModEventViewBuilder<'a, mod_event_view_state::SetId<S>> {
7766        self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
7767        ModEventViewBuilder {
7768            _phantom_state: ::core::marker::PhantomData,
7769            __unsafe_private_named: self.__unsafe_private_named,
7770            _phantom: ::core::marker::PhantomData,
7771        }
7772    }
7773}
7774
7775impl<'a, S: mod_event_view_state::State> ModEventViewBuilder<'a, S> {
7776    /// Set the `modTool` field (optional)
7777    pub fn mod_tool(
7778        mut self,
7779        value: impl Into<Option<crate::tools_ozone::moderation::ModTool<'a>>>,
7780    ) -> Self {
7781        self.__unsafe_private_named.5 = value.into();
7782        self
7783    }
7784    /// Set the `modTool` field to an Option value (optional)
7785    pub fn maybe_mod_tool(
7786        mut self,
7787        value: Option<crate::tools_ozone::moderation::ModTool<'a>>,
7788    ) -> Self {
7789        self.__unsafe_private_named.5 = value;
7790        self
7791    }
7792}
7793
7794impl<'a, S> ModEventViewBuilder<'a, S>
7795where
7796    S: mod_event_view_state::State,
7797    S::Subject: mod_event_view_state::IsUnset,
7798{
7799    /// Set the `subject` field (required)
7800    pub fn subject(
7801        mut self,
7802        value: impl Into<ModEventViewSubject<'a>>,
7803    ) -> ModEventViewBuilder<'a, mod_event_view_state::SetSubject<S>> {
7804        self.__unsafe_private_named.6 = ::core::option::Option::Some(value.into());
7805        ModEventViewBuilder {
7806            _phantom_state: ::core::marker::PhantomData,
7807            __unsafe_private_named: self.__unsafe_private_named,
7808            _phantom: ::core::marker::PhantomData,
7809        }
7810    }
7811}
7812
7813impl<'a, S> ModEventViewBuilder<'a, S>
7814where
7815    S: mod_event_view_state::State,
7816    S::SubjectBlobCids: mod_event_view_state::IsUnset,
7817{
7818    /// Set the `subjectBlobCids` field (required)
7819    pub fn subject_blob_cids(
7820        mut self,
7821        value: impl Into<Vec<jacquard_common::CowStr<'a>>>,
7822    ) -> ModEventViewBuilder<'a, mod_event_view_state::SetSubjectBlobCids<S>> {
7823        self.__unsafe_private_named.7 = ::core::option::Option::Some(value.into());
7824        ModEventViewBuilder {
7825            _phantom_state: ::core::marker::PhantomData,
7826            __unsafe_private_named: self.__unsafe_private_named,
7827            _phantom: ::core::marker::PhantomData,
7828        }
7829    }
7830}
7831
7832impl<'a, S: mod_event_view_state::State> ModEventViewBuilder<'a, S> {
7833    /// Set the `subjectHandle` field (optional)
7834    pub fn subject_handle(
7835        mut self,
7836        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
7837    ) -> Self {
7838        self.__unsafe_private_named.8 = value.into();
7839        self
7840    }
7841    /// Set the `subjectHandle` field to an Option value (optional)
7842    pub fn maybe_subject_handle(
7843        mut self,
7844        value: Option<jacquard_common::CowStr<'a>>,
7845    ) -> Self {
7846        self.__unsafe_private_named.8 = value;
7847        self
7848    }
7849}
7850
7851impl<'a, S> ModEventViewBuilder<'a, S>
7852where
7853    S: mod_event_view_state::State,
7854    S::Id: mod_event_view_state::IsSet,
7855    S::Event: mod_event_view_state::IsSet,
7856    S::Subject: mod_event_view_state::IsSet,
7857    S::SubjectBlobCids: mod_event_view_state::IsSet,
7858    S::CreatedBy: mod_event_view_state::IsSet,
7859    S::CreatedAt: mod_event_view_state::IsSet,
7860{
7861    /// Build the final struct
7862    pub fn build(self) -> ModEventView<'a> {
7863        ModEventView {
7864            created_at: self.__unsafe_private_named.0.unwrap(),
7865            created_by: self.__unsafe_private_named.1.unwrap(),
7866            creator_handle: self.__unsafe_private_named.2,
7867            event: self.__unsafe_private_named.3.unwrap(),
7868            id: self.__unsafe_private_named.4.unwrap(),
7869            mod_tool: self.__unsafe_private_named.5,
7870            subject: self.__unsafe_private_named.6.unwrap(),
7871            subject_blob_cids: self.__unsafe_private_named.7.unwrap(),
7872            subject_handle: self.__unsafe_private_named.8,
7873            extra_data: Default::default(),
7874        }
7875    }
7876    /// Build the final struct with custom extra_data
7877    pub fn build_with_data(
7878        self,
7879        extra_data: std::collections::BTreeMap<
7880            jacquard_common::smol_str::SmolStr,
7881            jacquard_common::types::value::Data<'a>,
7882        >,
7883    ) -> ModEventView<'a> {
7884        ModEventView {
7885            created_at: self.__unsafe_private_named.0.unwrap(),
7886            created_by: self.__unsafe_private_named.1.unwrap(),
7887            creator_handle: self.__unsafe_private_named.2,
7888            event: self.__unsafe_private_named.3.unwrap(),
7889            id: self.__unsafe_private_named.4.unwrap(),
7890            mod_tool: self.__unsafe_private_named.5,
7891            subject: self.__unsafe_private_named.6.unwrap(),
7892            subject_blob_cids: self.__unsafe_private_named.7.unwrap(),
7893            subject_handle: self.__unsafe_private_named.8,
7894            extra_data: Some(extra_data),
7895        }
7896    }
7897}
7898
7899#[jacquard_derive::open_union]
7900#[derive(
7901    serde::Serialize,
7902    serde::Deserialize,
7903    Debug,
7904    Clone,
7905    PartialEq,
7906    Eq,
7907    jacquard_derive::IntoStatic
7908)]
7909#[serde(tag = "$type")]
7910#[serde(bound(deserialize = "'de: 'a"))]
7911pub enum ModEventViewEvent<'a> {
7912    #[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")]
7913    ModEventTakedown(Box<crate::tools_ozone::moderation::ModEventTakedown<'a>>),
7914    #[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")]
7915    ModEventReverseTakedown(
7916        Box<crate::tools_ozone::moderation::ModEventReverseTakedown<'a>>,
7917    ),
7918    #[serde(rename = "tools.ozone.moderation.defs#modEventComment")]
7919    ModEventComment(Box<crate::tools_ozone::moderation::ModEventComment<'a>>),
7920    #[serde(rename = "tools.ozone.moderation.defs#modEventReport")]
7921    ModEventReport(Box<crate::tools_ozone::moderation::ModEventReport<'a>>),
7922    #[serde(rename = "tools.ozone.moderation.defs#modEventLabel")]
7923    ModEventLabel(Box<crate::tools_ozone::moderation::ModEventLabel<'a>>),
7924    #[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")]
7925    ModEventAcknowledge(Box<crate::tools_ozone::moderation::ModEventAcknowledge<'a>>),
7926    #[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")]
7927    ModEventEscalate(Box<crate::tools_ozone::moderation::ModEventEscalate<'a>>),
7928    #[serde(rename = "tools.ozone.moderation.defs#modEventMute")]
7929    ModEventMute(Box<crate::tools_ozone::moderation::ModEventMute<'a>>),
7930    #[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")]
7931    ModEventUnmute(Box<crate::tools_ozone::moderation::ModEventUnmute<'a>>),
7932    #[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")]
7933    ModEventMuteReporter(Box<crate::tools_ozone::moderation::ModEventMuteReporter<'a>>),
7934    #[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")]
7935    ModEventUnmuteReporter(
7936        Box<crate::tools_ozone::moderation::ModEventUnmuteReporter<'a>>,
7937    ),
7938    #[serde(rename = "tools.ozone.moderation.defs#modEventEmail")]
7939    ModEventEmail(Box<crate::tools_ozone::moderation::ModEventEmail<'a>>),
7940    #[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")]
7941    ModEventResolveAppeal(
7942        Box<crate::tools_ozone::moderation::ModEventResolveAppeal<'a>>,
7943    ),
7944    #[serde(rename = "tools.ozone.moderation.defs#modEventDivert")]
7945    ModEventDivert(Box<crate::tools_ozone::moderation::ModEventDivert<'a>>),
7946    #[serde(rename = "tools.ozone.moderation.defs#modEventTag")]
7947    ModEventTag(Box<crate::tools_ozone::moderation::ModEventTag<'a>>),
7948    #[serde(rename = "tools.ozone.moderation.defs#accountEvent")]
7949    AccountEvent(Box<crate::tools_ozone::moderation::AccountEvent<'a>>),
7950    #[serde(rename = "tools.ozone.moderation.defs#identityEvent")]
7951    IdentityEvent(Box<crate::tools_ozone::moderation::IdentityEvent<'a>>),
7952    #[serde(rename = "tools.ozone.moderation.defs#recordEvent")]
7953    RecordEvent(Box<crate::tools_ozone::moderation::RecordEvent<'a>>),
7954    #[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")]
7955    ModEventPriorityScore(
7956        Box<crate::tools_ozone::moderation::ModEventPriorityScore<'a>>,
7957    ),
7958    #[serde(rename = "tools.ozone.moderation.defs#ageAssuranceEvent")]
7959    AgeAssuranceEvent(Box<crate::tools_ozone::moderation::AgeAssuranceEvent<'a>>),
7960    #[serde(rename = "tools.ozone.moderation.defs#ageAssuranceOverrideEvent")]
7961    AgeAssuranceOverrideEvent(
7962        Box<crate::tools_ozone::moderation::AgeAssuranceOverrideEvent<'a>>,
7963    ),
7964    #[serde(rename = "tools.ozone.moderation.defs#revokeAccountCredentialsEvent")]
7965    RevokeAccountCredentialsEvent(
7966        Box<crate::tools_ozone::moderation::RevokeAccountCredentialsEvent<'a>>,
7967    ),
7968    #[serde(rename = "tools.ozone.moderation.defs#scheduleTakedownEvent")]
7969    ScheduleTakedownEvent(
7970        Box<crate::tools_ozone::moderation::ScheduleTakedownEvent<'a>>,
7971    ),
7972    #[serde(rename = "tools.ozone.moderation.defs#cancelScheduledTakedownEvent")]
7973    CancelScheduledTakedownEvent(
7974        Box<crate::tools_ozone::moderation::CancelScheduledTakedownEvent<'a>>,
7975    ),
7976}
7977
7978#[jacquard_derive::open_union]
7979#[derive(
7980    serde::Serialize,
7981    serde::Deserialize,
7982    Debug,
7983    Clone,
7984    PartialEq,
7985    Eq,
7986    jacquard_derive::IntoStatic
7987)]
7988#[serde(tag = "$type")]
7989#[serde(bound(deserialize = "'de: 'a"))]
7990pub enum ModEventViewSubject<'a> {
7991    #[serde(rename = "com.atproto.admin.defs#repoRef")]
7992    RepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>),
7993    #[serde(rename = "com.atproto.repo.strongRef")]
7994    StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>),
7995    #[serde(rename = "chat.bsky.convo.defs#messageRef")]
7996    MessageRef(Box<crate::chat_bsky::convo::MessageRef<'a>>),
7997}
7998
7999impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventView<'a> {
8000    fn nsid() -> &'static str {
8001        "tools.ozone.moderation.defs"
8002    }
8003    fn def_name() -> &'static str {
8004        "modEventView"
8005    }
8006    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
8007        lexicon_doc_tools_ozone_moderation_defs()
8008    }
8009    fn validate(
8010        &self,
8011    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
8012        Ok(())
8013    }
8014}
8015
8016#[jacquard_derive::lexicon]
8017#[derive(
8018    serde::Serialize,
8019    serde::Deserialize,
8020    Debug,
8021    Clone,
8022    PartialEq,
8023    Eq,
8024    jacquard_derive::IntoStatic
8025)]
8026#[serde(rename_all = "camelCase")]
8027pub struct ModEventViewDetail<'a> {
8028    pub created_at: jacquard_common::types::string::Datetime,
8029    #[serde(borrow)]
8030    pub created_by: jacquard_common::types::string::Did<'a>,
8031    #[serde(borrow)]
8032    pub event: ModEventViewDetailEvent<'a>,
8033    pub id: i64,
8034    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8035    #[serde(borrow)]
8036    pub mod_tool: Option<crate::tools_ozone::moderation::ModTool<'a>>,
8037    #[serde(borrow)]
8038    pub subject: ModEventViewDetailSubject<'a>,
8039    #[serde(borrow)]
8040    pub subject_blobs: Vec<crate::tools_ozone::moderation::BlobView<'a>>,
8041}
8042
8043pub mod mod_event_view_detail_state {
8044
8045    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
8046    #[allow(unused)]
8047    use ::core::marker::PhantomData;
8048    mod sealed {
8049        pub trait Sealed {}
8050    }
8051    /// State trait tracking which required fields have been set
8052    pub trait State: sealed::Sealed {
8053        type Id;
8054        type Event;
8055        type Subject;
8056        type SubjectBlobs;
8057        type CreatedBy;
8058        type CreatedAt;
8059    }
8060    /// Empty state - all required fields are unset
8061    pub struct Empty(());
8062    impl sealed::Sealed for Empty {}
8063    impl State for Empty {
8064        type Id = Unset;
8065        type Event = Unset;
8066        type Subject = Unset;
8067        type SubjectBlobs = Unset;
8068        type CreatedBy = Unset;
8069        type CreatedAt = Unset;
8070    }
8071    ///State transition - sets the `id` field to Set
8072    pub struct SetId<S: State = Empty>(PhantomData<fn() -> S>);
8073    impl<S: State> sealed::Sealed for SetId<S> {}
8074    impl<S: State> State for SetId<S> {
8075        type Id = Set<members::id>;
8076        type Event = S::Event;
8077        type Subject = S::Subject;
8078        type SubjectBlobs = S::SubjectBlobs;
8079        type CreatedBy = S::CreatedBy;
8080        type CreatedAt = S::CreatedAt;
8081    }
8082    ///State transition - sets the `event` field to Set
8083    pub struct SetEvent<S: State = Empty>(PhantomData<fn() -> S>);
8084    impl<S: State> sealed::Sealed for SetEvent<S> {}
8085    impl<S: State> State for SetEvent<S> {
8086        type Id = S::Id;
8087        type Event = Set<members::event>;
8088        type Subject = S::Subject;
8089        type SubjectBlobs = S::SubjectBlobs;
8090        type CreatedBy = S::CreatedBy;
8091        type CreatedAt = S::CreatedAt;
8092    }
8093    ///State transition - sets the `subject` field to Set
8094    pub struct SetSubject<S: State = Empty>(PhantomData<fn() -> S>);
8095    impl<S: State> sealed::Sealed for SetSubject<S> {}
8096    impl<S: State> State for SetSubject<S> {
8097        type Id = S::Id;
8098        type Event = S::Event;
8099        type Subject = Set<members::subject>;
8100        type SubjectBlobs = S::SubjectBlobs;
8101        type CreatedBy = S::CreatedBy;
8102        type CreatedAt = S::CreatedAt;
8103    }
8104    ///State transition - sets the `subject_blobs` field to Set
8105    pub struct SetSubjectBlobs<S: State = Empty>(PhantomData<fn() -> S>);
8106    impl<S: State> sealed::Sealed for SetSubjectBlobs<S> {}
8107    impl<S: State> State for SetSubjectBlobs<S> {
8108        type Id = S::Id;
8109        type Event = S::Event;
8110        type Subject = S::Subject;
8111        type SubjectBlobs = Set<members::subject_blobs>;
8112        type CreatedBy = S::CreatedBy;
8113        type CreatedAt = S::CreatedAt;
8114    }
8115    ///State transition - sets the `created_by` field to Set
8116    pub struct SetCreatedBy<S: State = Empty>(PhantomData<fn() -> S>);
8117    impl<S: State> sealed::Sealed for SetCreatedBy<S> {}
8118    impl<S: State> State for SetCreatedBy<S> {
8119        type Id = S::Id;
8120        type Event = S::Event;
8121        type Subject = S::Subject;
8122        type SubjectBlobs = S::SubjectBlobs;
8123        type CreatedBy = Set<members::created_by>;
8124        type CreatedAt = S::CreatedAt;
8125    }
8126    ///State transition - sets the `created_at` field to Set
8127    pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
8128    impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
8129    impl<S: State> State for SetCreatedAt<S> {
8130        type Id = S::Id;
8131        type Event = S::Event;
8132        type Subject = S::Subject;
8133        type SubjectBlobs = S::SubjectBlobs;
8134        type CreatedBy = S::CreatedBy;
8135        type CreatedAt = Set<members::created_at>;
8136    }
8137    /// Marker types for field names
8138    #[allow(non_camel_case_types)]
8139    pub mod members {
8140        ///Marker type for the `id` field
8141        pub struct id(());
8142        ///Marker type for the `event` field
8143        pub struct event(());
8144        ///Marker type for the `subject` field
8145        pub struct subject(());
8146        ///Marker type for the `subject_blobs` field
8147        pub struct subject_blobs(());
8148        ///Marker type for the `created_by` field
8149        pub struct created_by(());
8150        ///Marker type for the `created_at` field
8151        pub struct created_at(());
8152    }
8153}
8154
8155/// Builder for constructing an instance of this type
8156pub struct ModEventViewDetailBuilder<'a, S: mod_event_view_detail_state::State> {
8157    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
8158    __unsafe_private_named: (
8159        ::core::option::Option<jacquard_common::types::string::Datetime>,
8160        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
8161        ::core::option::Option<ModEventViewDetailEvent<'a>>,
8162        ::core::option::Option<i64>,
8163        ::core::option::Option<crate::tools_ozone::moderation::ModTool<'a>>,
8164        ::core::option::Option<ModEventViewDetailSubject<'a>>,
8165        ::core::option::Option<Vec<crate::tools_ozone::moderation::BlobView<'a>>>,
8166    ),
8167    _phantom: ::core::marker::PhantomData<&'a ()>,
8168}
8169
8170impl<'a> ModEventViewDetail<'a> {
8171    /// Create a new builder for this type
8172    pub fn new() -> ModEventViewDetailBuilder<'a, mod_event_view_detail_state::Empty> {
8173        ModEventViewDetailBuilder::new()
8174    }
8175}
8176
8177impl<'a> ModEventViewDetailBuilder<'a, mod_event_view_detail_state::Empty> {
8178    /// Create a new builder with all fields unset
8179    pub fn new() -> Self {
8180        ModEventViewDetailBuilder {
8181            _phantom_state: ::core::marker::PhantomData,
8182            __unsafe_private_named: (None, None, None, None, None, None, None),
8183            _phantom: ::core::marker::PhantomData,
8184        }
8185    }
8186}
8187
8188impl<'a, S> ModEventViewDetailBuilder<'a, S>
8189where
8190    S: mod_event_view_detail_state::State,
8191    S::CreatedAt: mod_event_view_detail_state::IsUnset,
8192{
8193    /// Set the `createdAt` field (required)
8194    pub fn created_at(
8195        mut self,
8196        value: impl Into<jacquard_common::types::string::Datetime>,
8197    ) -> ModEventViewDetailBuilder<'a, mod_event_view_detail_state::SetCreatedAt<S>> {
8198        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
8199        ModEventViewDetailBuilder {
8200            _phantom_state: ::core::marker::PhantomData,
8201            __unsafe_private_named: self.__unsafe_private_named,
8202            _phantom: ::core::marker::PhantomData,
8203        }
8204    }
8205}
8206
8207impl<'a, S> ModEventViewDetailBuilder<'a, S>
8208where
8209    S: mod_event_view_detail_state::State,
8210    S::CreatedBy: mod_event_view_detail_state::IsUnset,
8211{
8212    /// Set the `createdBy` field (required)
8213    pub fn created_by(
8214        mut self,
8215        value: impl Into<jacquard_common::types::string::Did<'a>>,
8216    ) -> ModEventViewDetailBuilder<'a, mod_event_view_detail_state::SetCreatedBy<S>> {
8217        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
8218        ModEventViewDetailBuilder {
8219            _phantom_state: ::core::marker::PhantomData,
8220            __unsafe_private_named: self.__unsafe_private_named,
8221            _phantom: ::core::marker::PhantomData,
8222        }
8223    }
8224}
8225
8226impl<'a, S> ModEventViewDetailBuilder<'a, S>
8227where
8228    S: mod_event_view_detail_state::State,
8229    S::Event: mod_event_view_detail_state::IsUnset,
8230{
8231    /// Set the `event` field (required)
8232    pub fn event(
8233        mut self,
8234        value: impl Into<ModEventViewDetailEvent<'a>>,
8235    ) -> ModEventViewDetailBuilder<'a, mod_event_view_detail_state::SetEvent<S>> {
8236        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
8237        ModEventViewDetailBuilder {
8238            _phantom_state: ::core::marker::PhantomData,
8239            __unsafe_private_named: self.__unsafe_private_named,
8240            _phantom: ::core::marker::PhantomData,
8241        }
8242    }
8243}
8244
8245impl<'a, S> ModEventViewDetailBuilder<'a, S>
8246where
8247    S: mod_event_view_detail_state::State,
8248    S::Id: mod_event_view_detail_state::IsUnset,
8249{
8250    /// Set the `id` field (required)
8251    pub fn id(
8252        mut self,
8253        value: impl Into<i64>,
8254    ) -> ModEventViewDetailBuilder<'a, mod_event_view_detail_state::SetId<S>> {
8255        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
8256        ModEventViewDetailBuilder {
8257            _phantom_state: ::core::marker::PhantomData,
8258            __unsafe_private_named: self.__unsafe_private_named,
8259            _phantom: ::core::marker::PhantomData,
8260        }
8261    }
8262}
8263
8264impl<'a, S: mod_event_view_detail_state::State> ModEventViewDetailBuilder<'a, S> {
8265    /// Set the `modTool` field (optional)
8266    pub fn mod_tool(
8267        mut self,
8268        value: impl Into<Option<crate::tools_ozone::moderation::ModTool<'a>>>,
8269    ) -> Self {
8270        self.__unsafe_private_named.4 = value.into();
8271        self
8272    }
8273    /// Set the `modTool` field to an Option value (optional)
8274    pub fn maybe_mod_tool(
8275        mut self,
8276        value: Option<crate::tools_ozone::moderation::ModTool<'a>>,
8277    ) -> Self {
8278        self.__unsafe_private_named.4 = value;
8279        self
8280    }
8281}
8282
8283impl<'a, S> ModEventViewDetailBuilder<'a, S>
8284where
8285    S: mod_event_view_detail_state::State,
8286    S::Subject: mod_event_view_detail_state::IsUnset,
8287{
8288    /// Set the `subject` field (required)
8289    pub fn subject(
8290        mut self,
8291        value: impl Into<ModEventViewDetailSubject<'a>>,
8292    ) -> ModEventViewDetailBuilder<'a, mod_event_view_detail_state::SetSubject<S>> {
8293        self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
8294        ModEventViewDetailBuilder {
8295            _phantom_state: ::core::marker::PhantomData,
8296            __unsafe_private_named: self.__unsafe_private_named,
8297            _phantom: ::core::marker::PhantomData,
8298        }
8299    }
8300}
8301
8302impl<'a, S> ModEventViewDetailBuilder<'a, S>
8303where
8304    S: mod_event_view_detail_state::State,
8305    S::SubjectBlobs: mod_event_view_detail_state::IsUnset,
8306{
8307    /// Set the `subjectBlobs` field (required)
8308    pub fn subject_blobs(
8309        mut self,
8310        value: impl Into<Vec<crate::tools_ozone::moderation::BlobView<'a>>>,
8311    ) -> ModEventViewDetailBuilder<'a, mod_event_view_detail_state::SetSubjectBlobs<S>> {
8312        self.__unsafe_private_named.6 = ::core::option::Option::Some(value.into());
8313        ModEventViewDetailBuilder {
8314            _phantom_state: ::core::marker::PhantomData,
8315            __unsafe_private_named: self.__unsafe_private_named,
8316            _phantom: ::core::marker::PhantomData,
8317        }
8318    }
8319}
8320
8321impl<'a, S> ModEventViewDetailBuilder<'a, S>
8322where
8323    S: mod_event_view_detail_state::State,
8324    S::Id: mod_event_view_detail_state::IsSet,
8325    S::Event: mod_event_view_detail_state::IsSet,
8326    S::Subject: mod_event_view_detail_state::IsSet,
8327    S::SubjectBlobs: mod_event_view_detail_state::IsSet,
8328    S::CreatedBy: mod_event_view_detail_state::IsSet,
8329    S::CreatedAt: mod_event_view_detail_state::IsSet,
8330{
8331    /// Build the final struct
8332    pub fn build(self) -> ModEventViewDetail<'a> {
8333        ModEventViewDetail {
8334            created_at: self.__unsafe_private_named.0.unwrap(),
8335            created_by: self.__unsafe_private_named.1.unwrap(),
8336            event: self.__unsafe_private_named.2.unwrap(),
8337            id: self.__unsafe_private_named.3.unwrap(),
8338            mod_tool: self.__unsafe_private_named.4,
8339            subject: self.__unsafe_private_named.5.unwrap(),
8340            subject_blobs: self.__unsafe_private_named.6.unwrap(),
8341            extra_data: Default::default(),
8342        }
8343    }
8344    /// Build the final struct with custom extra_data
8345    pub fn build_with_data(
8346        self,
8347        extra_data: std::collections::BTreeMap<
8348            jacquard_common::smol_str::SmolStr,
8349            jacquard_common::types::value::Data<'a>,
8350        >,
8351    ) -> ModEventViewDetail<'a> {
8352        ModEventViewDetail {
8353            created_at: self.__unsafe_private_named.0.unwrap(),
8354            created_by: self.__unsafe_private_named.1.unwrap(),
8355            event: self.__unsafe_private_named.2.unwrap(),
8356            id: self.__unsafe_private_named.3.unwrap(),
8357            mod_tool: self.__unsafe_private_named.4,
8358            subject: self.__unsafe_private_named.5.unwrap(),
8359            subject_blobs: self.__unsafe_private_named.6.unwrap(),
8360            extra_data: Some(extra_data),
8361        }
8362    }
8363}
8364
8365#[jacquard_derive::open_union]
8366#[derive(
8367    serde::Serialize,
8368    serde::Deserialize,
8369    Debug,
8370    Clone,
8371    PartialEq,
8372    Eq,
8373    jacquard_derive::IntoStatic
8374)]
8375#[serde(tag = "$type")]
8376#[serde(bound(deserialize = "'de: 'a"))]
8377pub enum ModEventViewDetailEvent<'a> {
8378    #[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")]
8379    ModEventTakedown(Box<crate::tools_ozone::moderation::ModEventTakedown<'a>>),
8380    #[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")]
8381    ModEventReverseTakedown(
8382        Box<crate::tools_ozone::moderation::ModEventReverseTakedown<'a>>,
8383    ),
8384    #[serde(rename = "tools.ozone.moderation.defs#modEventComment")]
8385    ModEventComment(Box<crate::tools_ozone::moderation::ModEventComment<'a>>),
8386    #[serde(rename = "tools.ozone.moderation.defs#modEventReport")]
8387    ModEventReport(Box<crate::tools_ozone::moderation::ModEventReport<'a>>),
8388    #[serde(rename = "tools.ozone.moderation.defs#modEventLabel")]
8389    ModEventLabel(Box<crate::tools_ozone::moderation::ModEventLabel<'a>>),
8390    #[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")]
8391    ModEventAcknowledge(Box<crate::tools_ozone::moderation::ModEventAcknowledge<'a>>),
8392    #[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")]
8393    ModEventEscalate(Box<crate::tools_ozone::moderation::ModEventEscalate<'a>>),
8394    #[serde(rename = "tools.ozone.moderation.defs#modEventMute")]
8395    ModEventMute(Box<crate::tools_ozone::moderation::ModEventMute<'a>>),
8396    #[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")]
8397    ModEventUnmute(Box<crate::tools_ozone::moderation::ModEventUnmute<'a>>),
8398    #[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")]
8399    ModEventMuteReporter(Box<crate::tools_ozone::moderation::ModEventMuteReporter<'a>>),
8400    #[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")]
8401    ModEventUnmuteReporter(
8402        Box<crate::tools_ozone::moderation::ModEventUnmuteReporter<'a>>,
8403    ),
8404    #[serde(rename = "tools.ozone.moderation.defs#modEventEmail")]
8405    ModEventEmail(Box<crate::tools_ozone::moderation::ModEventEmail<'a>>),
8406    #[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")]
8407    ModEventResolveAppeal(
8408        Box<crate::tools_ozone::moderation::ModEventResolveAppeal<'a>>,
8409    ),
8410    #[serde(rename = "tools.ozone.moderation.defs#modEventDivert")]
8411    ModEventDivert(Box<crate::tools_ozone::moderation::ModEventDivert<'a>>),
8412    #[serde(rename = "tools.ozone.moderation.defs#modEventTag")]
8413    ModEventTag(Box<crate::tools_ozone::moderation::ModEventTag<'a>>),
8414    #[serde(rename = "tools.ozone.moderation.defs#accountEvent")]
8415    AccountEvent(Box<crate::tools_ozone::moderation::AccountEvent<'a>>),
8416    #[serde(rename = "tools.ozone.moderation.defs#identityEvent")]
8417    IdentityEvent(Box<crate::tools_ozone::moderation::IdentityEvent<'a>>),
8418    #[serde(rename = "tools.ozone.moderation.defs#recordEvent")]
8419    RecordEvent(Box<crate::tools_ozone::moderation::RecordEvent<'a>>),
8420    #[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")]
8421    ModEventPriorityScore(
8422        Box<crate::tools_ozone::moderation::ModEventPriorityScore<'a>>,
8423    ),
8424    #[serde(rename = "tools.ozone.moderation.defs#ageAssuranceEvent")]
8425    AgeAssuranceEvent(Box<crate::tools_ozone::moderation::AgeAssuranceEvent<'a>>),
8426    #[serde(rename = "tools.ozone.moderation.defs#ageAssuranceOverrideEvent")]
8427    AgeAssuranceOverrideEvent(
8428        Box<crate::tools_ozone::moderation::AgeAssuranceOverrideEvent<'a>>,
8429    ),
8430    #[serde(rename = "tools.ozone.moderation.defs#revokeAccountCredentialsEvent")]
8431    RevokeAccountCredentialsEvent(
8432        Box<crate::tools_ozone::moderation::RevokeAccountCredentialsEvent<'a>>,
8433    ),
8434    #[serde(rename = "tools.ozone.moderation.defs#scheduleTakedownEvent")]
8435    ScheduleTakedownEvent(
8436        Box<crate::tools_ozone::moderation::ScheduleTakedownEvent<'a>>,
8437    ),
8438    #[serde(rename = "tools.ozone.moderation.defs#cancelScheduledTakedownEvent")]
8439    CancelScheduledTakedownEvent(
8440        Box<crate::tools_ozone::moderation::CancelScheduledTakedownEvent<'a>>,
8441    ),
8442}
8443
8444#[jacquard_derive::open_union]
8445#[derive(
8446    serde::Serialize,
8447    serde::Deserialize,
8448    Debug,
8449    Clone,
8450    PartialEq,
8451    Eq,
8452    jacquard_derive::IntoStatic
8453)]
8454#[serde(tag = "$type")]
8455#[serde(bound(deserialize = "'de: 'a"))]
8456pub enum ModEventViewDetailSubject<'a> {
8457    #[serde(rename = "tools.ozone.moderation.defs#repoView")]
8458    RepoView(Box<crate::tools_ozone::moderation::RepoView<'a>>),
8459    #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")]
8460    RepoViewNotFound(Box<crate::tools_ozone::moderation::RepoViewNotFound<'a>>),
8461    #[serde(rename = "tools.ozone.moderation.defs#recordView")]
8462    RecordView(Box<crate::tools_ozone::moderation::RecordView<'a>>),
8463    #[serde(rename = "tools.ozone.moderation.defs#recordViewNotFound")]
8464    RecordViewNotFound(Box<crate::tools_ozone::moderation::RecordViewNotFound<'a>>),
8465}
8466
8467impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModEventViewDetail<'a> {
8468    fn nsid() -> &'static str {
8469        "tools.ozone.moderation.defs"
8470    }
8471    fn def_name() -> &'static str {
8472        "modEventViewDetail"
8473    }
8474    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
8475        lexicon_doc_tools_ozone_moderation_defs()
8476    }
8477    fn validate(
8478        &self,
8479    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
8480        Ok(())
8481    }
8482}
8483
8484/// Moderation tool information for tracing the source of the action
8485#[jacquard_derive::lexicon]
8486#[derive(
8487    serde::Serialize,
8488    serde::Deserialize,
8489    Debug,
8490    Clone,
8491    PartialEq,
8492    Eq,
8493    jacquard_derive::IntoStatic,
8494    Default
8495)]
8496#[serde(rename_all = "camelCase")]
8497pub struct ModTool<'a> {
8498    /// Additional arbitrary metadata about the source
8499    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8500    #[serde(borrow)]
8501    pub meta: std::option::Option<jacquard_common::types::value::Data<'a>>,
8502    /// Name/identifier of the source (e.g., 'automod', 'ozone/workspace')
8503    #[serde(borrow)]
8504    pub name: jacquard_common::CowStr<'a>,
8505}
8506
8507impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModTool<'a> {
8508    fn nsid() -> &'static str {
8509        "tools.ozone.moderation.defs"
8510    }
8511    fn def_name() -> &'static str {
8512        "modTool"
8513    }
8514    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
8515        lexicon_doc_tools_ozone_moderation_defs()
8516    }
8517    fn validate(
8518        &self,
8519    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
8520        Ok(())
8521    }
8522}
8523
8524#[jacquard_derive::lexicon]
8525#[derive(
8526    serde::Serialize,
8527    serde::Deserialize,
8528    Debug,
8529    Clone,
8530    PartialEq,
8531    Eq,
8532    jacquard_derive::IntoStatic,
8533    Default
8534)]
8535#[serde(rename_all = "camelCase")]
8536pub struct Moderation<'a> {
8537    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8538    #[serde(borrow)]
8539    pub subject_status: std::option::Option<
8540        crate::tools_ozone::moderation::SubjectStatusView<'a>,
8541    >,
8542}
8543
8544impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Moderation<'a> {
8545    fn nsid() -> &'static str {
8546        "tools.ozone.moderation.defs"
8547    }
8548    fn def_name() -> &'static str {
8549        "moderation"
8550    }
8551    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
8552        lexicon_doc_tools_ozone_moderation_defs()
8553    }
8554    fn validate(
8555        &self,
8556    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
8557        Ok(())
8558    }
8559}
8560
8561#[jacquard_derive::lexicon]
8562#[derive(
8563    serde::Serialize,
8564    serde::Deserialize,
8565    Debug,
8566    Clone,
8567    PartialEq,
8568    Eq,
8569    jacquard_derive::IntoStatic,
8570    Default
8571)]
8572#[serde(rename_all = "camelCase")]
8573pub struct ModerationDetail<'a> {
8574    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8575    #[serde(borrow)]
8576    pub subject_status: std::option::Option<
8577        crate::tools_ozone::moderation::SubjectStatusView<'a>,
8578    >,
8579}
8580
8581impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ModerationDetail<'a> {
8582    fn nsid() -> &'static str {
8583        "tools.ozone.moderation.defs"
8584    }
8585    fn def_name() -> &'static str {
8586        "moderationDetail"
8587    }
8588    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
8589        lexicon_doc_tools_ozone_moderation_defs()
8590    }
8591    fn validate(
8592        &self,
8593    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
8594        Ok(())
8595    }
8596}
8597
8598/// Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.
8599#[jacquard_derive::lexicon]
8600#[derive(
8601    serde::Serialize,
8602    serde::Deserialize,
8603    Debug,
8604    Clone,
8605    PartialEq,
8606    Eq,
8607    jacquard_derive::IntoStatic
8608)]
8609#[serde(rename_all = "camelCase")]
8610pub struct RecordEvent<'a> {
8611    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8612    #[serde(borrow)]
8613    pub cid: Option<jacquard_common::types::string::Cid<'a>>,
8614    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8615    #[serde(borrow)]
8616    pub comment: Option<jacquard_common::CowStr<'a>>,
8617    #[serde(borrow)]
8618    pub op: jacquard_common::CowStr<'a>,
8619    pub timestamp: jacquard_common::types::string::Datetime,
8620}
8621
8622pub mod record_event_state {
8623
8624    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
8625    #[allow(unused)]
8626    use ::core::marker::PhantomData;
8627    mod sealed {
8628        pub trait Sealed {}
8629    }
8630    /// State trait tracking which required fields have been set
8631    pub trait State: sealed::Sealed {
8632        type Timestamp;
8633        type Op;
8634    }
8635    /// Empty state - all required fields are unset
8636    pub struct Empty(());
8637    impl sealed::Sealed for Empty {}
8638    impl State for Empty {
8639        type Timestamp = Unset;
8640        type Op = Unset;
8641    }
8642    ///State transition - sets the `timestamp` field to Set
8643    pub struct SetTimestamp<S: State = Empty>(PhantomData<fn() -> S>);
8644    impl<S: State> sealed::Sealed for SetTimestamp<S> {}
8645    impl<S: State> State for SetTimestamp<S> {
8646        type Timestamp = Set<members::timestamp>;
8647        type Op = S::Op;
8648    }
8649    ///State transition - sets the `op` field to Set
8650    pub struct SetOp<S: State = Empty>(PhantomData<fn() -> S>);
8651    impl<S: State> sealed::Sealed for SetOp<S> {}
8652    impl<S: State> State for SetOp<S> {
8653        type Timestamp = S::Timestamp;
8654        type Op = Set<members::op>;
8655    }
8656    /// Marker types for field names
8657    #[allow(non_camel_case_types)]
8658    pub mod members {
8659        ///Marker type for the `timestamp` field
8660        pub struct timestamp(());
8661        ///Marker type for the `op` field
8662        pub struct op(());
8663    }
8664}
8665
8666/// Builder for constructing an instance of this type
8667pub struct RecordEventBuilder<'a, S: record_event_state::State> {
8668    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
8669    __unsafe_private_named: (
8670        ::core::option::Option<jacquard_common::types::string::Cid<'a>>,
8671        ::core::option::Option<jacquard_common::CowStr<'a>>,
8672        ::core::option::Option<jacquard_common::CowStr<'a>>,
8673        ::core::option::Option<jacquard_common::types::string::Datetime>,
8674    ),
8675    _phantom: ::core::marker::PhantomData<&'a ()>,
8676}
8677
8678impl<'a> RecordEvent<'a> {
8679    /// Create a new builder for this type
8680    pub fn new() -> RecordEventBuilder<'a, record_event_state::Empty> {
8681        RecordEventBuilder::new()
8682    }
8683}
8684
8685impl<'a> RecordEventBuilder<'a, record_event_state::Empty> {
8686    /// Create a new builder with all fields unset
8687    pub fn new() -> Self {
8688        RecordEventBuilder {
8689            _phantom_state: ::core::marker::PhantomData,
8690            __unsafe_private_named: (None, None, None, None),
8691            _phantom: ::core::marker::PhantomData,
8692        }
8693    }
8694}
8695
8696impl<'a, S: record_event_state::State> RecordEventBuilder<'a, S> {
8697    /// Set the `cid` field (optional)
8698    pub fn cid(
8699        mut self,
8700        value: impl Into<Option<jacquard_common::types::string::Cid<'a>>>,
8701    ) -> Self {
8702        self.__unsafe_private_named.0 = value.into();
8703        self
8704    }
8705    /// Set the `cid` field to an Option value (optional)
8706    pub fn maybe_cid(
8707        mut self,
8708        value: Option<jacquard_common::types::string::Cid<'a>>,
8709    ) -> Self {
8710        self.__unsafe_private_named.0 = value;
8711        self
8712    }
8713}
8714
8715impl<'a, S: record_event_state::State> RecordEventBuilder<'a, S> {
8716    /// Set the `comment` field (optional)
8717    pub fn comment(
8718        mut self,
8719        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
8720    ) -> Self {
8721        self.__unsafe_private_named.1 = value.into();
8722        self
8723    }
8724    /// Set the `comment` field to an Option value (optional)
8725    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
8726        self.__unsafe_private_named.1 = value;
8727        self
8728    }
8729}
8730
8731impl<'a, S> RecordEventBuilder<'a, S>
8732where
8733    S: record_event_state::State,
8734    S::Op: record_event_state::IsUnset,
8735{
8736    /// Set the `op` field (required)
8737    pub fn op(
8738        mut self,
8739        value: impl Into<jacquard_common::CowStr<'a>>,
8740    ) -> RecordEventBuilder<'a, record_event_state::SetOp<S>> {
8741        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
8742        RecordEventBuilder {
8743            _phantom_state: ::core::marker::PhantomData,
8744            __unsafe_private_named: self.__unsafe_private_named,
8745            _phantom: ::core::marker::PhantomData,
8746        }
8747    }
8748}
8749
8750impl<'a, S> RecordEventBuilder<'a, S>
8751where
8752    S: record_event_state::State,
8753    S::Timestamp: record_event_state::IsUnset,
8754{
8755    /// Set the `timestamp` field (required)
8756    pub fn timestamp(
8757        mut self,
8758        value: impl Into<jacquard_common::types::string::Datetime>,
8759    ) -> RecordEventBuilder<'a, record_event_state::SetTimestamp<S>> {
8760        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
8761        RecordEventBuilder {
8762            _phantom_state: ::core::marker::PhantomData,
8763            __unsafe_private_named: self.__unsafe_private_named,
8764            _phantom: ::core::marker::PhantomData,
8765        }
8766    }
8767}
8768
8769impl<'a, S> RecordEventBuilder<'a, S>
8770where
8771    S: record_event_state::State,
8772    S::Timestamp: record_event_state::IsSet,
8773    S::Op: record_event_state::IsSet,
8774{
8775    /// Build the final struct
8776    pub fn build(self) -> RecordEvent<'a> {
8777        RecordEvent {
8778            cid: self.__unsafe_private_named.0,
8779            comment: self.__unsafe_private_named.1,
8780            op: self.__unsafe_private_named.2.unwrap(),
8781            timestamp: self.__unsafe_private_named.3.unwrap(),
8782            extra_data: Default::default(),
8783        }
8784    }
8785    /// Build the final struct with custom extra_data
8786    pub fn build_with_data(
8787        self,
8788        extra_data: std::collections::BTreeMap<
8789            jacquard_common::smol_str::SmolStr,
8790            jacquard_common::types::value::Data<'a>,
8791        >,
8792    ) -> RecordEvent<'a> {
8793        RecordEvent {
8794            cid: self.__unsafe_private_named.0,
8795            comment: self.__unsafe_private_named.1,
8796            op: self.__unsafe_private_named.2.unwrap(),
8797            timestamp: self.__unsafe_private_named.3.unwrap(),
8798            extra_data: Some(extra_data),
8799        }
8800    }
8801}
8802
8803impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RecordEvent<'a> {
8804    fn nsid() -> &'static str {
8805        "tools.ozone.moderation.defs"
8806    }
8807    fn def_name() -> &'static str {
8808        "recordEvent"
8809    }
8810    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
8811        lexicon_doc_tools_ozone_moderation_defs()
8812    }
8813    fn validate(
8814        &self,
8815    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
8816        Ok(())
8817    }
8818}
8819
8820#[jacquard_derive::lexicon]
8821#[derive(
8822    serde::Serialize,
8823    serde::Deserialize,
8824    Debug,
8825    Clone,
8826    PartialEq,
8827    Eq,
8828    jacquard_derive::IntoStatic,
8829    Default
8830)]
8831#[serde(rename_all = "camelCase")]
8832pub struct RecordHosting<'a> {
8833    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8834    pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
8835    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8836    pub deleted_at: std::option::Option<jacquard_common::types::string::Datetime>,
8837    #[serde(borrow)]
8838    pub status: jacquard_common::CowStr<'a>,
8839    #[serde(skip_serializing_if = "std::option::Option::is_none")]
8840    pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>,
8841}
8842
8843impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RecordHosting<'a> {
8844    fn nsid() -> &'static str {
8845        "tools.ozone.moderation.defs"
8846    }
8847    fn def_name() -> &'static str {
8848        "recordHosting"
8849    }
8850    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
8851        lexicon_doc_tools_ozone_moderation_defs()
8852    }
8853    fn validate(
8854        &self,
8855    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
8856        Ok(())
8857    }
8858}
8859
8860#[jacquard_derive::lexicon]
8861#[derive(
8862    serde::Serialize,
8863    serde::Deserialize,
8864    Debug,
8865    Clone,
8866    PartialEq,
8867    Eq,
8868    jacquard_derive::IntoStatic
8869)]
8870#[serde(rename_all = "camelCase")]
8871pub struct RecordView<'a> {
8872    #[serde(borrow)]
8873    pub blob_cids: Vec<jacquard_common::types::string::Cid<'a>>,
8874    #[serde(borrow)]
8875    pub cid: jacquard_common::types::string::Cid<'a>,
8876    pub indexed_at: jacquard_common::types::string::Datetime,
8877    #[serde(borrow)]
8878    pub moderation: crate::tools_ozone::moderation::Moderation<'a>,
8879    #[serde(borrow)]
8880    pub repo: crate::tools_ozone::moderation::RepoView<'a>,
8881    #[serde(borrow)]
8882    pub uri: jacquard_common::types::string::AtUri<'a>,
8883    #[serde(borrow)]
8884    pub value: jacquard_common::types::value::Data<'a>,
8885}
8886
8887pub mod record_view_state {
8888
8889    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
8890    #[allow(unused)]
8891    use ::core::marker::PhantomData;
8892    mod sealed {
8893        pub trait Sealed {}
8894    }
8895    /// State trait tracking which required fields have been set
8896    pub trait State: sealed::Sealed {
8897        type Uri;
8898        type Cid;
8899        type Value;
8900        type BlobCids;
8901        type IndexedAt;
8902        type Moderation;
8903        type Repo;
8904    }
8905    /// Empty state - all required fields are unset
8906    pub struct Empty(());
8907    impl sealed::Sealed for Empty {}
8908    impl State for Empty {
8909        type Uri = Unset;
8910        type Cid = Unset;
8911        type Value = Unset;
8912        type BlobCids = Unset;
8913        type IndexedAt = Unset;
8914        type Moderation = Unset;
8915        type Repo = Unset;
8916    }
8917    ///State transition - sets the `uri` field to Set
8918    pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
8919    impl<S: State> sealed::Sealed for SetUri<S> {}
8920    impl<S: State> State for SetUri<S> {
8921        type Uri = Set<members::uri>;
8922        type Cid = S::Cid;
8923        type Value = S::Value;
8924        type BlobCids = S::BlobCids;
8925        type IndexedAt = S::IndexedAt;
8926        type Moderation = S::Moderation;
8927        type Repo = S::Repo;
8928    }
8929    ///State transition - sets the `cid` field to Set
8930    pub struct SetCid<S: State = Empty>(PhantomData<fn() -> S>);
8931    impl<S: State> sealed::Sealed for SetCid<S> {}
8932    impl<S: State> State for SetCid<S> {
8933        type Uri = S::Uri;
8934        type Cid = Set<members::cid>;
8935        type Value = S::Value;
8936        type BlobCids = S::BlobCids;
8937        type IndexedAt = S::IndexedAt;
8938        type Moderation = S::Moderation;
8939        type Repo = S::Repo;
8940    }
8941    ///State transition - sets the `value` field to Set
8942    pub struct SetValue<S: State = Empty>(PhantomData<fn() -> S>);
8943    impl<S: State> sealed::Sealed for SetValue<S> {}
8944    impl<S: State> State for SetValue<S> {
8945        type Uri = S::Uri;
8946        type Cid = S::Cid;
8947        type Value = Set<members::value>;
8948        type BlobCids = S::BlobCids;
8949        type IndexedAt = S::IndexedAt;
8950        type Moderation = S::Moderation;
8951        type Repo = S::Repo;
8952    }
8953    ///State transition - sets the `blob_cids` field to Set
8954    pub struct SetBlobCids<S: State = Empty>(PhantomData<fn() -> S>);
8955    impl<S: State> sealed::Sealed for SetBlobCids<S> {}
8956    impl<S: State> State for SetBlobCids<S> {
8957        type Uri = S::Uri;
8958        type Cid = S::Cid;
8959        type Value = S::Value;
8960        type BlobCids = Set<members::blob_cids>;
8961        type IndexedAt = S::IndexedAt;
8962        type Moderation = S::Moderation;
8963        type Repo = S::Repo;
8964    }
8965    ///State transition - sets the `indexed_at` field to Set
8966    pub struct SetIndexedAt<S: State = Empty>(PhantomData<fn() -> S>);
8967    impl<S: State> sealed::Sealed for SetIndexedAt<S> {}
8968    impl<S: State> State for SetIndexedAt<S> {
8969        type Uri = S::Uri;
8970        type Cid = S::Cid;
8971        type Value = S::Value;
8972        type BlobCids = S::BlobCids;
8973        type IndexedAt = Set<members::indexed_at>;
8974        type Moderation = S::Moderation;
8975        type Repo = S::Repo;
8976    }
8977    ///State transition - sets the `moderation` field to Set
8978    pub struct SetModeration<S: State = Empty>(PhantomData<fn() -> S>);
8979    impl<S: State> sealed::Sealed for SetModeration<S> {}
8980    impl<S: State> State for SetModeration<S> {
8981        type Uri = S::Uri;
8982        type Cid = S::Cid;
8983        type Value = S::Value;
8984        type BlobCids = S::BlobCids;
8985        type IndexedAt = S::IndexedAt;
8986        type Moderation = Set<members::moderation>;
8987        type Repo = S::Repo;
8988    }
8989    ///State transition - sets the `repo` field to Set
8990    pub struct SetRepo<S: State = Empty>(PhantomData<fn() -> S>);
8991    impl<S: State> sealed::Sealed for SetRepo<S> {}
8992    impl<S: State> State for SetRepo<S> {
8993        type Uri = S::Uri;
8994        type Cid = S::Cid;
8995        type Value = S::Value;
8996        type BlobCids = S::BlobCids;
8997        type IndexedAt = S::IndexedAt;
8998        type Moderation = S::Moderation;
8999        type Repo = Set<members::repo>;
9000    }
9001    /// Marker types for field names
9002    #[allow(non_camel_case_types)]
9003    pub mod members {
9004        ///Marker type for the `uri` field
9005        pub struct uri(());
9006        ///Marker type for the `cid` field
9007        pub struct cid(());
9008        ///Marker type for the `value` field
9009        pub struct value(());
9010        ///Marker type for the `blob_cids` field
9011        pub struct blob_cids(());
9012        ///Marker type for the `indexed_at` field
9013        pub struct indexed_at(());
9014        ///Marker type for the `moderation` field
9015        pub struct moderation(());
9016        ///Marker type for the `repo` field
9017        pub struct repo(());
9018    }
9019}
9020
9021/// Builder for constructing an instance of this type
9022pub struct RecordViewBuilder<'a, S: record_view_state::State> {
9023    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
9024    __unsafe_private_named: (
9025        ::core::option::Option<Vec<jacquard_common::types::string::Cid<'a>>>,
9026        ::core::option::Option<jacquard_common::types::string::Cid<'a>>,
9027        ::core::option::Option<jacquard_common::types::string::Datetime>,
9028        ::core::option::Option<crate::tools_ozone::moderation::Moderation<'a>>,
9029        ::core::option::Option<crate::tools_ozone::moderation::RepoView<'a>>,
9030        ::core::option::Option<jacquard_common::types::string::AtUri<'a>>,
9031        ::core::option::Option<jacquard_common::types::value::Data<'a>>,
9032    ),
9033    _phantom: ::core::marker::PhantomData<&'a ()>,
9034}
9035
9036impl<'a> RecordView<'a> {
9037    /// Create a new builder for this type
9038    pub fn new() -> RecordViewBuilder<'a, record_view_state::Empty> {
9039        RecordViewBuilder::new()
9040    }
9041}
9042
9043impl<'a> RecordViewBuilder<'a, record_view_state::Empty> {
9044    /// Create a new builder with all fields unset
9045    pub fn new() -> Self {
9046        RecordViewBuilder {
9047            _phantom_state: ::core::marker::PhantomData,
9048            __unsafe_private_named: (None, None, None, None, None, None, None),
9049            _phantom: ::core::marker::PhantomData,
9050        }
9051    }
9052}
9053
9054impl<'a, S> RecordViewBuilder<'a, S>
9055where
9056    S: record_view_state::State,
9057    S::BlobCids: record_view_state::IsUnset,
9058{
9059    /// Set the `blobCids` field (required)
9060    pub fn blob_cids(
9061        mut self,
9062        value: impl Into<Vec<jacquard_common::types::string::Cid<'a>>>,
9063    ) -> RecordViewBuilder<'a, record_view_state::SetBlobCids<S>> {
9064        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
9065        RecordViewBuilder {
9066            _phantom_state: ::core::marker::PhantomData,
9067            __unsafe_private_named: self.__unsafe_private_named,
9068            _phantom: ::core::marker::PhantomData,
9069        }
9070    }
9071}
9072
9073impl<'a, S> RecordViewBuilder<'a, S>
9074where
9075    S: record_view_state::State,
9076    S::Cid: record_view_state::IsUnset,
9077{
9078    /// Set the `cid` field (required)
9079    pub fn cid(
9080        mut self,
9081        value: impl Into<jacquard_common::types::string::Cid<'a>>,
9082    ) -> RecordViewBuilder<'a, record_view_state::SetCid<S>> {
9083        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
9084        RecordViewBuilder {
9085            _phantom_state: ::core::marker::PhantomData,
9086            __unsafe_private_named: self.__unsafe_private_named,
9087            _phantom: ::core::marker::PhantomData,
9088        }
9089    }
9090}
9091
9092impl<'a, S> RecordViewBuilder<'a, S>
9093where
9094    S: record_view_state::State,
9095    S::IndexedAt: record_view_state::IsUnset,
9096{
9097    /// Set the `indexedAt` field (required)
9098    pub fn indexed_at(
9099        mut self,
9100        value: impl Into<jacquard_common::types::string::Datetime>,
9101    ) -> RecordViewBuilder<'a, record_view_state::SetIndexedAt<S>> {
9102        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
9103        RecordViewBuilder {
9104            _phantom_state: ::core::marker::PhantomData,
9105            __unsafe_private_named: self.__unsafe_private_named,
9106            _phantom: ::core::marker::PhantomData,
9107        }
9108    }
9109}
9110
9111impl<'a, S> RecordViewBuilder<'a, S>
9112where
9113    S: record_view_state::State,
9114    S::Moderation: record_view_state::IsUnset,
9115{
9116    /// Set the `moderation` field (required)
9117    pub fn moderation(
9118        mut self,
9119        value: impl Into<crate::tools_ozone::moderation::Moderation<'a>>,
9120    ) -> RecordViewBuilder<'a, record_view_state::SetModeration<S>> {
9121        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
9122        RecordViewBuilder {
9123            _phantom_state: ::core::marker::PhantomData,
9124            __unsafe_private_named: self.__unsafe_private_named,
9125            _phantom: ::core::marker::PhantomData,
9126        }
9127    }
9128}
9129
9130impl<'a, S> RecordViewBuilder<'a, S>
9131where
9132    S: record_view_state::State,
9133    S::Repo: record_view_state::IsUnset,
9134{
9135    /// Set the `repo` field (required)
9136    pub fn repo(
9137        mut self,
9138        value: impl Into<crate::tools_ozone::moderation::RepoView<'a>>,
9139    ) -> RecordViewBuilder<'a, record_view_state::SetRepo<S>> {
9140        self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
9141        RecordViewBuilder {
9142            _phantom_state: ::core::marker::PhantomData,
9143            __unsafe_private_named: self.__unsafe_private_named,
9144            _phantom: ::core::marker::PhantomData,
9145        }
9146    }
9147}
9148
9149impl<'a, S> RecordViewBuilder<'a, S>
9150where
9151    S: record_view_state::State,
9152    S::Uri: record_view_state::IsUnset,
9153{
9154    /// Set the `uri` field (required)
9155    pub fn uri(
9156        mut self,
9157        value: impl Into<jacquard_common::types::string::AtUri<'a>>,
9158    ) -> RecordViewBuilder<'a, record_view_state::SetUri<S>> {
9159        self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
9160        RecordViewBuilder {
9161            _phantom_state: ::core::marker::PhantomData,
9162            __unsafe_private_named: self.__unsafe_private_named,
9163            _phantom: ::core::marker::PhantomData,
9164        }
9165    }
9166}
9167
9168impl<'a, S> RecordViewBuilder<'a, S>
9169where
9170    S: record_view_state::State,
9171    S::Value: record_view_state::IsUnset,
9172{
9173    /// Set the `value` field (required)
9174    pub fn value(
9175        mut self,
9176        value: impl Into<jacquard_common::types::value::Data<'a>>,
9177    ) -> RecordViewBuilder<'a, record_view_state::SetValue<S>> {
9178        self.__unsafe_private_named.6 = ::core::option::Option::Some(value.into());
9179        RecordViewBuilder {
9180            _phantom_state: ::core::marker::PhantomData,
9181            __unsafe_private_named: self.__unsafe_private_named,
9182            _phantom: ::core::marker::PhantomData,
9183        }
9184    }
9185}
9186
9187impl<'a, S> RecordViewBuilder<'a, S>
9188where
9189    S: record_view_state::State,
9190    S::Uri: record_view_state::IsSet,
9191    S::Cid: record_view_state::IsSet,
9192    S::Value: record_view_state::IsSet,
9193    S::BlobCids: record_view_state::IsSet,
9194    S::IndexedAt: record_view_state::IsSet,
9195    S::Moderation: record_view_state::IsSet,
9196    S::Repo: record_view_state::IsSet,
9197{
9198    /// Build the final struct
9199    pub fn build(self) -> RecordView<'a> {
9200        RecordView {
9201            blob_cids: self.__unsafe_private_named.0.unwrap(),
9202            cid: self.__unsafe_private_named.1.unwrap(),
9203            indexed_at: self.__unsafe_private_named.2.unwrap(),
9204            moderation: self.__unsafe_private_named.3.unwrap(),
9205            repo: self.__unsafe_private_named.4.unwrap(),
9206            uri: self.__unsafe_private_named.5.unwrap(),
9207            value: self.__unsafe_private_named.6.unwrap(),
9208            extra_data: Default::default(),
9209        }
9210    }
9211    /// Build the final struct with custom extra_data
9212    pub fn build_with_data(
9213        self,
9214        extra_data: std::collections::BTreeMap<
9215            jacquard_common::smol_str::SmolStr,
9216            jacquard_common::types::value::Data<'a>,
9217        >,
9218    ) -> RecordView<'a> {
9219        RecordView {
9220            blob_cids: self.__unsafe_private_named.0.unwrap(),
9221            cid: self.__unsafe_private_named.1.unwrap(),
9222            indexed_at: self.__unsafe_private_named.2.unwrap(),
9223            moderation: self.__unsafe_private_named.3.unwrap(),
9224            repo: self.__unsafe_private_named.4.unwrap(),
9225            uri: self.__unsafe_private_named.5.unwrap(),
9226            value: self.__unsafe_private_named.6.unwrap(),
9227            extra_data: Some(extra_data),
9228        }
9229    }
9230}
9231
9232impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RecordView<'a> {
9233    fn nsid() -> &'static str {
9234        "tools.ozone.moderation.defs"
9235    }
9236    fn def_name() -> &'static str {
9237        "recordView"
9238    }
9239    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
9240        lexicon_doc_tools_ozone_moderation_defs()
9241    }
9242    fn validate(
9243        &self,
9244    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
9245        Ok(())
9246    }
9247}
9248
9249#[jacquard_derive::lexicon]
9250#[derive(
9251    serde::Serialize,
9252    serde::Deserialize,
9253    Debug,
9254    Clone,
9255    PartialEq,
9256    Eq,
9257    jacquard_derive::IntoStatic
9258)]
9259#[serde(rename_all = "camelCase")]
9260pub struct RecordViewDetail<'a> {
9261    #[serde(borrow)]
9262    pub blobs: Vec<crate::tools_ozone::moderation::BlobView<'a>>,
9263    #[serde(borrow)]
9264    pub cid: jacquard_common::types::string::Cid<'a>,
9265    pub indexed_at: jacquard_common::types::string::Datetime,
9266    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9267    #[serde(borrow)]
9268    pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>,
9269    #[serde(borrow)]
9270    pub moderation: crate::tools_ozone::moderation::ModerationDetail<'a>,
9271    #[serde(borrow)]
9272    pub repo: crate::tools_ozone::moderation::RepoView<'a>,
9273    #[serde(borrow)]
9274    pub uri: jacquard_common::types::string::AtUri<'a>,
9275    #[serde(borrow)]
9276    pub value: jacquard_common::types::value::Data<'a>,
9277}
9278
9279pub mod record_view_detail_state {
9280
9281    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
9282    #[allow(unused)]
9283    use ::core::marker::PhantomData;
9284    mod sealed {
9285        pub trait Sealed {}
9286    }
9287    /// State trait tracking which required fields have been set
9288    pub trait State: sealed::Sealed {
9289        type Uri;
9290        type Cid;
9291        type Value;
9292        type Blobs;
9293        type IndexedAt;
9294        type Moderation;
9295        type Repo;
9296    }
9297    /// Empty state - all required fields are unset
9298    pub struct Empty(());
9299    impl sealed::Sealed for Empty {}
9300    impl State for Empty {
9301        type Uri = Unset;
9302        type Cid = Unset;
9303        type Value = Unset;
9304        type Blobs = Unset;
9305        type IndexedAt = Unset;
9306        type Moderation = Unset;
9307        type Repo = Unset;
9308    }
9309    ///State transition - sets the `uri` field to Set
9310    pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
9311    impl<S: State> sealed::Sealed for SetUri<S> {}
9312    impl<S: State> State for SetUri<S> {
9313        type Uri = Set<members::uri>;
9314        type Cid = S::Cid;
9315        type Value = S::Value;
9316        type Blobs = S::Blobs;
9317        type IndexedAt = S::IndexedAt;
9318        type Moderation = S::Moderation;
9319        type Repo = S::Repo;
9320    }
9321    ///State transition - sets the `cid` field to Set
9322    pub struct SetCid<S: State = Empty>(PhantomData<fn() -> S>);
9323    impl<S: State> sealed::Sealed for SetCid<S> {}
9324    impl<S: State> State for SetCid<S> {
9325        type Uri = S::Uri;
9326        type Cid = Set<members::cid>;
9327        type Value = S::Value;
9328        type Blobs = S::Blobs;
9329        type IndexedAt = S::IndexedAt;
9330        type Moderation = S::Moderation;
9331        type Repo = S::Repo;
9332    }
9333    ///State transition - sets the `value` field to Set
9334    pub struct SetValue<S: State = Empty>(PhantomData<fn() -> S>);
9335    impl<S: State> sealed::Sealed for SetValue<S> {}
9336    impl<S: State> State for SetValue<S> {
9337        type Uri = S::Uri;
9338        type Cid = S::Cid;
9339        type Value = Set<members::value>;
9340        type Blobs = S::Blobs;
9341        type IndexedAt = S::IndexedAt;
9342        type Moderation = S::Moderation;
9343        type Repo = S::Repo;
9344    }
9345    ///State transition - sets the `blobs` field to Set
9346    pub struct SetBlobs<S: State = Empty>(PhantomData<fn() -> S>);
9347    impl<S: State> sealed::Sealed for SetBlobs<S> {}
9348    impl<S: State> State for SetBlobs<S> {
9349        type Uri = S::Uri;
9350        type Cid = S::Cid;
9351        type Value = S::Value;
9352        type Blobs = Set<members::blobs>;
9353        type IndexedAt = S::IndexedAt;
9354        type Moderation = S::Moderation;
9355        type Repo = S::Repo;
9356    }
9357    ///State transition - sets the `indexed_at` field to Set
9358    pub struct SetIndexedAt<S: State = Empty>(PhantomData<fn() -> S>);
9359    impl<S: State> sealed::Sealed for SetIndexedAt<S> {}
9360    impl<S: State> State for SetIndexedAt<S> {
9361        type Uri = S::Uri;
9362        type Cid = S::Cid;
9363        type Value = S::Value;
9364        type Blobs = S::Blobs;
9365        type IndexedAt = Set<members::indexed_at>;
9366        type Moderation = S::Moderation;
9367        type Repo = S::Repo;
9368    }
9369    ///State transition - sets the `moderation` field to Set
9370    pub struct SetModeration<S: State = Empty>(PhantomData<fn() -> S>);
9371    impl<S: State> sealed::Sealed for SetModeration<S> {}
9372    impl<S: State> State for SetModeration<S> {
9373        type Uri = S::Uri;
9374        type Cid = S::Cid;
9375        type Value = S::Value;
9376        type Blobs = S::Blobs;
9377        type IndexedAt = S::IndexedAt;
9378        type Moderation = Set<members::moderation>;
9379        type Repo = S::Repo;
9380    }
9381    ///State transition - sets the `repo` field to Set
9382    pub struct SetRepo<S: State = Empty>(PhantomData<fn() -> S>);
9383    impl<S: State> sealed::Sealed for SetRepo<S> {}
9384    impl<S: State> State for SetRepo<S> {
9385        type Uri = S::Uri;
9386        type Cid = S::Cid;
9387        type Value = S::Value;
9388        type Blobs = S::Blobs;
9389        type IndexedAt = S::IndexedAt;
9390        type Moderation = S::Moderation;
9391        type Repo = Set<members::repo>;
9392    }
9393    /// Marker types for field names
9394    #[allow(non_camel_case_types)]
9395    pub mod members {
9396        ///Marker type for the `uri` field
9397        pub struct uri(());
9398        ///Marker type for the `cid` field
9399        pub struct cid(());
9400        ///Marker type for the `value` field
9401        pub struct value(());
9402        ///Marker type for the `blobs` field
9403        pub struct blobs(());
9404        ///Marker type for the `indexed_at` field
9405        pub struct indexed_at(());
9406        ///Marker type for the `moderation` field
9407        pub struct moderation(());
9408        ///Marker type for the `repo` field
9409        pub struct repo(());
9410    }
9411}
9412
9413/// Builder for constructing an instance of this type
9414pub struct RecordViewDetailBuilder<'a, S: record_view_detail_state::State> {
9415    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
9416    __unsafe_private_named: (
9417        ::core::option::Option<Vec<crate::tools_ozone::moderation::BlobView<'a>>>,
9418        ::core::option::Option<jacquard_common::types::string::Cid<'a>>,
9419        ::core::option::Option<jacquard_common::types::string::Datetime>,
9420        ::core::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
9421        ::core::option::Option<crate::tools_ozone::moderation::ModerationDetail<'a>>,
9422        ::core::option::Option<crate::tools_ozone::moderation::RepoView<'a>>,
9423        ::core::option::Option<jacquard_common::types::string::AtUri<'a>>,
9424        ::core::option::Option<jacquard_common::types::value::Data<'a>>,
9425    ),
9426    _phantom: ::core::marker::PhantomData<&'a ()>,
9427}
9428
9429impl<'a> RecordViewDetail<'a> {
9430    /// Create a new builder for this type
9431    pub fn new() -> RecordViewDetailBuilder<'a, record_view_detail_state::Empty> {
9432        RecordViewDetailBuilder::new()
9433    }
9434}
9435
9436impl<'a> RecordViewDetailBuilder<'a, record_view_detail_state::Empty> {
9437    /// Create a new builder with all fields unset
9438    pub fn new() -> Self {
9439        RecordViewDetailBuilder {
9440            _phantom_state: ::core::marker::PhantomData,
9441            __unsafe_private_named: (None, None, None, None, None, None, None, None),
9442            _phantom: ::core::marker::PhantomData,
9443        }
9444    }
9445}
9446
9447impl<'a, S> RecordViewDetailBuilder<'a, S>
9448where
9449    S: record_view_detail_state::State,
9450    S::Blobs: record_view_detail_state::IsUnset,
9451{
9452    /// Set the `blobs` field (required)
9453    pub fn blobs(
9454        mut self,
9455        value: impl Into<Vec<crate::tools_ozone::moderation::BlobView<'a>>>,
9456    ) -> RecordViewDetailBuilder<'a, record_view_detail_state::SetBlobs<S>> {
9457        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
9458        RecordViewDetailBuilder {
9459            _phantom_state: ::core::marker::PhantomData,
9460            __unsafe_private_named: self.__unsafe_private_named,
9461            _phantom: ::core::marker::PhantomData,
9462        }
9463    }
9464}
9465
9466impl<'a, S> RecordViewDetailBuilder<'a, S>
9467where
9468    S: record_view_detail_state::State,
9469    S::Cid: record_view_detail_state::IsUnset,
9470{
9471    /// Set the `cid` field (required)
9472    pub fn cid(
9473        mut self,
9474        value: impl Into<jacquard_common::types::string::Cid<'a>>,
9475    ) -> RecordViewDetailBuilder<'a, record_view_detail_state::SetCid<S>> {
9476        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
9477        RecordViewDetailBuilder {
9478            _phantom_state: ::core::marker::PhantomData,
9479            __unsafe_private_named: self.__unsafe_private_named,
9480            _phantom: ::core::marker::PhantomData,
9481        }
9482    }
9483}
9484
9485impl<'a, S> RecordViewDetailBuilder<'a, S>
9486where
9487    S: record_view_detail_state::State,
9488    S::IndexedAt: record_view_detail_state::IsUnset,
9489{
9490    /// Set the `indexedAt` field (required)
9491    pub fn indexed_at(
9492        mut self,
9493        value: impl Into<jacquard_common::types::string::Datetime>,
9494    ) -> RecordViewDetailBuilder<'a, record_view_detail_state::SetIndexedAt<S>> {
9495        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
9496        RecordViewDetailBuilder {
9497            _phantom_state: ::core::marker::PhantomData,
9498            __unsafe_private_named: self.__unsafe_private_named,
9499            _phantom: ::core::marker::PhantomData,
9500        }
9501    }
9502}
9503
9504impl<'a, S: record_view_detail_state::State> RecordViewDetailBuilder<'a, S> {
9505    /// Set the `labels` field (optional)
9506    pub fn labels(
9507        mut self,
9508        value: impl Into<Option<Vec<crate::com_atproto::label::Label<'a>>>>,
9509    ) -> Self {
9510        self.__unsafe_private_named.3 = value.into();
9511        self
9512    }
9513    /// Set the `labels` field to an Option value (optional)
9514    pub fn maybe_labels(
9515        mut self,
9516        value: Option<Vec<crate::com_atproto::label::Label<'a>>>,
9517    ) -> Self {
9518        self.__unsafe_private_named.3 = value;
9519        self
9520    }
9521}
9522
9523impl<'a, S> RecordViewDetailBuilder<'a, S>
9524where
9525    S: record_view_detail_state::State,
9526    S::Moderation: record_view_detail_state::IsUnset,
9527{
9528    /// Set the `moderation` field (required)
9529    pub fn moderation(
9530        mut self,
9531        value: impl Into<crate::tools_ozone::moderation::ModerationDetail<'a>>,
9532    ) -> RecordViewDetailBuilder<'a, record_view_detail_state::SetModeration<S>> {
9533        self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
9534        RecordViewDetailBuilder {
9535            _phantom_state: ::core::marker::PhantomData,
9536            __unsafe_private_named: self.__unsafe_private_named,
9537            _phantom: ::core::marker::PhantomData,
9538        }
9539    }
9540}
9541
9542impl<'a, S> RecordViewDetailBuilder<'a, S>
9543where
9544    S: record_view_detail_state::State,
9545    S::Repo: record_view_detail_state::IsUnset,
9546{
9547    /// Set the `repo` field (required)
9548    pub fn repo(
9549        mut self,
9550        value: impl Into<crate::tools_ozone::moderation::RepoView<'a>>,
9551    ) -> RecordViewDetailBuilder<'a, record_view_detail_state::SetRepo<S>> {
9552        self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
9553        RecordViewDetailBuilder {
9554            _phantom_state: ::core::marker::PhantomData,
9555            __unsafe_private_named: self.__unsafe_private_named,
9556            _phantom: ::core::marker::PhantomData,
9557        }
9558    }
9559}
9560
9561impl<'a, S> RecordViewDetailBuilder<'a, S>
9562where
9563    S: record_view_detail_state::State,
9564    S::Uri: record_view_detail_state::IsUnset,
9565{
9566    /// Set the `uri` field (required)
9567    pub fn uri(
9568        mut self,
9569        value: impl Into<jacquard_common::types::string::AtUri<'a>>,
9570    ) -> RecordViewDetailBuilder<'a, record_view_detail_state::SetUri<S>> {
9571        self.__unsafe_private_named.6 = ::core::option::Option::Some(value.into());
9572        RecordViewDetailBuilder {
9573            _phantom_state: ::core::marker::PhantomData,
9574            __unsafe_private_named: self.__unsafe_private_named,
9575            _phantom: ::core::marker::PhantomData,
9576        }
9577    }
9578}
9579
9580impl<'a, S> RecordViewDetailBuilder<'a, S>
9581where
9582    S: record_view_detail_state::State,
9583    S::Value: record_view_detail_state::IsUnset,
9584{
9585    /// Set the `value` field (required)
9586    pub fn value(
9587        mut self,
9588        value: impl Into<jacquard_common::types::value::Data<'a>>,
9589    ) -> RecordViewDetailBuilder<'a, record_view_detail_state::SetValue<S>> {
9590        self.__unsafe_private_named.7 = ::core::option::Option::Some(value.into());
9591        RecordViewDetailBuilder {
9592            _phantom_state: ::core::marker::PhantomData,
9593            __unsafe_private_named: self.__unsafe_private_named,
9594            _phantom: ::core::marker::PhantomData,
9595        }
9596    }
9597}
9598
9599impl<'a, S> RecordViewDetailBuilder<'a, S>
9600where
9601    S: record_view_detail_state::State,
9602    S::Uri: record_view_detail_state::IsSet,
9603    S::Cid: record_view_detail_state::IsSet,
9604    S::Value: record_view_detail_state::IsSet,
9605    S::Blobs: record_view_detail_state::IsSet,
9606    S::IndexedAt: record_view_detail_state::IsSet,
9607    S::Moderation: record_view_detail_state::IsSet,
9608    S::Repo: record_view_detail_state::IsSet,
9609{
9610    /// Build the final struct
9611    pub fn build(self) -> RecordViewDetail<'a> {
9612        RecordViewDetail {
9613            blobs: self.__unsafe_private_named.0.unwrap(),
9614            cid: self.__unsafe_private_named.1.unwrap(),
9615            indexed_at: self.__unsafe_private_named.2.unwrap(),
9616            labels: self.__unsafe_private_named.3,
9617            moderation: self.__unsafe_private_named.4.unwrap(),
9618            repo: self.__unsafe_private_named.5.unwrap(),
9619            uri: self.__unsafe_private_named.6.unwrap(),
9620            value: self.__unsafe_private_named.7.unwrap(),
9621            extra_data: Default::default(),
9622        }
9623    }
9624    /// Build the final struct with custom extra_data
9625    pub fn build_with_data(
9626        self,
9627        extra_data: std::collections::BTreeMap<
9628            jacquard_common::smol_str::SmolStr,
9629            jacquard_common::types::value::Data<'a>,
9630        >,
9631    ) -> RecordViewDetail<'a> {
9632        RecordViewDetail {
9633            blobs: self.__unsafe_private_named.0.unwrap(),
9634            cid: self.__unsafe_private_named.1.unwrap(),
9635            indexed_at: self.__unsafe_private_named.2.unwrap(),
9636            labels: self.__unsafe_private_named.3,
9637            moderation: self.__unsafe_private_named.4.unwrap(),
9638            repo: self.__unsafe_private_named.5.unwrap(),
9639            uri: self.__unsafe_private_named.6.unwrap(),
9640            value: self.__unsafe_private_named.7.unwrap(),
9641            extra_data: Some(extra_data),
9642        }
9643    }
9644}
9645
9646impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RecordViewDetail<'a> {
9647    fn nsid() -> &'static str {
9648        "tools.ozone.moderation.defs"
9649    }
9650    fn def_name() -> &'static str {
9651        "recordViewDetail"
9652    }
9653    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
9654        lexicon_doc_tools_ozone_moderation_defs()
9655    }
9656    fn validate(
9657        &self,
9658    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
9659        Ok(())
9660    }
9661}
9662
9663#[jacquard_derive::lexicon]
9664#[derive(
9665    serde::Serialize,
9666    serde::Deserialize,
9667    Debug,
9668    Clone,
9669    PartialEq,
9670    Eq,
9671    jacquard_derive::IntoStatic
9672)]
9673#[serde(rename_all = "camelCase")]
9674pub struct RecordViewNotFound<'a> {
9675    #[serde(borrow)]
9676    pub uri: jacquard_common::types::string::AtUri<'a>,
9677}
9678
9679pub mod record_view_not_found_state {
9680
9681    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
9682    #[allow(unused)]
9683    use ::core::marker::PhantomData;
9684    mod sealed {
9685        pub trait Sealed {}
9686    }
9687    /// State trait tracking which required fields have been set
9688    pub trait State: sealed::Sealed {
9689        type Uri;
9690    }
9691    /// Empty state - all required fields are unset
9692    pub struct Empty(());
9693    impl sealed::Sealed for Empty {}
9694    impl State for Empty {
9695        type Uri = Unset;
9696    }
9697    ///State transition - sets the `uri` field to Set
9698    pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
9699    impl<S: State> sealed::Sealed for SetUri<S> {}
9700    impl<S: State> State for SetUri<S> {
9701        type Uri = Set<members::uri>;
9702    }
9703    /// Marker types for field names
9704    #[allow(non_camel_case_types)]
9705    pub mod members {
9706        ///Marker type for the `uri` field
9707        pub struct uri(());
9708    }
9709}
9710
9711/// Builder for constructing an instance of this type
9712pub struct RecordViewNotFoundBuilder<'a, S: record_view_not_found_state::State> {
9713    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
9714    __unsafe_private_named: (
9715        ::core::option::Option<jacquard_common::types::string::AtUri<'a>>,
9716    ),
9717    _phantom: ::core::marker::PhantomData<&'a ()>,
9718}
9719
9720impl<'a> RecordViewNotFound<'a> {
9721    /// Create a new builder for this type
9722    pub fn new() -> RecordViewNotFoundBuilder<'a, record_view_not_found_state::Empty> {
9723        RecordViewNotFoundBuilder::new()
9724    }
9725}
9726
9727impl<'a> RecordViewNotFoundBuilder<'a, record_view_not_found_state::Empty> {
9728    /// Create a new builder with all fields unset
9729    pub fn new() -> Self {
9730        RecordViewNotFoundBuilder {
9731            _phantom_state: ::core::marker::PhantomData,
9732            __unsafe_private_named: (None,),
9733            _phantom: ::core::marker::PhantomData,
9734        }
9735    }
9736}
9737
9738impl<'a, S> RecordViewNotFoundBuilder<'a, S>
9739where
9740    S: record_view_not_found_state::State,
9741    S::Uri: record_view_not_found_state::IsUnset,
9742{
9743    /// Set the `uri` field (required)
9744    pub fn uri(
9745        mut self,
9746        value: impl Into<jacquard_common::types::string::AtUri<'a>>,
9747    ) -> RecordViewNotFoundBuilder<'a, record_view_not_found_state::SetUri<S>> {
9748        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
9749        RecordViewNotFoundBuilder {
9750            _phantom_state: ::core::marker::PhantomData,
9751            __unsafe_private_named: self.__unsafe_private_named,
9752            _phantom: ::core::marker::PhantomData,
9753        }
9754    }
9755}
9756
9757impl<'a, S> RecordViewNotFoundBuilder<'a, S>
9758where
9759    S: record_view_not_found_state::State,
9760    S::Uri: record_view_not_found_state::IsSet,
9761{
9762    /// Build the final struct
9763    pub fn build(self) -> RecordViewNotFound<'a> {
9764        RecordViewNotFound {
9765            uri: self.__unsafe_private_named.0.unwrap(),
9766            extra_data: Default::default(),
9767        }
9768    }
9769    /// Build the final struct with custom extra_data
9770    pub fn build_with_data(
9771        self,
9772        extra_data: std::collections::BTreeMap<
9773            jacquard_common::smol_str::SmolStr,
9774            jacquard_common::types::value::Data<'a>,
9775        >,
9776    ) -> RecordViewNotFound<'a> {
9777        RecordViewNotFound {
9778            uri: self.__unsafe_private_named.0.unwrap(),
9779            extra_data: Some(extra_data),
9780        }
9781    }
9782}
9783
9784impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RecordViewNotFound<'a> {
9785    fn nsid() -> &'static str {
9786        "tools.ozone.moderation.defs"
9787    }
9788    fn def_name() -> &'static str {
9789        "recordViewNotFound"
9790    }
9791    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
9792        lexicon_doc_tools_ozone_moderation_defs()
9793    }
9794    fn validate(
9795        &self,
9796    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
9797        Ok(())
9798    }
9799}
9800
9801/// Statistics about a set of record subject items
9802#[jacquard_derive::lexicon]
9803#[derive(
9804    serde::Serialize,
9805    serde::Deserialize,
9806    Debug,
9807    Clone,
9808    PartialEq,
9809    Eq,
9810    jacquard_derive::IntoStatic,
9811    Default
9812)]
9813#[serde(rename_all = "camelCase")]
9814pub struct RecordsStats<'a> {
9815    /// Number of items that were appealed at least once
9816    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9817    pub appealed_count: std::option::Option<i64>,
9818    /// Number of items that were escalated at least once
9819    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9820    pub escalated_count: std::option::Option<i64>,
9821    /// Number of item currently in "reviewOpen" or "reviewEscalated" state
9822    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9823    pub pending_count: std::option::Option<i64>,
9824    /// Number of item currently in "reviewNone" or "reviewClosed" state
9825    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9826    pub processed_count: std::option::Option<i64>,
9827    /// Number of items that were reported at least once
9828    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9829    pub reported_count: std::option::Option<i64>,
9830    /// Total number of item in the set
9831    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9832    pub subject_count: std::option::Option<i64>,
9833    /// Number of item currently taken down
9834    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9835    pub takendown_count: std::option::Option<i64>,
9836    /// Cumulative sum of the number of reports on the items in the set
9837    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9838    pub total_reports: std::option::Option<i64>,
9839}
9840
9841impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RecordsStats<'a> {
9842    fn nsid() -> &'static str {
9843        "tools.ozone.moderation.defs"
9844    }
9845    fn def_name() -> &'static str {
9846        "recordsStats"
9847    }
9848    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
9849        lexicon_doc_tools_ozone_moderation_defs()
9850    }
9851    fn validate(
9852        &self,
9853    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
9854        Ok(())
9855    }
9856}
9857
9858#[jacquard_derive::lexicon]
9859#[derive(
9860    serde::Serialize,
9861    serde::Deserialize,
9862    Debug,
9863    Clone,
9864    PartialEq,
9865    Eq,
9866    jacquard_derive::IntoStatic
9867)]
9868#[serde(rename_all = "camelCase")]
9869pub struct RepoView<'a> {
9870    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9871    pub deactivated_at: Option<jacquard_common::types::string::Datetime>,
9872    #[serde(borrow)]
9873    pub did: jacquard_common::types::string::Did<'a>,
9874    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9875    #[serde(borrow)]
9876    pub email: Option<jacquard_common::CowStr<'a>>,
9877    #[serde(borrow)]
9878    pub handle: jacquard_common::types::string::Handle<'a>,
9879    pub indexed_at: jacquard_common::types::string::Datetime,
9880    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9881    #[serde(borrow)]
9882    pub invite_note: Option<jacquard_common::CowStr<'a>>,
9883    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9884    #[serde(borrow)]
9885    pub invited_by: Option<crate::com_atproto::server::InviteCode<'a>>,
9886    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9887    pub invites_disabled: Option<bool>,
9888    #[serde(borrow)]
9889    pub moderation: crate::tools_ozone::moderation::Moderation<'a>,
9890    #[serde(borrow)]
9891    pub related_records: Vec<jacquard_common::types::value::Data<'a>>,
9892    #[serde(skip_serializing_if = "std::option::Option::is_none")]
9893    #[serde(borrow)]
9894    pub threat_signatures: Option<Vec<crate::com_atproto::admin::ThreatSignature<'a>>>,
9895}
9896
9897pub mod repo_view_state {
9898
9899    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
9900    #[allow(unused)]
9901    use ::core::marker::PhantomData;
9902    mod sealed {
9903        pub trait Sealed {}
9904    }
9905    /// State trait tracking which required fields have been set
9906    pub trait State: sealed::Sealed {
9907        type Did;
9908        type Handle;
9909        type RelatedRecords;
9910        type IndexedAt;
9911        type Moderation;
9912    }
9913    /// Empty state - all required fields are unset
9914    pub struct Empty(());
9915    impl sealed::Sealed for Empty {}
9916    impl State for Empty {
9917        type Did = Unset;
9918        type Handle = Unset;
9919        type RelatedRecords = Unset;
9920        type IndexedAt = Unset;
9921        type Moderation = Unset;
9922    }
9923    ///State transition - sets the `did` field to Set
9924    pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
9925    impl<S: State> sealed::Sealed for SetDid<S> {}
9926    impl<S: State> State for SetDid<S> {
9927        type Did = Set<members::did>;
9928        type Handle = S::Handle;
9929        type RelatedRecords = S::RelatedRecords;
9930        type IndexedAt = S::IndexedAt;
9931        type Moderation = S::Moderation;
9932    }
9933    ///State transition - sets the `handle` field to Set
9934    pub struct SetHandle<S: State = Empty>(PhantomData<fn() -> S>);
9935    impl<S: State> sealed::Sealed for SetHandle<S> {}
9936    impl<S: State> State for SetHandle<S> {
9937        type Did = S::Did;
9938        type Handle = Set<members::handle>;
9939        type RelatedRecords = S::RelatedRecords;
9940        type IndexedAt = S::IndexedAt;
9941        type Moderation = S::Moderation;
9942    }
9943    ///State transition - sets the `related_records` field to Set
9944    pub struct SetRelatedRecords<S: State = Empty>(PhantomData<fn() -> S>);
9945    impl<S: State> sealed::Sealed for SetRelatedRecords<S> {}
9946    impl<S: State> State for SetRelatedRecords<S> {
9947        type Did = S::Did;
9948        type Handle = S::Handle;
9949        type RelatedRecords = Set<members::related_records>;
9950        type IndexedAt = S::IndexedAt;
9951        type Moderation = S::Moderation;
9952    }
9953    ///State transition - sets the `indexed_at` field to Set
9954    pub struct SetIndexedAt<S: State = Empty>(PhantomData<fn() -> S>);
9955    impl<S: State> sealed::Sealed for SetIndexedAt<S> {}
9956    impl<S: State> State for SetIndexedAt<S> {
9957        type Did = S::Did;
9958        type Handle = S::Handle;
9959        type RelatedRecords = S::RelatedRecords;
9960        type IndexedAt = Set<members::indexed_at>;
9961        type Moderation = S::Moderation;
9962    }
9963    ///State transition - sets the `moderation` field to Set
9964    pub struct SetModeration<S: State = Empty>(PhantomData<fn() -> S>);
9965    impl<S: State> sealed::Sealed for SetModeration<S> {}
9966    impl<S: State> State for SetModeration<S> {
9967        type Did = S::Did;
9968        type Handle = S::Handle;
9969        type RelatedRecords = S::RelatedRecords;
9970        type IndexedAt = S::IndexedAt;
9971        type Moderation = Set<members::moderation>;
9972    }
9973    /// Marker types for field names
9974    #[allow(non_camel_case_types)]
9975    pub mod members {
9976        ///Marker type for the `did` field
9977        pub struct did(());
9978        ///Marker type for the `handle` field
9979        pub struct handle(());
9980        ///Marker type for the `related_records` field
9981        pub struct related_records(());
9982        ///Marker type for the `indexed_at` field
9983        pub struct indexed_at(());
9984        ///Marker type for the `moderation` field
9985        pub struct moderation(());
9986    }
9987}
9988
9989/// Builder for constructing an instance of this type
9990pub struct RepoViewBuilder<'a, S: repo_view_state::State> {
9991    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
9992    __unsafe_private_named: (
9993        ::core::option::Option<jacquard_common::types::string::Datetime>,
9994        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
9995        ::core::option::Option<jacquard_common::CowStr<'a>>,
9996        ::core::option::Option<jacquard_common::types::string::Handle<'a>>,
9997        ::core::option::Option<jacquard_common::types::string::Datetime>,
9998        ::core::option::Option<jacquard_common::CowStr<'a>>,
9999        ::core::option::Option<crate::com_atproto::server::InviteCode<'a>>,
10000        ::core::option::Option<bool>,
10001        ::core::option::Option<crate::tools_ozone::moderation::Moderation<'a>>,
10002        ::core::option::Option<Vec<jacquard_common::types::value::Data<'a>>>,
10003        ::core::option::Option<Vec<crate::com_atproto::admin::ThreatSignature<'a>>>,
10004    ),
10005    _phantom: ::core::marker::PhantomData<&'a ()>,
10006}
10007
10008impl<'a> RepoView<'a> {
10009    /// Create a new builder for this type
10010    pub fn new() -> RepoViewBuilder<'a, repo_view_state::Empty> {
10011        RepoViewBuilder::new()
10012    }
10013}
10014
10015impl<'a> RepoViewBuilder<'a, repo_view_state::Empty> {
10016    /// Create a new builder with all fields unset
10017    pub fn new() -> Self {
10018        RepoViewBuilder {
10019            _phantom_state: ::core::marker::PhantomData,
10020            __unsafe_private_named: (
10021                None,
10022                None,
10023                None,
10024                None,
10025                None,
10026                None,
10027                None,
10028                None,
10029                None,
10030                None,
10031                None,
10032            ),
10033            _phantom: ::core::marker::PhantomData,
10034        }
10035    }
10036}
10037
10038impl<'a, S: repo_view_state::State> RepoViewBuilder<'a, S> {
10039    /// Set the `deactivatedAt` field (optional)
10040    pub fn deactivated_at(
10041        mut self,
10042        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
10043    ) -> Self {
10044        self.__unsafe_private_named.0 = value.into();
10045        self
10046    }
10047    /// Set the `deactivatedAt` field to an Option value (optional)
10048    pub fn maybe_deactivated_at(
10049        mut self,
10050        value: Option<jacquard_common::types::string::Datetime>,
10051    ) -> Self {
10052        self.__unsafe_private_named.0 = value;
10053        self
10054    }
10055}
10056
10057impl<'a, S> RepoViewBuilder<'a, S>
10058where
10059    S: repo_view_state::State,
10060    S::Did: repo_view_state::IsUnset,
10061{
10062    /// Set the `did` field (required)
10063    pub fn did(
10064        mut self,
10065        value: impl Into<jacquard_common::types::string::Did<'a>>,
10066    ) -> RepoViewBuilder<'a, repo_view_state::SetDid<S>> {
10067        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
10068        RepoViewBuilder {
10069            _phantom_state: ::core::marker::PhantomData,
10070            __unsafe_private_named: self.__unsafe_private_named,
10071            _phantom: ::core::marker::PhantomData,
10072        }
10073    }
10074}
10075
10076impl<'a, S: repo_view_state::State> RepoViewBuilder<'a, S> {
10077    /// Set the `email` field (optional)
10078    pub fn email(
10079        mut self,
10080        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
10081    ) -> Self {
10082        self.__unsafe_private_named.2 = value.into();
10083        self
10084    }
10085    /// Set the `email` field to an Option value (optional)
10086    pub fn maybe_email(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
10087        self.__unsafe_private_named.2 = value;
10088        self
10089    }
10090}
10091
10092impl<'a, S> RepoViewBuilder<'a, S>
10093where
10094    S: repo_view_state::State,
10095    S::Handle: repo_view_state::IsUnset,
10096{
10097    /// Set the `handle` field (required)
10098    pub fn handle(
10099        mut self,
10100        value: impl Into<jacquard_common::types::string::Handle<'a>>,
10101    ) -> RepoViewBuilder<'a, repo_view_state::SetHandle<S>> {
10102        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
10103        RepoViewBuilder {
10104            _phantom_state: ::core::marker::PhantomData,
10105            __unsafe_private_named: self.__unsafe_private_named,
10106            _phantom: ::core::marker::PhantomData,
10107        }
10108    }
10109}
10110
10111impl<'a, S> RepoViewBuilder<'a, S>
10112where
10113    S: repo_view_state::State,
10114    S::IndexedAt: repo_view_state::IsUnset,
10115{
10116    /// Set the `indexedAt` field (required)
10117    pub fn indexed_at(
10118        mut self,
10119        value: impl Into<jacquard_common::types::string::Datetime>,
10120    ) -> RepoViewBuilder<'a, repo_view_state::SetIndexedAt<S>> {
10121        self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
10122        RepoViewBuilder {
10123            _phantom_state: ::core::marker::PhantomData,
10124            __unsafe_private_named: self.__unsafe_private_named,
10125            _phantom: ::core::marker::PhantomData,
10126        }
10127    }
10128}
10129
10130impl<'a, S: repo_view_state::State> RepoViewBuilder<'a, S> {
10131    /// Set the `inviteNote` field (optional)
10132    pub fn invite_note(
10133        mut self,
10134        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
10135    ) -> Self {
10136        self.__unsafe_private_named.5 = value.into();
10137        self
10138    }
10139    /// Set the `inviteNote` field to an Option value (optional)
10140    pub fn maybe_invite_note(
10141        mut self,
10142        value: Option<jacquard_common::CowStr<'a>>,
10143    ) -> Self {
10144        self.__unsafe_private_named.5 = value;
10145        self
10146    }
10147}
10148
10149impl<'a, S: repo_view_state::State> RepoViewBuilder<'a, S> {
10150    /// Set the `invitedBy` field (optional)
10151    pub fn invited_by(
10152        mut self,
10153        value: impl Into<Option<crate::com_atproto::server::InviteCode<'a>>>,
10154    ) -> Self {
10155        self.__unsafe_private_named.6 = value.into();
10156        self
10157    }
10158    /// Set the `invitedBy` field to an Option value (optional)
10159    pub fn maybe_invited_by(
10160        mut self,
10161        value: Option<crate::com_atproto::server::InviteCode<'a>>,
10162    ) -> Self {
10163        self.__unsafe_private_named.6 = value;
10164        self
10165    }
10166}
10167
10168impl<'a, S: repo_view_state::State> RepoViewBuilder<'a, S> {
10169    /// Set the `invitesDisabled` field (optional)
10170    pub fn invites_disabled(mut self, value: impl Into<Option<bool>>) -> Self {
10171        self.__unsafe_private_named.7 = value.into();
10172        self
10173    }
10174    /// Set the `invitesDisabled` field to an Option value (optional)
10175    pub fn maybe_invites_disabled(mut self, value: Option<bool>) -> Self {
10176        self.__unsafe_private_named.7 = value;
10177        self
10178    }
10179}
10180
10181impl<'a, S> RepoViewBuilder<'a, S>
10182where
10183    S: repo_view_state::State,
10184    S::Moderation: repo_view_state::IsUnset,
10185{
10186    /// Set the `moderation` field (required)
10187    pub fn moderation(
10188        mut self,
10189        value: impl Into<crate::tools_ozone::moderation::Moderation<'a>>,
10190    ) -> RepoViewBuilder<'a, repo_view_state::SetModeration<S>> {
10191        self.__unsafe_private_named.8 = ::core::option::Option::Some(value.into());
10192        RepoViewBuilder {
10193            _phantom_state: ::core::marker::PhantomData,
10194            __unsafe_private_named: self.__unsafe_private_named,
10195            _phantom: ::core::marker::PhantomData,
10196        }
10197    }
10198}
10199
10200impl<'a, S> RepoViewBuilder<'a, S>
10201where
10202    S: repo_view_state::State,
10203    S::RelatedRecords: repo_view_state::IsUnset,
10204{
10205    /// Set the `relatedRecords` field (required)
10206    pub fn related_records(
10207        mut self,
10208        value: impl Into<Vec<jacquard_common::types::value::Data<'a>>>,
10209    ) -> RepoViewBuilder<'a, repo_view_state::SetRelatedRecords<S>> {
10210        self.__unsafe_private_named.9 = ::core::option::Option::Some(value.into());
10211        RepoViewBuilder {
10212            _phantom_state: ::core::marker::PhantomData,
10213            __unsafe_private_named: self.__unsafe_private_named,
10214            _phantom: ::core::marker::PhantomData,
10215        }
10216    }
10217}
10218
10219impl<'a, S: repo_view_state::State> RepoViewBuilder<'a, S> {
10220    /// Set the `threatSignatures` field (optional)
10221    pub fn threat_signatures(
10222        mut self,
10223        value: impl Into<Option<Vec<crate::com_atproto::admin::ThreatSignature<'a>>>>,
10224    ) -> Self {
10225        self.__unsafe_private_named.10 = value.into();
10226        self
10227    }
10228    /// Set the `threatSignatures` field to an Option value (optional)
10229    pub fn maybe_threat_signatures(
10230        mut self,
10231        value: Option<Vec<crate::com_atproto::admin::ThreatSignature<'a>>>,
10232    ) -> Self {
10233        self.__unsafe_private_named.10 = value;
10234        self
10235    }
10236}
10237
10238impl<'a, S> RepoViewBuilder<'a, S>
10239where
10240    S: repo_view_state::State,
10241    S::Did: repo_view_state::IsSet,
10242    S::Handle: repo_view_state::IsSet,
10243    S::RelatedRecords: repo_view_state::IsSet,
10244    S::IndexedAt: repo_view_state::IsSet,
10245    S::Moderation: repo_view_state::IsSet,
10246{
10247    /// Build the final struct
10248    pub fn build(self) -> RepoView<'a> {
10249        RepoView {
10250            deactivated_at: self.__unsafe_private_named.0,
10251            did: self.__unsafe_private_named.1.unwrap(),
10252            email: self.__unsafe_private_named.2,
10253            handle: self.__unsafe_private_named.3.unwrap(),
10254            indexed_at: self.__unsafe_private_named.4.unwrap(),
10255            invite_note: self.__unsafe_private_named.5,
10256            invited_by: self.__unsafe_private_named.6,
10257            invites_disabled: self.__unsafe_private_named.7,
10258            moderation: self.__unsafe_private_named.8.unwrap(),
10259            related_records: self.__unsafe_private_named.9.unwrap(),
10260            threat_signatures: self.__unsafe_private_named.10,
10261            extra_data: Default::default(),
10262        }
10263    }
10264    /// Build the final struct with custom extra_data
10265    pub fn build_with_data(
10266        self,
10267        extra_data: std::collections::BTreeMap<
10268            jacquard_common::smol_str::SmolStr,
10269            jacquard_common::types::value::Data<'a>,
10270        >,
10271    ) -> RepoView<'a> {
10272        RepoView {
10273            deactivated_at: self.__unsafe_private_named.0,
10274            did: self.__unsafe_private_named.1.unwrap(),
10275            email: self.__unsafe_private_named.2,
10276            handle: self.__unsafe_private_named.3.unwrap(),
10277            indexed_at: self.__unsafe_private_named.4.unwrap(),
10278            invite_note: self.__unsafe_private_named.5,
10279            invited_by: self.__unsafe_private_named.6,
10280            invites_disabled: self.__unsafe_private_named.7,
10281            moderation: self.__unsafe_private_named.8.unwrap(),
10282            related_records: self.__unsafe_private_named.9.unwrap(),
10283            threat_signatures: self.__unsafe_private_named.10,
10284            extra_data: Some(extra_data),
10285        }
10286    }
10287}
10288
10289impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RepoView<'a> {
10290    fn nsid() -> &'static str {
10291        "tools.ozone.moderation.defs"
10292    }
10293    fn def_name() -> &'static str {
10294        "repoView"
10295    }
10296    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
10297        lexicon_doc_tools_ozone_moderation_defs()
10298    }
10299    fn validate(
10300        &self,
10301    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
10302        Ok(())
10303    }
10304}
10305
10306#[jacquard_derive::lexicon]
10307#[derive(
10308    serde::Serialize,
10309    serde::Deserialize,
10310    Debug,
10311    Clone,
10312    PartialEq,
10313    Eq,
10314    jacquard_derive::IntoStatic
10315)]
10316#[serde(rename_all = "camelCase")]
10317pub struct RepoViewDetail<'a> {
10318    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10319    pub deactivated_at: Option<jacquard_common::types::string::Datetime>,
10320    #[serde(borrow)]
10321    pub did: jacquard_common::types::string::Did<'a>,
10322    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10323    #[serde(borrow)]
10324    pub email: Option<jacquard_common::CowStr<'a>>,
10325    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10326    pub email_confirmed_at: Option<jacquard_common::types::string::Datetime>,
10327    #[serde(borrow)]
10328    pub handle: jacquard_common::types::string::Handle<'a>,
10329    pub indexed_at: jacquard_common::types::string::Datetime,
10330    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10331    #[serde(borrow)]
10332    pub invite_note: Option<jacquard_common::CowStr<'a>>,
10333    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10334    #[serde(borrow)]
10335    pub invited_by: Option<crate::com_atproto::server::InviteCode<'a>>,
10336    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10337    #[serde(borrow)]
10338    pub invites: Option<Vec<crate::com_atproto::server::InviteCode<'a>>>,
10339    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10340    pub invites_disabled: Option<bool>,
10341    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10342    #[serde(borrow)]
10343    pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>,
10344    #[serde(borrow)]
10345    pub moderation: crate::tools_ozone::moderation::ModerationDetail<'a>,
10346    #[serde(borrow)]
10347    pub related_records: Vec<jacquard_common::types::value::Data<'a>>,
10348    #[serde(skip_serializing_if = "std::option::Option::is_none")]
10349    #[serde(borrow)]
10350    pub threat_signatures: Option<Vec<crate::com_atproto::admin::ThreatSignature<'a>>>,
10351}
10352
10353pub mod repo_view_detail_state {
10354
10355    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
10356    #[allow(unused)]
10357    use ::core::marker::PhantomData;
10358    mod sealed {
10359        pub trait Sealed {}
10360    }
10361    /// State trait tracking which required fields have been set
10362    pub trait State: sealed::Sealed {
10363        type Did;
10364        type Handle;
10365        type RelatedRecords;
10366        type IndexedAt;
10367        type Moderation;
10368    }
10369    /// Empty state - all required fields are unset
10370    pub struct Empty(());
10371    impl sealed::Sealed for Empty {}
10372    impl State for Empty {
10373        type Did = Unset;
10374        type Handle = Unset;
10375        type RelatedRecords = Unset;
10376        type IndexedAt = Unset;
10377        type Moderation = Unset;
10378    }
10379    ///State transition - sets the `did` field to Set
10380    pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
10381    impl<S: State> sealed::Sealed for SetDid<S> {}
10382    impl<S: State> State for SetDid<S> {
10383        type Did = Set<members::did>;
10384        type Handle = S::Handle;
10385        type RelatedRecords = S::RelatedRecords;
10386        type IndexedAt = S::IndexedAt;
10387        type Moderation = S::Moderation;
10388    }
10389    ///State transition - sets the `handle` field to Set
10390    pub struct SetHandle<S: State = Empty>(PhantomData<fn() -> S>);
10391    impl<S: State> sealed::Sealed for SetHandle<S> {}
10392    impl<S: State> State for SetHandle<S> {
10393        type Did = S::Did;
10394        type Handle = Set<members::handle>;
10395        type RelatedRecords = S::RelatedRecords;
10396        type IndexedAt = S::IndexedAt;
10397        type Moderation = S::Moderation;
10398    }
10399    ///State transition - sets the `related_records` field to Set
10400    pub struct SetRelatedRecords<S: State = Empty>(PhantomData<fn() -> S>);
10401    impl<S: State> sealed::Sealed for SetRelatedRecords<S> {}
10402    impl<S: State> State for SetRelatedRecords<S> {
10403        type Did = S::Did;
10404        type Handle = S::Handle;
10405        type RelatedRecords = Set<members::related_records>;
10406        type IndexedAt = S::IndexedAt;
10407        type Moderation = S::Moderation;
10408    }
10409    ///State transition - sets the `indexed_at` field to Set
10410    pub struct SetIndexedAt<S: State = Empty>(PhantomData<fn() -> S>);
10411    impl<S: State> sealed::Sealed for SetIndexedAt<S> {}
10412    impl<S: State> State for SetIndexedAt<S> {
10413        type Did = S::Did;
10414        type Handle = S::Handle;
10415        type RelatedRecords = S::RelatedRecords;
10416        type IndexedAt = Set<members::indexed_at>;
10417        type Moderation = S::Moderation;
10418    }
10419    ///State transition - sets the `moderation` field to Set
10420    pub struct SetModeration<S: State = Empty>(PhantomData<fn() -> S>);
10421    impl<S: State> sealed::Sealed for SetModeration<S> {}
10422    impl<S: State> State for SetModeration<S> {
10423        type Did = S::Did;
10424        type Handle = S::Handle;
10425        type RelatedRecords = S::RelatedRecords;
10426        type IndexedAt = S::IndexedAt;
10427        type Moderation = Set<members::moderation>;
10428    }
10429    /// Marker types for field names
10430    #[allow(non_camel_case_types)]
10431    pub mod members {
10432        ///Marker type for the `did` field
10433        pub struct did(());
10434        ///Marker type for the `handle` field
10435        pub struct handle(());
10436        ///Marker type for the `related_records` field
10437        pub struct related_records(());
10438        ///Marker type for the `indexed_at` field
10439        pub struct indexed_at(());
10440        ///Marker type for the `moderation` field
10441        pub struct moderation(());
10442    }
10443}
10444
10445/// Builder for constructing an instance of this type
10446pub struct RepoViewDetailBuilder<'a, S: repo_view_detail_state::State> {
10447    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
10448    __unsafe_private_named: (
10449        ::core::option::Option<jacquard_common::types::string::Datetime>,
10450        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
10451        ::core::option::Option<jacquard_common::CowStr<'a>>,
10452        ::core::option::Option<jacquard_common::types::string::Datetime>,
10453        ::core::option::Option<jacquard_common::types::string::Handle<'a>>,
10454        ::core::option::Option<jacquard_common::types::string::Datetime>,
10455        ::core::option::Option<jacquard_common::CowStr<'a>>,
10456        ::core::option::Option<crate::com_atproto::server::InviteCode<'a>>,
10457        ::core::option::Option<Vec<crate::com_atproto::server::InviteCode<'a>>>,
10458        ::core::option::Option<bool>,
10459        ::core::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
10460        ::core::option::Option<crate::tools_ozone::moderation::ModerationDetail<'a>>,
10461        ::core::option::Option<Vec<jacquard_common::types::value::Data<'a>>>,
10462        ::core::option::Option<Vec<crate::com_atproto::admin::ThreatSignature<'a>>>,
10463    ),
10464    _phantom: ::core::marker::PhantomData<&'a ()>,
10465}
10466
10467impl<'a> RepoViewDetail<'a> {
10468    /// Create a new builder for this type
10469    pub fn new() -> RepoViewDetailBuilder<'a, repo_view_detail_state::Empty> {
10470        RepoViewDetailBuilder::new()
10471    }
10472}
10473
10474impl<'a> RepoViewDetailBuilder<'a, repo_view_detail_state::Empty> {
10475    /// Create a new builder with all fields unset
10476    pub fn new() -> Self {
10477        RepoViewDetailBuilder {
10478            _phantom_state: ::core::marker::PhantomData,
10479            __unsafe_private_named: (
10480                None,
10481                None,
10482                None,
10483                None,
10484                None,
10485                None,
10486                None,
10487                None,
10488                None,
10489                None,
10490                None,
10491                None,
10492                None,
10493                None,
10494            ),
10495            _phantom: ::core::marker::PhantomData,
10496        }
10497    }
10498}
10499
10500impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10501    /// Set the `deactivatedAt` field (optional)
10502    pub fn deactivated_at(
10503        mut self,
10504        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
10505    ) -> Self {
10506        self.__unsafe_private_named.0 = value.into();
10507        self
10508    }
10509    /// Set the `deactivatedAt` field to an Option value (optional)
10510    pub fn maybe_deactivated_at(
10511        mut self,
10512        value: Option<jacquard_common::types::string::Datetime>,
10513    ) -> Self {
10514        self.__unsafe_private_named.0 = value;
10515        self
10516    }
10517}
10518
10519impl<'a, S> RepoViewDetailBuilder<'a, S>
10520where
10521    S: repo_view_detail_state::State,
10522    S::Did: repo_view_detail_state::IsUnset,
10523{
10524    /// Set the `did` field (required)
10525    pub fn did(
10526        mut self,
10527        value: impl Into<jacquard_common::types::string::Did<'a>>,
10528    ) -> RepoViewDetailBuilder<'a, repo_view_detail_state::SetDid<S>> {
10529        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
10530        RepoViewDetailBuilder {
10531            _phantom_state: ::core::marker::PhantomData,
10532            __unsafe_private_named: self.__unsafe_private_named,
10533            _phantom: ::core::marker::PhantomData,
10534        }
10535    }
10536}
10537
10538impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10539    /// Set the `email` field (optional)
10540    pub fn email(
10541        mut self,
10542        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
10543    ) -> Self {
10544        self.__unsafe_private_named.2 = value.into();
10545        self
10546    }
10547    /// Set the `email` field to an Option value (optional)
10548    pub fn maybe_email(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
10549        self.__unsafe_private_named.2 = value;
10550        self
10551    }
10552}
10553
10554impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10555    /// Set the `emailConfirmedAt` field (optional)
10556    pub fn email_confirmed_at(
10557        mut self,
10558        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
10559    ) -> Self {
10560        self.__unsafe_private_named.3 = value.into();
10561        self
10562    }
10563    /// Set the `emailConfirmedAt` field to an Option value (optional)
10564    pub fn maybe_email_confirmed_at(
10565        mut self,
10566        value: Option<jacquard_common::types::string::Datetime>,
10567    ) -> Self {
10568        self.__unsafe_private_named.3 = value;
10569        self
10570    }
10571}
10572
10573impl<'a, S> RepoViewDetailBuilder<'a, S>
10574where
10575    S: repo_view_detail_state::State,
10576    S::Handle: repo_view_detail_state::IsUnset,
10577{
10578    /// Set the `handle` field (required)
10579    pub fn handle(
10580        mut self,
10581        value: impl Into<jacquard_common::types::string::Handle<'a>>,
10582    ) -> RepoViewDetailBuilder<'a, repo_view_detail_state::SetHandle<S>> {
10583        self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
10584        RepoViewDetailBuilder {
10585            _phantom_state: ::core::marker::PhantomData,
10586            __unsafe_private_named: self.__unsafe_private_named,
10587            _phantom: ::core::marker::PhantomData,
10588        }
10589    }
10590}
10591
10592impl<'a, S> RepoViewDetailBuilder<'a, S>
10593where
10594    S: repo_view_detail_state::State,
10595    S::IndexedAt: repo_view_detail_state::IsUnset,
10596{
10597    /// Set the `indexedAt` field (required)
10598    pub fn indexed_at(
10599        mut self,
10600        value: impl Into<jacquard_common::types::string::Datetime>,
10601    ) -> RepoViewDetailBuilder<'a, repo_view_detail_state::SetIndexedAt<S>> {
10602        self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
10603        RepoViewDetailBuilder {
10604            _phantom_state: ::core::marker::PhantomData,
10605            __unsafe_private_named: self.__unsafe_private_named,
10606            _phantom: ::core::marker::PhantomData,
10607        }
10608    }
10609}
10610
10611impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10612    /// Set the `inviteNote` field (optional)
10613    pub fn invite_note(
10614        mut self,
10615        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
10616    ) -> Self {
10617        self.__unsafe_private_named.6 = value.into();
10618        self
10619    }
10620    /// Set the `inviteNote` field to an Option value (optional)
10621    pub fn maybe_invite_note(
10622        mut self,
10623        value: Option<jacquard_common::CowStr<'a>>,
10624    ) -> Self {
10625        self.__unsafe_private_named.6 = value;
10626        self
10627    }
10628}
10629
10630impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10631    /// Set the `invitedBy` field (optional)
10632    pub fn invited_by(
10633        mut self,
10634        value: impl Into<Option<crate::com_atproto::server::InviteCode<'a>>>,
10635    ) -> Self {
10636        self.__unsafe_private_named.7 = value.into();
10637        self
10638    }
10639    /// Set the `invitedBy` field to an Option value (optional)
10640    pub fn maybe_invited_by(
10641        mut self,
10642        value: Option<crate::com_atproto::server::InviteCode<'a>>,
10643    ) -> Self {
10644        self.__unsafe_private_named.7 = value;
10645        self
10646    }
10647}
10648
10649impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10650    /// Set the `invites` field (optional)
10651    pub fn invites(
10652        mut self,
10653        value: impl Into<Option<Vec<crate::com_atproto::server::InviteCode<'a>>>>,
10654    ) -> Self {
10655        self.__unsafe_private_named.8 = value.into();
10656        self
10657    }
10658    /// Set the `invites` field to an Option value (optional)
10659    pub fn maybe_invites(
10660        mut self,
10661        value: Option<Vec<crate::com_atproto::server::InviteCode<'a>>>,
10662    ) -> Self {
10663        self.__unsafe_private_named.8 = value;
10664        self
10665    }
10666}
10667
10668impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10669    /// Set the `invitesDisabled` field (optional)
10670    pub fn invites_disabled(mut self, value: impl Into<Option<bool>>) -> Self {
10671        self.__unsafe_private_named.9 = value.into();
10672        self
10673    }
10674    /// Set the `invitesDisabled` field to an Option value (optional)
10675    pub fn maybe_invites_disabled(mut self, value: Option<bool>) -> Self {
10676        self.__unsafe_private_named.9 = value;
10677        self
10678    }
10679}
10680
10681impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10682    /// Set the `labels` field (optional)
10683    pub fn labels(
10684        mut self,
10685        value: impl Into<Option<Vec<crate::com_atproto::label::Label<'a>>>>,
10686    ) -> Self {
10687        self.__unsafe_private_named.10 = value.into();
10688        self
10689    }
10690    /// Set the `labels` field to an Option value (optional)
10691    pub fn maybe_labels(
10692        mut self,
10693        value: Option<Vec<crate::com_atproto::label::Label<'a>>>,
10694    ) -> Self {
10695        self.__unsafe_private_named.10 = value;
10696        self
10697    }
10698}
10699
10700impl<'a, S> RepoViewDetailBuilder<'a, S>
10701where
10702    S: repo_view_detail_state::State,
10703    S::Moderation: repo_view_detail_state::IsUnset,
10704{
10705    /// Set the `moderation` field (required)
10706    pub fn moderation(
10707        mut self,
10708        value: impl Into<crate::tools_ozone::moderation::ModerationDetail<'a>>,
10709    ) -> RepoViewDetailBuilder<'a, repo_view_detail_state::SetModeration<S>> {
10710        self.__unsafe_private_named.11 = ::core::option::Option::Some(value.into());
10711        RepoViewDetailBuilder {
10712            _phantom_state: ::core::marker::PhantomData,
10713            __unsafe_private_named: self.__unsafe_private_named,
10714            _phantom: ::core::marker::PhantomData,
10715        }
10716    }
10717}
10718
10719impl<'a, S> RepoViewDetailBuilder<'a, S>
10720where
10721    S: repo_view_detail_state::State,
10722    S::RelatedRecords: repo_view_detail_state::IsUnset,
10723{
10724    /// Set the `relatedRecords` field (required)
10725    pub fn related_records(
10726        mut self,
10727        value: impl Into<Vec<jacquard_common::types::value::Data<'a>>>,
10728    ) -> RepoViewDetailBuilder<'a, repo_view_detail_state::SetRelatedRecords<S>> {
10729        self.__unsafe_private_named.12 = ::core::option::Option::Some(value.into());
10730        RepoViewDetailBuilder {
10731            _phantom_state: ::core::marker::PhantomData,
10732            __unsafe_private_named: self.__unsafe_private_named,
10733            _phantom: ::core::marker::PhantomData,
10734        }
10735    }
10736}
10737
10738impl<'a, S: repo_view_detail_state::State> RepoViewDetailBuilder<'a, S> {
10739    /// Set the `threatSignatures` field (optional)
10740    pub fn threat_signatures(
10741        mut self,
10742        value: impl Into<Option<Vec<crate::com_atproto::admin::ThreatSignature<'a>>>>,
10743    ) -> Self {
10744        self.__unsafe_private_named.13 = value.into();
10745        self
10746    }
10747    /// Set the `threatSignatures` field to an Option value (optional)
10748    pub fn maybe_threat_signatures(
10749        mut self,
10750        value: Option<Vec<crate::com_atproto::admin::ThreatSignature<'a>>>,
10751    ) -> Self {
10752        self.__unsafe_private_named.13 = value;
10753        self
10754    }
10755}
10756
10757impl<'a, S> RepoViewDetailBuilder<'a, S>
10758where
10759    S: repo_view_detail_state::State,
10760    S::Did: repo_view_detail_state::IsSet,
10761    S::Handle: repo_view_detail_state::IsSet,
10762    S::RelatedRecords: repo_view_detail_state::IsSet,
10763    S::IndexedAt: repo_view_detail_state::IsSet,
10764    S::Moderation: repo_view_detail_state::IsSet,
10765{
10766    /// Build the final struct
10767    pub fn build(self) -> RepoViewDetail<'a> {
10768        RepoViewDetail {
10769            deactivated_at: self.__unsafe_private_named.0,
10770            did: self.__unsafe_private_named.1.unwrap(),
10771            email: self.__unsafe_private_named.2,
10772            email_confirmed_at: self.__unsafe_private_named.3,
10773            handle: self.__unsafe_private_named.4.unwrap(),
10774            indexed_at: self.__unsafe_private_named.5.unwrap(),
10775            invite_note: self.__unsafe_private_named.6,
10776            invited_by: self.__unsafe_private_named.7,
10777            invites: self.__unsafe_private_named.8,
10778            invites_disabled: self.__unsafe_private_named.9,
10779            labels: self.__unsafe_private_named.10,
10780            moderation: self.__unsafe_private_named.11.unwrap(),
10781            related_records: self.__unsafe_private_named.12.unwrap(),
10782            threat_signatures: self.__unsafe_private_named.13,
10783            extra_data: Default::default(),
10784        }
10785    }
10786    /// Build the final struct with custom extra_data
10787    pub fn build_with_data(
10788        self,
10789        extra_data: std::collections::BTreeMap<
10790            jacquard_common::smol_str::SmolStr,
10791            jacquard_common::types::value::Data<'a>,
10792        >,
10793    ) -> RepoViewDetail<'a> {
10794        RepoViewDetail {
10795            deactivated_at: self.__unsafe_private_named.0,
10796            did: self.__unsafe_private_named.1.unwrap(),
10797            email: self.__unsafe_private_named.2,
10798            email_confirmed_at: self.__unsafe_private_named.3,
10799            handle: self.__unsafe_private_named.4.unwrap(),
10800            indexed_at: self.__unsafe_private_named.5.unwrap(),
10801            invite_note: self.__unsafe_private_named.6,
10802            invited_by: self.__unsafe_private_named.7,
10803            invites: self.__unsafe_private_named.8,
10804            invites_disabled: self.__unsafe_private_named.9,
10805            labels: self.__unsafe_private_named.10,
10806            moderation: self.__unsafe_private_named.11.unwrap(),
10807            related_records: self.__unsafe_private_named.12.unwrap(),
10808            threat_signatures: self.__unsafe_private_named.13,
10809            extra_data: Some(extra_data),
10810        }
10811    }
10812}
10813
10814impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RepoViewDetail<'a> {
10815    fn nsid() -> &'static str {
10816        "tools.ozone.moderation.defs"
10817    }
10818    fn def_name() -> &'static str {
10819        "repoViewDetail"
10820    }
10821    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
10822        lexicon_doc_tools_ozone_moderation_defs()
10823    }
10824    fn validate(
10825        &self,
10826    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
10827        Ok(())
10828    }
10829}
10830
10831#[jacquard_derive::lexicon]
10832#[derive(
10833    serde::Serialize,
10834    serde::Deserialize,
10835    Debug,
10836    Clone,
10837    PartialEq,
10838    Eq,
10839    jacquard_derive::IntoStatic
10840)]
10841#[serde(rename_all = "camelCase")]
10842pub struct RepoViewNotFound<'a> {
10843    #[serde(borrow)]
10844    pub did: jacquard_common::types::string::Did<'a>,
10845}
10846
10847pub mod repo_view_not_found_state {
10848
10849    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
10850    #[allow(unused)]
10851    use ::core::marker::PhantomData;
10852    mod sealed {
10853        pub trait Sealed {}
10854    }
10855    /// State trait tracking which required fields have been set
10856    pub trait State: sealed::Sealed {
10857        type Did;
10858    }
10859    /// Empty state - all required fields are unset
10860    pub struct Empty(());
10861    impl sealed::Sealed for Empty {}
10862    impl State for Empty {
10863        type Did = Unset;
10864    }
10865    ///State transition - sets the `did` field to Set
10866    pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
10867    impl<S: State> sealed::Sealed for SetDid<S> {}
10868    impl<S: State> State for SetDid<S> {
10869        type Did = Set<members::did>;
10870    }
10871    /// Marker types for field names
10872    #[allow(non_camel_case_types)]
10873    pub mod members {
10874        ///Marker type for the `did` field
10875        pub struct did(());
10876    }
10877}
10878
10879/// Builder for constructing an instance of this type
10880pub struct RepoViewNotFoundBuilder<'a, S: repo_view_not_found_state::State> {
10881    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
10882    __unsafe_private_named: (
10883        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
10884    ),
10885    _phantom: ::core::marker::PhantomData<&'a ()>,
10886}
10887
10888impl<'a> RepoViewNotFound<'a> {
10889    /// Create a new builder for this type
10890    pub fn new() -> RepoViewNotFoundBuilder<'a, repo_view_not_found_state::Empty> {
10891        RepoViewNotFoundBuilder::new()
10892    }
10893}
10894
10895impl<'a> RepoViewNotFoundBuilder<'a, repo_view_not_found_state::Empty> {
10896    /// Create a new builder with all fields unset
10897    pub fn new() -> Self {
10898        RepoViewNotFoundBuilder {
10899            _phantom_state: ::core::marker::PhantomData,
10900            __unsafe_private_named: (None,),
10901            _phantom: ::core::marker::PhantomData,
10902        }
10903    }
10904}
10905
10906impl<'a, S> RepoViewNotFoundBuilder<'a, S>
10907where
10908    S: repo_view_not_found_state::State,
10909    S::Did: repo_view_not_found_state::IsUnset,
10910{
10911    /// Set the `did` field (required)
10912    pub fn did(
10913        mut self,
10914        value: impl Into<jacquard_common::types::string::Did<'a>>,
10915    ) -> RepoViewNotFoundBuilder<'a, repo_view_not_found_state::SetDid<S>> {
10916        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
10917        RepoViewNotFoundBuilder {
10918            _phantom_state: ::core::marker::PhantomData,
10919            __unsafe_private_named: self.__unsafe_private_named,
10920            _phantom: ::core::marker::PhantomData,
10921        }
10922    }
10923}
10924
10925impl<'a, S> RepoViewNotFoundBuilder<'a, S>
10926where
10927    S: repo_view_not_found_state::State,
10928    S::Did: repo_view_not_found_state::IsSet,
10929{
10930    /// Build the final struct
10931    pub fn build(self) -> RepoViewNotFound<'a> {
10932        RepoViewNotFound {
10933            did: self.__unsafe_private_named.0.unwrap(),
10934            extra_data: Default::default(),
10935        }
10936    }
10937    /// Build the final struct with custom extra_data
10938    pub fn build_with_data(
10939        self,
10940        extra_data: std::collections::BTreeMap<
10941            jacquard_common::smol_str::SmolStr,
10942            jacquard_common::types::value::Data<'a>,
10943        >,
10944    ) -> RepoViewNotFound<'a> {
10945        RepoViewNotFound {
10946            did: self.__unsafe_private_named.0.unwrap(),
10947            extra_data: Some(extra_data),
10948        }
10949    }
10950}
10951
10952impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RepoViewNotFound<'a> {
10953    fn nsid() -> &'static str {
10954        "tools.ozone.moderation.defs"
10955    }
10956    fn def_name() -> &'static str {
10957        "repoViewNotFound"
10958    }
10959    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
10960        lexicon_doc_tools_ozone_moderation_defs()
10961    }
10962    fn validate(
10963        &self,
10964    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
10965        Ok(())
10966    }
10967}
10968
10969#[jacquard_derive::lexicon]
10970#[derive(
10971    serde::Serialize,
10972    serde::Deserialize,
10973    Debug,
10974    Clone,
10975    PartialEq,
10976    Eq,
10977    jacquard_derive::IntoStatic
10978)]
10979#[serde(rename_all = "camelCase")]
10980pub struct ReporterStats<'a> {
10981    /// The total number of reports made by the user on accounts.
10982    pub account_report_count: i64,
10983    #[serde(borrow)]
10984    pub did: jacquard_common::types::string::Did<'a>,
10985    /// The total number of accounts labeled as a result of the user's reports.
10986    pub labeled_account_count: i64,
10987    /// The total number of records labeled as a result of the user's reports.
10988    pub labeled_record_count: i64,
10989    /// The total number of reports made by the user on records.
10990    pub record_report_count: i64,
10991    /// The total number of accounts reported by the user.
10992    pub reported_account_count: i64,
10993    /// The total number of records reported by the user.
10994    pub reported_record_count: i64,
10995    /// The total number of accounts taken down as a result of the user's reports.
10996    pub takendown_account_count: i64,
10997    /// The total number of records taken down as a result of the user's reports.
10998    pub takendown_record_count: i64,
10999}
11000
11001pub mod reporter_stats_state {
11002
11003    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
11004    #[allow(unused)]
11005    use ::core::marker::PhantomData;
11006    mod sealed {
11007        pub trait Sealed {}
11008    }
11009    /// State trait tracking which required fields have been set
11010    pub trait State: sealed::Sealed {
11011        type Did;
11012        type AccountReportCount;
11013        type RecordReportCount;
11014        type ReportedAccountCount;
11015        type ReportedRecordCount;
11016        type TakendownAccountCount;
11017        type TakendownRecordCount;
11018        type LabeledAccountCount;
11019        type LabeledRecordCount;
11020    }
11021    /// Empty state - all required fields are unset
11022    pub struct Empty(());
11023    impl sealed::Sealed for Empty {}
11024    impl State for Empty {
11025        type Did = Unset;
11026        type AccountReportCount = Unset;
11027        type RecordReportCount = Unset;
11028        type ReportedAccountCount = Unset;
11029        type ReportedRecordCount = Unset;
11030        type TakendownAccountCount = Unset;
11031        type TakendownRecordCount = Unset;
11032        type LabeledAccountCount = Unset;
11033        type LabeledRecordCount = Unset;
11034    }
11035    ///State transition - sets the `did` field to Set
11036    pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
11037    impl<S: State> sealed::Sealed for SetDid<S> {}
11038    impl<S: State> State for SetDid<S> {
11039        type Did = Set<members::did>;
11040        type AccountReportCount = S::AccountReportCount;
11041        type RecordReportCount = S::RecordReportCount;
11042        type ReportedAccountCount = S::ReportedAccountCount;
11043        type ReportedRecordCount = S::ReportedRecordCount;
11044        type TakendownAccountCount = S::TakendownAccountCount;
11045        type TakendownRecordCount = S::TakendownRecordCount;
11046        type LabeledAccountCount = S::LabeledAccountCount;
11047        type LabeledRecordCount = S::LabeledRecordCount;
11048    }
11049    ///State transition - sets the `account_report_count` field to Set
11050    pub struct SetAccountReportCount<S: State = Empty>(PhantomData<fn() -> S>);
11051    impl<S: State> sealed::Sealed for SetAccountReportCount<S> {}
11052    impl<S: State> State for SetAccountReportCount<S> {
11053        type Did = S::Did;
11054        type AccountReportCount = Set<members::account_report_count>;
11055        type RecordReportCount = S::RecordReportCount;
11056        type ReportedAccountCount = S::ReportedAccountCount;
11057        type ReportedRecordCount = S::ReportedRecordCount;
11058        type TakendownAccountCount = S::TakendownAccountCount;
11059        type TakendownRecordCount = S::TakendownRecordCount;
11060        type LabeledAccountCount = S::LabeledAccountCount;
11061        type LabeledRecordCount = S::LabeledRecordCount;
11062    }
11063    ///State transition - sets the `record_report_count` field to Set
11064    pub struct SetRecordReportCount<S: State = Empty>(PhantomData<fn() -> S>);
11065    impl<S: State> sealed::Sealed for SetRecordReportCount<S> {}
11066    impl<S: State> State for SetRecordReportCount<S> {
11067        type Did = S::Did;
11068        type AccountReportCount = S::AccountReportCount;
11069        type RecordReportCount = Set<members::record_report_count>;
11070        type ReportedAccountCount = S::ReportedAccountCount;
11071        type ReportedRecordCount = S::ReportedRecordCount;
11072        type TakendownAccountCount = S::TakendownAccountCount;
11073        type TakendownRecordCount = S::TakendownRecordCount;
11074        type LabeledAccountCount = S::LabeledAccountCount;
11075        type LabeledRecordCount = S::LabeledRecordCount;
11076    }
11077    ///State transition - sets the `reported_account_count` field to Set
11078    pub struct SetReportedAccountCount<S: State = Empty>(PhantomData<fn() -> S>);
11079    impl<S: State> sealed::Sealed for SetReportedAccountCount<S> {}
11080    impl<S: State> State for SetReportedAccountCount<S> {
11081        type Did = S::Did;
11082        type AccountReportCount = S::AccountReportCount;
11083        type RecordReportCount = S::RecordReportCount;
11084        type ReportedAccountCount = Set<members::reported_account_count>;
11085        type ReportedRecordCount = S::ReportedRecordCount;
11086        type TakendownAccountCount = S::TakendownAccountCount;
11087        type TakendownRecordCount = S::TakendownRecordCount;
11088        type LabeledAccountCount = S::LabeledAccountCount;
11089        type LabeledRecordCount = S::LabeledRecordCount;
11090    }
11091    ///State transition - sets the `reported_record_count` field to Set
11092    pub struct SetReportedRecordCount<S: State = Empty>(PhantomData<fn() -> S>);
11093    impl<S: State> sealed::Sealed for SetReportedRecordCount<S> {}
11094    impl<S: State> State for SetReportedRecordCount<S> {
11095        type Did = S::Did;
11096        type AccountReportCount = S::AccountReportCount;
11097        type RecordReportCount = S::RecordReportCount;
11098        type ReportedAccountCount = S::ReportedAccountCount;
11099        type ReportedRecordCount = Set<members::reported_record_count>;
11100        type TakendownAccountCount = S::TakendownAccountCount;
11101        type TakendownRecordCount = S::TakendownRecordCount;
11102        type LabeledAccountCount = S::LabeledAccountCount;
11103        type LabeledRecordCount = S::LabeledRecordCount;
11104    }
11105    ///State transition - sets the `takendown_account_count` field to Set
11106    pub struct SetTakendownAccountCount<S: State = Empty>(PhantomData<fn() -> S>);
11107    impl<S: State> sealed::Sealed for SetTakendownAccountCount<S> {}
11108    impl<S: State> State for SetTakendownAccountCount<S> {
11109        type Did = S::Did;
11110        type AccountReportCount = S::AccountReportCount;
11111        type RecordReportCount = S::RecordReportCount;
11112        type ReportedAccountCount = S::ReportedAccountCount;
11113        type ReportedRecordCount = S::ReportedRecordCount;
11114        type TakendownAccountCount = Set<members::takendown_account_count>;
11115        type TakendownRecordCount = S::TakendownRecordCount;
11116        type LabeledAccountCount = S::LabeledAccountCount;
11117        type LabeledRecordCount = S::LabeledRecordCount;
11118    }
11119    ///State transition - sets the `takendown_record_count` field to Set
11120    pub struct SetTakendownRecordCount<S: State = Empty>(PhantomData<fn() -> S>);
11121    impl<S: State> sealed::Sealed for SetTakendownRecordCount<S> {}
11122    impl<S: State> State for SetTakendownRecordCount<S> {
11123        type Did = S::Did;
11124        type AccountReportCount = S::AccountReportCount;
11125        type RecordReportCount = S::RecordReportCount;
11126        type ReportedAccountCount = S::ReportedAccountCount;
11127        type ReportedRecordCount = S::ReportedRecordCount;
11128        type TakendownAccountCount = S::TakendownAccountCount;
11129        type TakendownRecordCount = Set<members::takendown_record_count>;
11130        type LabeledAccountCount = S::LabeledAccountCount;
11131        type LabeledRecordCount = S::LabeledRecordCount;
11132    }
11133    ///State transition - sets the `labeled_account_count` field to Set
11134    pub struct SetLabeledAccountCount<S: State = Empty>(PhantomData<fn() -> S>);
11135    impl<S: State> sealed::Sealed for SetLabeledAccountCount<S> {}
11136    impl<S: State> State for SetLabeledAccountCount<S> {
11137        type Did = S::Did;
11138        type AccountReportCount = S::AccountReportCount;
11139        type RecordReportCount = S::RecordReportCount;
11140        type ReportedAccountCount = S::ReportedAccountCount;
11141        type ReportedRecordCount = S::ReportedRecordCount;
11142        type TakendownAccountCount = S::TakendownAccountCount;
11143        type TakendownRecordCount = S::TakendownRecordCount;
11144        type LabeledAccountCount = Set<members::labeled_account_count>;
11145        type LabeledRecordCount = S::LabeledRecordCount;
11146    }
11147    ///State transition - sets the `labeled_record_count` field to Set
11148    pub struct SetLabeledRecordCount<S: State = Empty>(PhantomData<fn() -> S>);
11149    impl<S: State> sealed::Sealed for SetLabeledRecordCount<S> {}
11150    impl<S: State> State for SetLabeledRecordCount<S> {
11151        type Did = S::Did;
11152        type AccountReportCount = S::AccountReportCount;
11153        type RecordReportCount = S::RecordReportCount;
11154        type ReportedAccountCount = S::ReportedAccountCount;
11155        type ReportedRecordCount = S::ReportedRecordCount;
11156        type TakendownAccountCount = S::TakendownAccountCount;
11157        type TakendownRecordCount = S::TakendownRecordCount;
11158        type LabeledAccountCount = S::LabeledAccountCount;
11159        type LabeledRecordCount = Set<members::labeled_record_count>;
11160    }
11161    /// Marker types for field names
11162    #[allow(non_camel_case_types)]
11163    pub mod members {
11164        ///Marker type for the `did` field
11165        pub struct did(());
11166        ///Marker type for the `account_report_count` field
11167        pub struct account_report_count(());
11168        ///Marker type for the `record_report_count` field
11169        pub struct record_report_count(());
11170        ///Marker type for the `reported_account_count` field
11171        pub struct reported_account_count(());
11172        ///Marker type for the `reported_record_count` field
11173        pub struct reported_record_count(());
11174        ///Marker type for the `takendown_account_count` field
11175        pub struct takendown_account_count(());
11176        ///Marker type for the `takendown_record_count` field
11177        pub struct takendown_record_count(());
11178        ///Marker type for the `labeled_account_count` field
11179        pub struct labeled_account_count(());
11180        ///Marker type for the `labeled_record_count` field
11181        pub struct labeled_record_count(());
11182    }
11183}
11184
11185/// Builder for constructing an instance of this type
11186pub struct ReporterStatsBuilder<'a, S: reporter_stats_state::State> {
11187    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
11188    __unsafe_private_named: (
11189        ::core::option::Option<i64>,
11190        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
11191        ::core::option::Option<i64>,
11192        ::core::option::Option<i64>,
11193        ::core::option::Option<i64>,
11194        ::core::option::Option<i64>,
11195        ::core::option::Option<i64>,
11196        ::core::option::Option<i64>,
11197        ::core::option::Option<i64>,
11198    ),
11199    _phantom: ::core::marker::PhantomData<&'a ()>,
11200}
11201
11202impl<'a> ReporterStats<'a> {
11203    /// Create a new builder for this type
11204    pub fn new() -> ReporterStatsBuilder<'a, reporter_stats_state::Empty> {
11205        ReporterStatsBuilder::new()
11206    }
11207}
11208
11209impl<'a> ReporterStatsBuilder<'a, reporter_stats_state::Empty> {
11210    /// Create a new builder with all fields unset
11211    pub fn new() -> Self {
11212        ReporterStatsBuilder {
11213            _phantom_state: ::core::marker::PhantomData,
11214            __unsafe_private_named: (
11215                None,
11216                None,
11217                None,
11218                None,
11219                None,
11220                None,
11221                None,
11222                None,
11223                None,
11224            ),
11225            _phantom: ::core::marker::PhantomData,
11226        }
11227    }
11228}
11229
11230impl<'a, S> ReporterStatsBuilder<'a, S>
11231where
11232    S: reporter_stats_state::State,
11233    S::AccountReportCount: reporter_stats_state::IsUnset,
11234{
11235    /// Set the `accountReportCount` field (required)
11236    pub fn account_report_count(
11237        mut self,
11238        value: impl Into<i64>,
11239    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetAccountReportCount<S>> {
11240        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
11241        ReporterStatsBuilder {
11242            _phantom_state: ::core::marker::PhantomData,
11243            __unsafe_private_named: self.__unsafe_private_named,
11244            _phantom: ::core::marker::PhantomData,
11245        }
11246    }
11247}
11248
11249impl<'a, S> ReporterStatsBuilder<'a, S>
11250where
11251    S: reporter_stats_state::State,
11252    S::Did: reporter_stats_state::IsUnset,
11253{
11254    /// Set the `did` field (required)
11255    pub fn did(
11256        mut self,
11257        value: impl Into<jacquard_common::types::string::Did<'a>>,
11258    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetDid<S>> {
11259        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
11260        ReporterStatsBuilder {
11261            _phantom_state: ::core::marker::PhantomData,
11262            __unsafe_private_named: self.__unsafe_private_named,
11263            _phantom: ::core::marker::PhantomData,
11264        }
11265    }
11266}
11267
11268impl<'a, S> ReporterStatsBuilder<'a, S>
11269where
11270    S: reporter_stats_state::State,
11271    S::LabeledAccountCount: reporter_stats_state::IsUnset,
11272{
11273    /// Set the `labeledAccountCount` field (required)
11274    pub fn labeled_account_count(
11275        mut self,
11276        value: impl Into<i64>,
11277    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetLabeledAccountCount<S>> {
11278        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
11279        ReporterStatsBuilder {
11280            _phantom_state: ::core::marker::PhantomData,
11281            __unsafe_private_named: self.__unsafe_private_named,
11282            _phantom: ::core::marker::PhantomData,
11283        }
11284    }
11285}
11286
11287impl<'a, S> ReporterStatsBuilder<'a, S>
11288where
11289    S: reporter_stats_state::State,
11290    S::LabeledRecordCount: reporter_stats_state::IsUnset,
11291{
11292    /// Set the `labeledRecordCount` field (required)
11293    pub fn labeled_record_count(
11294        mut self,
11295        value: impl Into<i64>,
11296    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetLabeledRecordCount<S>> {
11297        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
11298        ReporterStatsBuilder {
11299            _phantom_state: ::core::marker::PhantomData,
11300            __unsafe_private_named: self.__unsafe_private_named,
11301            _phantom: ::core::marker::PhantomData,
11302        }
11303    }
11304}
11305
11306impl<'a, S> ReporterStatsBuilder<'a, S>
11307where
11308    S: reporter_stats_state::State,
11309    S::RecordReportCount: reporter_stats_state::IsUnset,
11310{
11311    /// Set the `recordReportCount` field (required)
11312    pub fn record_report_count(
11313        mut self,
11314        value: impl Into<i64>,
11315    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetRecordReportCount<S>> {
11316        self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
11317        ReporterStatsBuilder {
11318            _phantom_state: ::core::marker::PhantomData,
11319            __unsafe_private_named: self.__unsafe_private_named,
11320            _phantom: ::core::marker::PhantomData,
11321        }
11322    }
11323}
11324
11325impl<'a, S> ReporterStatsBuilder<'a, S>
11326where
11327    S: reporter_stats_state::State,
11328    S::ReportedAccountCount: reporter_stats_state::IsUnset,
11329{
11330    /// Set the `reportedAccountCount` field (required)
11331    pub fn reported_account_count(
11332        mut self,
11333        value: impl Into<i64>,
11334    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetReportedAccountCount<S>> {
11335        self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
11336        ReporterStatsBuilder {
11337            _phantom_state: ::core::marker::PhantomData,
11338            __unsafe_private_named: self.__unsafe_private_named,
11339            _phantom: ::core::marker::PhantomData,
11340        }
11341    }
11342}
11343
11344impl<'a, S> ReporterStatsBuilder<'a, S>
11345where
11346    S: reporter_stats_state::State,
11347    S::ReportedRecordCount: reporter_stats_state::IsUnset,
11348{
11349    /// Set the `reportedRecordCount` field (required)
11350    pub fn reported_record_count(
11351        mut self,
11352        value: impl Into<i64>,
11353    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetReportedRecordCount<S>> {
11354        self.__unsafe_private_named.6 = ::core::option::Option::Some(value.into());
11355        ReporterStatsBuilder {
11356            _phantom_state: ::core::marker::PhantomData,
11357            __unsafe_private_named: self.__unsafe_private_named,
11358            _phantom: ::core::marker::PhantomData,
11359        }
11360    }
11361}
11362
11363impl<'a, S> ReporterStatsBuilder<'a, S>
11364where
11365    S: reporter_stats_state::State,
11366    S::TakendownAccountCount: reporter_stats_state::IsUnset,
11367{
11368    /// Set the `takendownAccountCount` field (required)
11369    pub fn takendown_account_count(
11370        mut self,
11371        value: impl Into<i64>,
11372    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetTakendownAccountCount<S>> {
11373        self.__unsafe_private_named.7 = ::core::option::Option::Some(value.into());
11374        ReporterStatsBuilder {
11375            _phantom_state: ::core::marker::PhantomData,
11376            __unsafe_private_named: self.__unsafe_private_named,
11377            _phantom: ::core::marker::PhantomData,
11378        }
11379    }
11380}
11381
11382impl<'a, S> ReporterStatsBuilder<'a, S>
11383where
11384    S: reporter_stats_state::State,
11385    S::TakendownRecordCount: reporter_stats_state::IsUnset,
11386{
11387    /// Set the `takendownRecordCount` field (required)
11388    pub fn takendown_record_count(
11389        mut self,
11390        value: impl Into<i64>,
11391    ) -> ReporterStatsBuilder<'a, reporter_stats_state::SetTakendownRecordCount<S>> {
11392        self.__unsafe_private_named.8 = ::core::option::Option::Some(value.into());
11393        ReporterStatsBuilder {
11394            _phantom_state: ::core::marker::PhantomData,
11395            __unsafe_private_named: self.__unsafe_private_named,
11396            _phantom: ::core::marker::PhantomData,
11397        }
11398    }
11399}
11400
11401impl<'a, S> ReporterStatsBuilder<'a, S>
11402where
11403    S: reporter_stats_state::State,
11404    S::Did: reporter_stats_state::IsSet,
11405    S::AccountReportCount: reporter_stats_state::IsSet,
11406    S::RecordReportCount: reporter_stats_state::IsSet,
11407    S::ReportedAccountCount: reporter_stats_state::IsSet,
11408    S::ReportedRecordCount: reporter_stats_state::IsSet,
11409    S::TakendownAccountCount: reporter_stats_state::IsSet,
11410    S::TakendownRecordCount: reporter_stats_state::IsSet,
11411    S::LabeledAccountCount: reporter_stats_state::IsSet,
11412    S::LabeledRecordCount: reporter_stats_state::IsSet,
11413{
11414    /// Build the final struct
11415    pub fn build(self) -> ReporterStats<'a> {
11416        ReporterStats {
11417            account_report_count: self.__unsafe_private_named.0.unwrap(),
11418            did: self.__unsafe_private_named.1.unwrap(),
11419            labeled_account_count: self.__unsafe_private_named.2.unwrap(),
11420            labeled_record_count: self.__unsafe_private_named.3.unwrap(),
11421            record_report_count: self.__unsafe_private_named.4.unwrap(),
11422            reported_account_count: self.__unsafe_private_named.5.unwrap(),
11423            reported_record_count: self.__unsafe_private_named.6.unwrap(),
11424            takendown_account_count: self.__unsafe_private_named.7.unwrap(),
11425            takendown_record_count: self.__unsafe_private_named.8.unwrap(),
11426            extra_data: Default::default(),
11427        }
11428    }
11429    /// Build the final struct with custom extra_data
11430    pub fn build_with_data(
11431        self,
11432        extra_data: std::collections::BTreeMap<
11433            jacquard_common::smol_str::SmolStr,
11434            jacquard_common::types::value::Data<'a>,
11435        >,
11436    ) -> ReporterStats<'a> {
11437        ReporterStats {
11438            account_report_count: self.__unsafe_private_named.0.unwrap(),
11439            did: self.__unsafe_private_named.1.unwrap(),
11440            labeled_account_count: self.__unsafe_private_named.2.unwrap(),
11441            labeled_record_count: self.__unsafe_private_named.3.unwrap(),
11442            record_report_count: self.__unsafe_private_named.4.unwrap(),
11443            reported_account_count: self.__unsafe_private_named.5.unwrap(),
11444            reported_record_count: self.__unsafe_private_named.6.unwrap(),
11445            takendown_account_count: self.__unsafe_private_named.7.unwrap(),
11446            takendown_record_count: self.__unsafe_private_named.8.unwrap(),
11447            extra_data: Some(extra_data),
11448        }
11449    }
11450}
11451
11452impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ReporterStats<'a> {
11453    fn nsid() -> &'static str {
11454        "tools.ozone.moderation.defs"
11455    }
11456    fn def_name() -> &'static str {
11457        "reporterStats"
11458    }
11459    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
11460        lexicon_doc_tools_ozone_moderation_defs()
11461    }
11462    fn validate(
11463        &self,
11464    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
11465        Ok(())
11466    }
11467}
11468
11469/// Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator
11470#[derive(
11471    serde::Serialize,
11472    serde::Deserialize,
11473    Debug,
11474    Clone,
11475    PartialEq,
11476    Eq,
11477    Hash,
11478    jacquard_derive::IntoStatic
11479)]
11480pub struct ReviewClosed;
11481impl std::fmt::Display for ReviewClosed {
11482    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11483        write!(f, "reviewClosed")
11484    }
11485}
11486
11487/// Moderator review status of a subject: Escalated. Indicates that the subject was escalated for review by a moderator
11488#[derive(
11489    serde::Serialize,
11490    serde::Deserialize,
11491    Debug,
11492    Clone,
11493    PartialEq,
11494    Eq,
11495    Hash,
11496    jacquard_derive::IntoStatic
11497)]
11498pub struct ReviewEscalated;
11499impl std::fmt::Display for ReviewEscalated {
11500    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11501        write!(f, "reviewEscalated")
11502    }
11503}
11504
11505/// Moderator review status of a subject: Unnecessary. Indicates that the subject does not need a review at the moment but there is probably some moderation related metadata available for it
11506#[derive(
11507    serde::Serialize,
11508    serde::Deserialize,
11509    Debug,
11510    Clone,
11511    PartialEq,
11512    Eq,
11513    Hash,
11514    jacquard_derive::IntoStatic
11515)]
11516pub struct ReviewNone;
11517impl std::fmt::Display for ReviewNone {
11518    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11519        write!(f, "reviewNone")
11520    }
11521}
11522
11523/// Moderator review status of a subject: Open. Indicates that the subject needs to be reviewed by a moderator
11524#[derive(
11525    serde::Serialize,
11526    serde::Deserialize,
11527    Debug,
11528    Clone,
11529    PartialEq,
11530    Eq,
11531    Hash,
11532    jacquard_derive::IntoStatic
11533)]
11534pub struct ReviewOpen;
11535impl std::fmt::Display for ReviewOpen {
11536    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11537        write!(f, "reviewOpen")
11538    }
11539}
11540
11541/// Account credentials revocation by moderators. Only works on DID subjects.
11542#[jacquard_derive::lexicon]
11543#[derive(
11544    serde::Serialize,
11545    serde::Deserialize,
11546    Debug,
11547    Clone,
11548    PartialEq,
11549    Eq,
11550    jacquard_derive::IntoStatic,
11551    Default
11552)]
11553#[serde(rename_all = "camelCase")]
11554pub struct RevokeAccountCredentialsEvent<'a> {
11555    /// Comment describing the reason for the revocation.
11556    #[serde(borrow)]
11557    pub comment: jacquard_common::CowStr<'a>,
11558}
11559
11560impl<'a> ::jacquard_lexicon::schema::LexiconSchema
11561for RevokeAccountCredentialsEvent<'a> {
11562    fn nsid() -> &'static str {
11563        "tools.ozone.moderation.defs"
11564    }
11565    fn def_name() -> &'static str {
11566        "revokeAccountCredentialsEvent"
11567    }
11568    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
11569        lexicon_doc_tools_ozone_moderation_defs()
11570    }
11571    fn validate(
11572        &self,
11573    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
11574        Ok(())
11575    }
11576}
11577
11578/// Logs a scheduled takedown action for an account.
11579#[jacquard_derive::lexicon]
11580#[derive(
11581    serde::Serialize,
11582    serde::Deserialize,
11583    Debug,
11584    Clone,
11585    PartialEq,
11586    Eq,
11587    jacquard_derive::IntoStatic,
11588    Default
11589)]
11590#[serde(rename_all = "camelCase")]
11591pub struct ScheduleTakedownEvent<'a> {
11592    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11593    #[serde(borrow)]
11594    pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
11595    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11596    pub execute_after: std::option::Option<jacquard_common::types::string::Datetime>,
11597    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11598    pub execute_at: std::option::Option<jacquard_common::types::string::Datetime>,
11599    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11600    pub execute_until: std::option::Option<jacquard_common::types::string::Datetime>,
11601}
11602
11603impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ScheduleTakedownEvent<'a> {
11604    fn nsid() -> &'static str {
11605        "tools.ozone.moderation.defs"
11606    }
11607    fn def_name() -> &'static str {
11608        "scheduleTakedownEvent"
11609    }
11610    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
11611        lexicon_doc_tools_ozone_moderation_defs()
11612    }
11613    fn validate(
11614        &self,
11615    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
11616        Ok(())
11617    }
11618}
11619
11620/// View of a scheduled moderation action
11621#[jacquard_derive::lexicon]
11622#[derive(
11623    serde::Serialize,
11624    serde::Deserialize,
11625    Debug,
11626    Clone,
11627    PartialEq,
11628    Eq,
11629    jacquard_derive::IntoStatic
11630)]
11631#[serde(rename_all = "camelCase")]
11632pub struct ScheduledActionView<'a> {
11633    /// Type of action to be executed
11634    #[serde(borrow)]
11635    pub action: jacquard_common::CowStr<'a>,
11636    /// When the scheduled action was created
11637    pub created_at: jacquard_common::types::string::Datetime,
11638    /// DID of the user who created this scheduled action
11639    #[serde(borrow)]
11640    pub created_by: jacquard_common::types::string::Did<'a>,
11641    /// Subject DID for the action
11642    #[serde(borrow)]
11643    pub did: jacquard_common::types::string::Did<'a>,
11644    /// Serialized event object that will be propagated to the event when performed
11645    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11646    #[serde(borrow)]
11647    pub event_data: Option<jacquard_common::types::value::Data<'a>>,
11648    /// Earliest time to execute the action (for randomized scheduling)
11649    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11650    pub execute_after: Option<jacquard_common::types::string::Datetime>,
11651    /// Exact time to execute the action
11652    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11653    pub execute_at: Option<jacquard_common::types::string::Datetime>,
11654    /// Latest time to execute the action (for randomized scheduling)
11655    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11656    pub execute_until: Option<jacquard_common::types::string::Datetime>,
11657    /// ID of the moderation event created when action was successfully executed
11658    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11659    pub execution_event_id: Option<i64>,
11660    /// Auto-incrementing row ID
11661    pub id: i64,
11662    /// When the action was last attempted to be executed
11663    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11664    pub last_executed_at: Option<jacquard_common::types::string::Datetime>,
11665    /// Reason for the last execution failure
11666    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11667    #[serde(borrow)]
11668    pub last_failure_reason: Option<jacquard_common::CowStr<'a>>,
11669    /// Whether execution time should be randomized within the specified range
11670    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11671    pub randomize_execution: Option<bool>,
11672    /// Current status of the scheduled action
11673    #[serde(borrow)]
11674    pub status: jacquard_common::CowStr<'a>,
11675    /// When the scheduled action was last updated
11676    #[serde(skip_serializing_if = "std::option::Option::is_none")]
11677    pub updated_at: Option<jacquard_common::types::string::Datetime>,
11678}
11679
11680pub mod scheduled_action_view_state {
11681
11682    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
11683    #[allow(unused)]
11684    use ::core::marker::PhantomData;
11685    mod sealed {
11686        pub trait Sealed {}
11687    }
11688    /// State trait tracking which required fields have been set
11689    pub trait State: sealed::Sealed {
11690        type Id;
11691        type Action;
11692        type Did;
11693        type CreatedBy;
11694        type CreatedAt;
11695        type Status;
11696    }
11697    /// Empty state - all required fields are unset
11698    pub struct Empty(());
11699    impl sealed::Sealed for Empty {}
11700    impl State for Empty {
11701        type Id = Unset;
11702        type Action = Unset;
11703        type Did = Unset;
11704        type CreatedBy = Unset;
11705        type CreatedAt = Unset;
11706        type Status = Unset;
11707    }
11708    ///State transition - sets the `id` field to Set
11709    pub struct SetId<S: State = Empty>(PhantomData<fn() -> S>);
11710    impl<S: State> sealed::Sealed for SetId<S> {}
11711    impl<S: State> State for SetId<S> {
11712        type Id = Set<members::id>;
11713        type Action = S::Action;
11714        type Did = S::Did;
11715        type CreatedBy = S::CreatedBy;
11716        type CreatedAt = S::CreatedAt;
11717        type Status = S::Status;
11718    }
11719    ///State transition - sets the `action` field to Set
11720    pub struct SetAction<S: State = Empty>(PhantomData<fn() -> S>);
11721    impl<S: State> sealed::Sealed for SetAction<S> {}
11722    impl<S: State> State for SetAction<S> {
11723        type Id = S::Id;
11724        type Action = Set<members::action>;
11725        type Did = S::Did;
11726        type CreatedBy = S::CreatedBy;
11727        type CreatedAt = S::CreatedAt;
11728        type Status = S::Status;
11729    }
11730    ///State transition - sets the `did` field to Set
11731    pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
11732    impl<S: State> sealed::Sealed for SetDid<S> {}
11733    impl<S: State> State for SetDid<S> {
11734        type Id = S::Id;
11735        type Action = S::Action;
11736        type Did = Set<members::did>;
11737        type CreatedBy = S::CreatedBy;
11738        type CreatedAt = S::CreatedAt;
11739        type Status = S::Status;
11740    }
11741    ///State transition - sets the `created_by` field to Set
11742    pub struct SetCreatedBy<S: State = Empty>(PhantomData<fn() -> S>);
11743    impl<S: State> sealed::Sealed for SetCreatedBy<S> {}
11744    impl<S: State> State for SetCreatedBy<S> {
11745        type Id = S::Id;
11746        type Action = S::Action;
11747        type Did = S::Did;
11748        type CreatedBy = Set<members::created_by>;
11749        type CreatedAt = S::CreatedAt;
11750        type Status = S::Status;
11751    }
11752    ///State transition - sets the `created_at` field to Set
11753    pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
11754    impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
11755    impl<S: State> State for SetCreatedAt<S> {
11756        type Id = S::Id;
11757        type Action = S::Action;
11758        type Did = S::Did;
11759        type CreatedBy = S::CreatedBy;
11760        type CreatedAt = Set<members::created_at>;
11761        type Status = S::Status;
11762    }
11763    ///State transition - sets the `status` field to Set
11764    pub struct SetStatus<S: State = Empty>(PhantomData<fn() -> S>);
11765    impl<S: State> sealed::Sealed for SetStatus<S> {}
11766    impl<S: State> State for SetStatus<S> {
11767        type Id = S::Id;
11768        type Action = S::Action;
11769        type Did = S::Did;
11770        type CreatedBy = S::CreatedBy;
11771        type CreatedAt = S::CreatedAt;
11772        type Status = Set<members::status>;
11773    }
11774    /// Marker types for field names
11775    #[allow(non_camel_case_types)]
11776    pub mod members {
11777        ///Marker type for the `id` field
11778        pub struct id(());
11779        ///Marker type for the `action` field
11780        pub struct action(());
11781        ///Marker type for the `did` field
11782        pub struct did(());
11783        ///Marker type for the `created_by` field
11784        pub struct created_by(());
11785        ///Marker type for the `created_at` field
11786        pub struct created_at(());
11787        ///Marker type for the `status` field
11788        pub struct status(());
11789    }
11790}
11791
11792/// Builder for constructing an instance of this type
11793pub struct ScheduledActionViewBuilder<'a, S: scheduled_action_view_state::State> {
11794    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
11795    __unsafe_private_named: (
11796        ::core::option::Option<jacquard_common::CowStr<'a>>,
11797        ::core::option::Option<jacquard_common::types::string::Datetime>,
11798        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
11799        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
11800        ::core::option::Option<jacquard_common::types::value::Data<'a>>,
11801        ::core::option::Option<jacquard_common::types::string::Datetime>,
11802        ::core::option::Option<jacquard_common::types::string::Datetime>,
11803        ::core::option::Option<jacquard_common::types::string::Datetime>,
11804        ::core::option::Option<i64>,
11805        ::core::option::Option<i64>,
11806        ::core::option::Option<jacquard_common::types::string::Datetime>,
11807        ::core::option::Option<jacquard_common::CowStr<'a>>,
11808        ::core::option::Option<bool>,
11809        ::core::option::Option<jacquard_common::CowStr<'a>>,
11810        ::core::option::Option<jacquard_common::types::string::Datetime>,
11811    ),
11812    _phantom: ::core::marker::PhantomData<&'a ()>,
11813}
11814
11815impl<'a> ScheduledActionView<'a> {
11816    /// Create a new builder for this type
11817    pub fn new() -> ScheduledActionViewBuilder<'a, scheduled_action_view_state::Empty> {
11818        ScheduledActionViewBuilder::new()
11819    }
11820}
11821
11822impl<'a> ScheduledActionViewBuilder<'a, scheduled_action_view_state::Empty> {
11823    /// Create a new builder with all fields unset
11824    pub fn new() -> Self {
11825        ScheduledActionViewBuilder {
11826            _phantom_state: ::core::marker::PhantomData,
11827            __unsafe_private_named: (
11828                None,
11829                None,
11830                None,
11831                None,
11832                None,
11833                None,
11834                None,
11835                None,
11836                None,
11837                None,
11838                None,
11839                None,
11840                None,
11841                None,
11842                None,
11843            ),
11844            _phantom: ::core::marker::PhantomData,
11845        }
11846    }
11847}
11848
11849impl<'a, S> ScheduledActionViewBuilder<'a, S>
11850where
11851    S: scheduled_action_view_state::State,
11852    S::Action: scheduled_action_view_state::IsUnset,
11853{
11854    /// Set the `action` field (required)
11855    pub fn action(
11856        mut self,
11857        value: impl Into<jacquard_common::CowStr<'a>>,
11858    ) -> ScheduledActionViewBuilder<'a, scheduled_action_view_state::SetAction<S>> {
11859        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
11860        ScheduledActionViewBuilder {
11861            _phantom_state: ::core::marker::PhantomData,
11862            __unsafe_private_named: self.__unsafe_private_named,
11863            _phantom: ::core::marker::PhantomData,
11864        }
11865    }
11866}
11867
11868impl<'a, S> ScheduledActionViewBuilder<'a, S>
11869where
11870    S: scheduled_action_view_state::State,
11871    S::CreatedAt: scheduled_action_view_state::IsUnset,
11872{
11873    /// Set the `createdAt` field (required)
11874    pub fn created_at(
11875        mut self,
11876        value: impl Into<jacquard_common::types::string::Datetime>,
11877    ) -> ScheduledActionViewBuilder<'a, scheduled_action_view_state::SetCreatedAt<S>> {
11878        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
11879        ScheduledActionViewBuilder {
11880            _phantom_state: ::core::marker::PhantomData,
11881            __unsafe_private_named: self.__unsafe_private_named,
11882            _phantom: ::core::marker::PhantomData,
11883        }
11884    }
11885}
11886
11887impl<'a, S> ScheduledActionViewBuilder<'a, S>
11888where
11889    S: scheduled_action_view_state::State,
11890    S::CreatedBy: scheduled_action_view_state::IsUnset,
11891{
11892    /// Set the `createdBy` field (required)
11893    pub fn created_by(
11894        mut self,
11895        value: impl Into<jacquard_common::types::string::Did<'a>>,
11896    ) -> ScheduledActionViewBuilder<'a, scheduled_action_view_state::SetCreatedBy<S>> {
11897        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
11898        ScheduledActionViewBuilder {
11899            _phantom_state: ::core::marker::PhantomData,
11900            __unsafe_private_named: self.__unsafe_private_named,
11901            _phantom: ::core::marker::PhantomData,
11902        }
11903    }
11904}
11905
11906impl<'a, S> ScheduledActionViewBuilder<'a, S>
11907where
11908    S: scheduled_action_view_state::State,
11909    S::Did: scheduled_action_view_state::IsUnset,
11910{
11911    /// Set the `did` field (required)
11912    pub fn did(
11913        mut self,
11914        value: impl Into<jacquard_common::types::string::Did<'a>>,
11915    ) -> ScheduledActionViewBuilder<'a, scheduled_action_view_state::SetDid<S>> {
11916        self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
11917        ScheduledActionViewBuilder {
11918            _phantom_state: ::core::marker::PhantomData,
11919            __unsafe_private_named: self.__unsafe_private_named,
11920            _phantom: ::core::marker::PhantomData,
11921        }
11922    }
11923}
11924
11925impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
11926    /// Set the `eventData` field (optional)
11927    pub fn event_data(
11928        mut self,
11929        value: impl Into<Option<jacquard_common::types::value::Data<'a>>>,
11930    ) -> Self {
11931        self.__unsafe_private_named.4 = value.into();
11932        self
11933    }
11934    /// Set the `eventData` field to an Option value (optional)
11935    pub fn maybe_event_data(
11936        mut self,
11937        value: Option<jacquard_common::types::value::Data<'a>>,
11938    ) -> Self {
11939        self.__unsafe_private_named.4 = value;
11940        self
11941    }
11942}
11943
11944impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
11945    /// Set the `executeAfter` field (optional)
11946    pub fn execute_after(
11947        mut self,
11948        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
11949    ) -> Self {
11950        self.__unsafe_private_named.5 = value.into();
11951        self
11952    }
11953    /// Set the `executeAfter` field to an Option value (optional)
11954    pub fn maybe_execute_after(
11955        mut self,
11956        value: Option<jacquard_common::types::string::Datetime>,
11957    ) -> Self {
11958        self.__unsafe_private_named.5 = value;
11959        self
11960    }
11961}
11962
11963impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
11964    /// Set the `executeAt` field (optional)
11965    pub fn execute_at(
11966        mut self,
11967        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
11968    ) -> Self {
11969        self.__unsafe_private_named.6 = value.into();
11970        self
11971    }
11972    /// Set the `executeAt` field to an Option value (optional)
11973    pub fn maybe_execute_at(
11974        mut self,
11975        value: Option<jacquard_common::types::string::Datetime>,
11976    ) -> Self {
11977        self.__unsafe_private_named.6 = value;
11978        self
11979    }
11980}
11981
11982impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
11983    /// Set the `executeUntil` field (optional)
11984    pub fn execute_until(
11985        mut self,
11986        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
11987    ) -> Self {
11988        self.__unsafe_private_named.7 = value.into();
11989        self
11990    }
11991    /// Set the `executeUntil` field to an Option value (optional)
11992    pub fn maybe_execute_until(
11993        mut self,
11994        value: Option<jacquard_common::types::string::Datetime>,
11995    ) -> Self {
11996        self.__unsafe_private_named.7 = value;
11997        self
11998    }
11999}
12000
12001impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
12002    /// Set the `executionEventId` field (optional)
12003    pub fn execution_event_id(mut self, value: impl Into<Option<i64>>) -> Self {
12004        self.__unsafe_private_named.8 = value.into();
12005        self
12006    }
12007    /// Set the `executionEventId` field to an Option value (optional)
12008    pub fn maybe_execution_event_id(mut self, value: Option<i64>) -> Self {
12009        self.__unsafe_private_named.8 = value;
12010        self
12011    }
12012}
12013
12014impl<'a, S> ScheduledActionViewBuilder<'a, S>
12015where
12016    S: scheduled_action_view_state::State,
12017    S::Id: scheduled_action_view_state::IsUnset,
12018{
12019    /// Set the `id` field (required)
12020    pub fn id(
12021        mut self,
12022        value: impl Into<i64>,
12023    ) -> ScheduledActionViewBuilder<'a, scheduled_action_view_state::SetId<S>> {
12024        self.__unsafe_private_named.9 = ::core::option::Option::Some(value.into());
12025        ScheduledActionViewBuilder {
12026            _phantom_state: ::core::marker::PhantomData,
12027            __unsafe_private_named: self.__unsafe_private_named,
12028            _phantom: ::core::marker::PhantomData,
12029        }
12030    }
12031}
12032
12033impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
12034    /// Set the `lastExecutedAt` field (optional)
12035    pub fn last_executed_at(
12036        mut self,
12037        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
12038    ) -> Self {
12039        self.__unsafe_private_named.10 = value.into();
12040        self
12041    }
12042    /// Set the `lastExecutedAt` field to an Option value (optional)
12043    pub fn maybe_last_executed_at(
12044        mut self,
12045        value: Option<jacquard_common::types::string::Datetime>,
12046    ) -> Self {
12047        self.__unsafe_private_named.10 = value;
12048        self
12049    }
12050}
12051
12052impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
12053    /// Set the `lastFailureReason` field (optional)
12054    pub fn last_failure_reason(
12055        mut self,
12056        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
12057    ) -> Self {
12058        self.__unsafe_private_named.11 = value.into();
12059        self
12060    }
12061    /// Set the `lastFailureReason` field to an Option value (optional)
12062    pub fn maybe_last_failure_reason(
12063        mut self,
12064        value: Option<jacquard_common::CowStr<'a>>,
12065    ) -> Self {
12066        self.__unsafe_private_named.11 = value;
12067        self
12068    }
12069}
12070
12071impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
12072    /// Set the `randomizeExecution` field (optional)
12073    pub fn randomize_execution(mut self, value: impl Into<Option<bool>>) -> Self {
12074        self.__unsafe_private_named.12 = value.into();
12075        self
12076    }
12077    /// Set the `randomizeExecution` field to an Option value (optional)
12078    pub fn maybe_randomize_execution(mut self, value: Option<bool>) -> Self {
12079        self.__unsafe_private_named.12 = value;
12080        self
12081    }
12082}
12083
12084impl<'a, S> ScheduledActionViewBuilder<'a, S>
12085where
12086    S: scheduled_action_view_state::State,
12087    S::Status: scheduled_action_view_state::IsUnset,
12088{
12089    /// Set the `status` field (required)
12090    pub fn status(
12091        mut self,
12092        value: impl Into<jacquard_common::CowStr<'a>>,
12093    ) -> ScheduledActionViewBuilder<'a, scheduled_action_view_state::SetStatus<S>> {
12094        self.__unsafe_private_named.13 = ::core::option::Option::Some(value.into());
12095        ScheduledActionViewBuilder {
12096            _phantom_state: ::core::marker::PhantomData,
12097            __unsafe_private_named: self.__unsafe_private_named,
12098            _phantom: ::core::marker::PhantomData,
12099        }
12100    }
12101}
12102
12103impl<'a, S: scheduled_action_view_state::State> ScheduledActionViewBuilder<'a, S> {
12104    /// Set the `updatedAt` field (optional)
12105    pub fn updated_at(
12106        mut self,
12107        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
12108    ) -> Self {
12109        self.__unsafe_private_named.14 = value.into();
12110        self
12111    }
12112    /// Set the `updatedAt` field to an Option value (optional)
12113    pub fn maybe_updated_at(
12114        mut self,
12115        value: Option<jacquard_common::types::string::Datetime>,
12116    ) -> Self {
12117        self.__unsafe_private_named.14 = value;
12118        self
12119    }
12120}
12121
12122impl<'a, S> ScheduledActionViewBuilder<'a, S>
12123where
12124    S: scheduled_action_view_state::State,
12125    S::Id: scheduled_action_view_state::IsSet,
12126    S::Action: scheduled_action_view_state::IsSet,
12127    S::Did: scheduled_action_view_state::IsSet,
12128    S::CreatedBy: scheduled_action_view_state::IsSet,
12129    S::CreatedAt: scheduled_action_view_state::IsSet,
12130    S::Status: scheduled_action_view_state::IsSet,
12131{
12132    /// Build the final struct
12133    pub fn build(self) -> ScheduledActionView<'a> {
12134        ScheduledActionView {
12135            action: self.__unsafe_private_named.0.unwrap(),
12136            created_at: self.__unsafe_private_named.1.unwrap(),
12137            created_by: self.__unsafe_private_named.2.unwrap(),
12138            did: self.__unsafe_private_named.3.unwrap(),
12139            event_data: self.__unsafe_private_named.4,
12140            execute_after: self.__unsafe_private_named.5,
12141            execute_at: self.__unsafe_private_named.6,
12142            execute_until: self.__unsafe_private_named.7,
12143            execution_event_id: self.__unsafe_private_named.8,
12144            id: self.__unsafe_private_named.9.unwrap(),
12145            last_executed_at: self.__unsafe_private_named.10,
12146            last_failure_reason: self.__unsafe_private_named.11,
12147            randomize_execution: self.__unsafe_private_named.12,
12148            status: self.__unsafe_private_named.13.unwrap(),
12149            updated_at: self.__unsafe_private_named.14,
12150            extra_data: Default::default(),
12151        }
12152    }
12153    /// Build the final struct with custom extra_data
12154    pub fn build_with_data(
12155        self,
12156        extra_data: std::collections::BTreeMap<
12157            jacquard_common::smol_str::SmolStr,
12158            jacquard_common::types::value::Data<'a>,
12159        >,
12160    ) -> ScheduledActionView<'a> {
12161        ScheduledActionView {
12162            action: self.__unsafe_private_named.0.unwrap(),
12163            created_at: self.__unsafe_private_named.1.unwrap(),
12164            created_by: self.__unsafe_private_named.2.unwrap(),
12165            did: self.__unsafe_private_named.3.unwrap(),
12166            event_data: self.__unsafe_private_named.4,
12167            execute_after: self.__unsafe_private_named.5,
12168            execute_at: self.__unsafe_private_named.6,
12169            execute_until: self.__unsafe_private_named.7,
12170            execution_event_id: self.__unsafe_private_named.8,
12171            id: self.__unsafe_private_named.9.unwrap(),
12172            last_executed_at: self.__unsafe_private_named.10,
12173            last_failure_reason: self.__unsafe_private_named.11,
12174            randomize_execution: self.__unsafe_private_named.12,
12175            status: self.__unsafe_private_named.13.unwrap(),
12176            updated_at: self.__unsafe_private_named.14,
12177            extra_data: Some(extra_data),
12178        }
12179    }
12180}
12181
12182impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ScheduledActionView<'a> {
12183    fn nsid() -> &'static str {
12184        "tools.ozone.moderation.defs"
12185    }
12186    fn def_name() -> &'static str {
12187        "scheduledActionView"
12188    }
12189    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
12190        lexicon_doc_tools_ozone_moderation_defs()
12191    }
12192    fn validate(
12193        &self,
12194    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
12195        Ok(())
12196    }
12197}
12198
12199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12200pub enum SubjectReviewState<'a> {
12201    ReviewOpen,
12202    ReviewEscalated,
12203    ReviewClosed,
12204    ReviewNone,
12205    Other(jacquard_common::CowStr<'a>),
12206}
12207
12208impl<'a> SubjectReviewState<'a> {
12209    pub fn as_str(&self) -> &str {
12210        match self {
12211            Self::ReviewOpen => "#reviewOpen",
12212            Self::ReviewEscalated => "#reviewEscalated",
12213            Self::ReviewClosed => "#reviewClosed",
12214            Self::ReviewNone => "#reviewNone",
12215            Self::Other(s) => s.as_ref(),
12216        }
12217    }
12218}
12219
12220impl<'a> From<&'a str> for SubjectReviewState<'a> {
12221    fn from(s: &'a str) -> Self {
12222        match s {
12223            "#reviewOpen" => Self::ReviewOpen,
12224            "#reviewEscalated" => Self::ReviewEscalated,
12225            "#reviewClosed" => Self::ReviewClosed,
12226            "#reviewNone" => Self::ReviewNone,
12227            _ => Self::Other(jacquard_common::CowStr::from(s)),
12228        }
12229    }
12230}
12231
12232impl<'a> From<String> for SubjectReviewState<'a> {
12233    fn from(s: String) -> Self {
12234        match s.as_str() {
12235            "#reviewOpen" => Self::ReviewOpen,
12236            "#reviewEscalated" => Self::ReviewEscalated,
12237            "#reviewClosed" => Self::ReviewClosed,
12238            "#reviewNone" => Self::ReviewNone,
12239            _ => Self::Other(jacquard_common::CowStr::from(s)),
12240        }
12241    }
12242}
12243
12244impl<'a> AsRef<str> for SubjectReviewState<'a> {
12245    fn as_ref(&self) -> &str {
12246        self.as_str()
12247    }
12248}
12249
12250impl<'a> serde::Serialize for SubjectReviewState<'a> {
12251    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12252    where
12253        S: serde::Serializer,
12254    {
12255        serializer.serialize_str(self.as_str())
12256    }
12257}
12258
12259impl<'de, 'a> serde::Deserialize<'de> for SubjectReviewState<'a>
12260where
12261    'de: 'a,
12262{
12263    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
12264    where
12265        D: serde::Deserializer<'de>,
12266    {
12267        let s = <&'de str>::deserialize(deserializer)?;
12268        Ok(Self::from(s))
12269    }
12270}
12271
12272impl jacquard_common::IntoStatic for SubjectReviewState<'_> {
12273    type Output = SubjectReviewState<'static>;
12274    fn into_static(self) -> Self::Output {
12275        match self {
12276            SubjectReviewState::ReviewOpen => SubjectReviewState::ReviewOpen,
12277            SubjectReviewState::ReviewEscalated => SubjectReviewState::ReviewEscalated,
12278            SubjectReviewState::ReviewClosed => SubjectReviewState::ReviewClosed,
12279            SubjectReviewState::ReviewNone => SubjectReviewState::ReviewNone,
12280            SubjectReviewState::Other(v) => SubjectReviewState::Other(v.into_static()),
12281        }
12282    }
12283}
12284
12285#[jacquard_derive::lexicon]
12286#[derive(
12287    serde::Serialize,
12288    serde::Deserialize,
12289    Debug,
12290    Clone,
12291    PartialEq,
12292    Eq,
12293    jacquard_derive::IntoStatic
12294)]
12295#[serde(rename_all = "camelCase")]
12296pub struct SubjectStatusView<'a> {
12297    /// Statistics related to the account subject
12298    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12299    #[serde(borrow)]
12300    pub account_stats: Option<crate::tools_ozone::moderation::AccountStats<'a>>,
12301    /// Strike information for the account (account-level only)
12302    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12303    #[serde(borrow)]
12304    pub account_strike: Option<crate::tools_ozone::moderation::AccountStrike<'a>>,
12305    /// Current age assurance state of the subject.
12306    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12307    #[serde(borrow)]
12308    pub age_assurance_state: Option<jacquard_common::CowStr<'a>>,
12309    /// Whether or not the last successful update to age assurance was made by the user or admin.
12310    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12311    #[serde(borrow)]
12312    pub age_assurance_updated_by: Option<jacquard_common::CowStr<'a>>,
12313    /// 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.
12314    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12315    pub appealed: Option<bool>,
12316    /// Sticky comment on the subject.
12317    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12318    #[serde(borrow)]
12319    pub comment: Option<jacquard_common::CowStr<'a>>,
12320    /// Timestamp referencing the first moderation status impacting event was emitted on the subject
12321    pub created_at: jacquard_common::types::string::Datetime,
12322    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12323    #[serde(borrow)]
12324    pub hosting: Option<SubjectStatusViewHosting<'a>>,
12325    pub id: i64,
12326    /// Timestamp referencing when the author of the subject appealed a moderation action
12327    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12328    pub last_appealed_at: Option<jacquard_common::types::string::Datetime>,
12329    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12330    pub last_reported_at: Option<jacquard_common::types::string::Datetime>,
12331    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12332    pub last_reviewed_at: Option<jacquard_common::types::string::Datetime>,
12333    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12334    #[serde(borrow)]
12335    pub last_reviewed_by: Option<jacquard_common::types::string::Did<'a>>,
12336    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12337    pub mute_reporting_until: Option<jacquard_common::types::string::Datetime>,
12338    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12339    pub mute_until: Option<jacquard_common::types::string::Datetime>,
12340    /// Numeric value representing the level of priority. Higher score means higher priority.
12341    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12342    pub priority_score: Option<i64>,
12343    /// Statistics related to the record subjects authored by the subject's account
12344    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12345    #[serde(borrow)]
12346    pub records_stats: Option<crate::tools_ozone::moderation::RecordsStats<'a>>,
12347    #[serde(borrow)]
12348    pub review_state: crate::tools_ozone::moderation::SubjectReviewState<'a>,
12349    #[serde(borrow)]
12350    pub subject: SubjectStatusViewSubject<'a>,
12351    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12352    #[serde(borrow)]
12353    pub subject_blob_cids: Option<Vec<jacquard_common::types::string::Cid<'a>>>,
12354    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12355    #[serde(borrow)]
12356    pub subject_repo_handle: Option<jacquard_common::CowStr<'a>>,
12357    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12358    pub suspend_until: Option<jacquard_common::types::string::Datetime>,
12359    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12360    #[serde(borrow)]
12361    pub tags: Option<Vec<jacquard_common::CowStr<'a>>>,
12362    #[serde(skip_serializing_if = "std::option::Option::is_none")]
12363    pub takendown: Option<bool>,
12364    /// Timestamp referencing when the last update was made to the moderation status of the subject
12365    pub updated_at: jacquard_common::types::string::Datetime,
12366}
12367
12368pub mod subject_status_view_state {
12369
12370    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
12371    #[allow(unused)]
12372    use ::core::marker::PhantomData;
12373    mod sealed {
12374        pub trait Sealed {}
12375    }
12376    /// State trait tracking which required fields have been set
12377    pub trait State: sealed::Sealed {
12378        type Id;
12379        type Subject;
12380        type CreatedAt;
12381        type UpdatedAt;
12382        type ReviewState;
12383    }
12384    /// Empty state - all required fields are unset
12385    pub struct Empty(());
12386    impl sealed::Sealed for Empty {}
12387    impl State for Empty {
12388        type Id = Unset;
12389        type Subject = Unset;
12390        type CreatedAt = Unset;
12391        type UpdatedAt = Unset;
12392        type ReviewState = Unset;
12393    }
12394    ///State transition - sets the `id` field to Set
12395    pub struct SetId<S: State = Empty>(PhantomData<fn() -> S>);
12396    impl<S: State> sealed::Sealed for SetId<S> {}
12397    impl<S: State> State for SetId<S> {
12398        type Id = Set<members::id>;
12399        type Subject = S::Subject;
12400        type CreatedAt = S::CreatedAt;
12401        type UpdatedAt = S::UpdatedAt;
12402        type ReviewState = S::ReviewState;
12403    }
12404    ///State transition - sets the `subject` field to Set
12405    pub struct SetSubject<S: State = Empty>(PhantomData<fn() -> S>);
12406    impl<S: State> sealed::Sealed for SetSubject<S> {}
12407    impl<S: State> State for SetSubject<S> {
12408        type Id = S::Id;
12409        type Subject = Set<members::subject>;
12410        type CreatedAt = S::CreatedAt;
12411        type UpdatedAt = S::UpdatedAt;
12412        type ReviewState = S::ReviewState;
12413    }
12414    ///State transition - sets the `created_at` field to Set
12415    pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
12416    impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
12417    impl<S: State> State for SetCreatedAt<S> {
12418        type Id = S::Id;
12419        type Subject = S::Subject;
12420        type CreatedAt = Set<members::created_at>;
12421        type UpdatedAt = S::UpdatedAt;
12422        type ReviewState = S::ReviewState;
12423    }
12424    ///State transition - sets the `updated_at` field to Set
12425    pub struct SetUpdatedAt<S: State = Empty>(PhantomData<fn() -> S>);
12426    impl<S: State> sealed::Sealed for SetUpdatedAt<S> {}
12427    impl<S: State> State for SetUpdatedAt<S> {
12428        type Id = S::Id;
12429        type Subject = S::Subject;
12430        type CreatedAt = S::CreatedAt;
12431        type UpdatedAt = Set<members::updated_at>;
12432        type ReviewState = S::ReviewState;
12433    }
12434    ///State transition - sets the `review_state` field to Set
12435    pub struct SetReviewState<S: State = Empty>(PhantomData<fn() -> S>);
12436    impl<S: State> sealed::Sealed for SetReviewState<S> {}
12437    impl<S: State> State for SetReviewState<S> {
12438        type Id = S::Id;
12439        type Subject = S::Subject;
12440        type CreatedAt = S::CreatedAt;
12441        type UpdatedAt = S::UpdatedAt;
12442        type ReviewState = Set<members::review_state>;
12443    }
12444    /// Marker types for field names
12445    #[allow(non_camel_case_types)]
12446    pub mod members {
12447        ///Marker type for the `id` field
12448        pub struct id(());
12449        ///Marker type for the `subject` field
12450        pub struct subject(());
12451        ///Marker type for the `created_at` field
12452        pub struct created_at(());
12453        ///Marker type for the `updated_at` field
12454        pub struct updated_at(());
12455        ///Marker type for the `review_state` field
12456        pub struct review_state(());
12457    }
12458}
12459
12460/// Builder for constructing an instance of this type
12461pub struct SubjectStatusViewBuilder<'a, S: subject_status_view_state::State> {
12462    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
12463    __unsafe_private_named: (
12464        ::core::option::Option<crate::tools_ozone::moderation::AccountStats<'a>>,
12465        ::core::option::Option<crate::tools_ozone::moderation::AccountStrike<'a>>,
12466        ::core::option::Option<jacquard_common::CowStr<'a>>,
12467        ::core::option::Option<jacquard_common::CowStr<'a>>,
12468        ::core::option::Option<bool>,
12469        ::core::option::Option<jacquard_common::CowStr<'a>>,
12470        ::core::option::Option<jacquard_common::types::string::Datetime>,
12471        ::core::option::Option<SubjectStatusViewHosting<'a>>,
12472        ::core::option::Option<i64>,
12473        ::core::option::Option<jacquard_common::types::string::Datetime>,
12474        ::core::option::Option<jacquard_common::types::string::Datetime>,
12475        ::core::option::Option<jacquard_common::types::string::Datetime>,
12476        ::core::option::Option<jacquard_common::types::string::Did<'a>>,
12477        ::core::option::Option<jacquard_common::types::string::Datetime>,
12478        ::core::option::Option<jacquard_common::types::string::Datetime>,
12479        ::core::option::Option<i64>,
12480        ::core::option::Option<crate::tools_ozone::moderation::RecordsStats<'a>>,
12481        ::core::option::Option<crate::tools_ozone::moderation::SubjectReviewState<'a>>,
12482        ::core::option::Option<SubjectStatusViewSubject<'a>>,
12483        ::core::option::Option<Vec<jacquard_common::types::string::Cid<'a>>>,
12484        ::core::option::Option<jacquard_common::CowStr<'a>>,
12485        ::core::option::Option<jacquard_common::types::string::Datetime>,
12486        ::core::option::Option<Vec<jacquard_common::CowStr<'a>>>,
12487        ::core::option::Option<bool>,
12488        ::core::option::Option<jacquard_common::types::string::Datetime>,
12489    ),
12490    _phantom: ::core::marker::PhantomData<&'a ()>,
12491}
12492
12493impl<'a> SubjectStatusView<'a> {
12494    /// Create a new builder for this type
12495    pub fn new() -> SubjectStatusViewBuilder<'a, subject_status_view_state::Empty> {
12496        SubjectStatusViewBuilder::new()
12497    }
12498}
12499
12500impl<'a> SubjectStatusViewBuilder<'a, subject_status_view_state::Empty> {
12501    /// Create a new builder with all fields unset
12502    pub fn new() -> Self {
12503        SubjectStatusViewBuilder {
12504            _phantom_state: ::core::marker::PhantomData,
12505            __unsafe_private_named: (
12506                None,
12507                None,
12508                None,
12509                None,
12510                None,
12511                None,
12512                None,
12513                None,
12514                None,
12515                None,
12516                None,
12517                None,
12518                None,
12519                None,
12520                None,
12521                None,
12522                None,
12523                None,
12524                None,
12525                None,
12526                None,
12527                None,
12528                None,
12529                None,
12530                None,
12531            ),
12532            _phantom: ::core::marker::PhantomData,
12533        }
12534    }
12535}
12536
12537impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12538    /// Set the `accountStats` field (optional)
12539    pub fn account_stats(
12540        mut self,
12541        value: impl Into<Option<crate::tools_ozone::moderation::AccountStats<'a>>>,
12542    ) -> Self {
12543        self.__unsafe_private_named.0 = value.into();
12544        self
12545    }
12546    /// Set the `accountStats` field to an Option value (optional)
12547    pub fn maybe_account_stats(
12548        mut self,
12549        value: Option<crate::tools_ozone::moderation::AccountStats<'a>>,
12550    ) -> Self {
12551        self.__unsafe_private_named.0 = value;
12552        self
12553    }
12554}
12555
12556impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12557    /// Set the `accountStrike` field (optional)
12558    pub fn account_strike(
12559        mut self,
12560        value: impl Into<Option<crate::tools_ozone::moderation::AccountStrike<'a>>>,
12561    ) -> Self {
12562        self.__unsafe_private_named.1 = value.into();
12563        self
12564    }
12565    /// Set the `accountStrike` field to an Option value (optional)
12566    pub fn maybe_account_strike(
12567        mut self,
12568        value: Option<crate::tools_ozone::moderation::AccountStrike<'a>>,
12569    ) -> Self {
12570        self.__unsafe_private_named.1 = value;
12571        self
12572    }
12573}
12574
12575impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12576    /// Set the `ageAssuranceState` field (optional)
12577    pub fn age_assurance_state(
12578        mut self,
12579        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
12580    ) -> Self {
12581        self.__unsafe_private_named.2 = value.into();
12582        self
12583    }
12584    /// Set the `ageAssuranceState` field to an Option value (optional)
12585    pub fn maybe_age_assurance_state(
12586        mut self,
12587        value: Option<jacquard_common::CowStr<'a>>,
12588    ) -> Self {
12589        self.__unsafe_private_named.2 = value;
12590        self
12591    }
12592}
12593
12594impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12595    /// Set the `ageAssuranceUpdatedBy` field (optional)
12596    pub fn age_assurance_updated_by(
12597        mut self,
12598        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
12599    ) -> Self {
12600        self.__unsafe_private_named.3 = value.into();
12601        self
12602    }
12603    /// Set the `ageAssuranceUpdatedBy` field to an Option value (optional)
12604    pub fn maybe_age_assurance_updated_by(
12605        mut self,
12606        value: Option<jacquard_common::CowStr<'a>>,
12607    ) -> Self {
12608        self.__unsafe_private_named.3 = value;
12609        self
12610    }
12611}
12612
12613impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12614    /// Set the `appealed` field (optional)
12615    pub fn appealed(mut self, value: impl Into<Option<bool>>) -> Self {
12616        self.__unsafe_private_named.4 = value.into();
12617        self
12618    }
12619    /// Set the `appealed` field to an Option value (optional)
12620    pub fn maybe_appealed(mut self, value: Option<bool>) -> Self {
12621        self.__unsafe_private_named.4 = value;
12622        self
12623    }
12624}
12625
12626impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12627    /// Set the `comment` field (optional)
12628    pub fn comment(
12629        mut self,
12630        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
12631    ) -> Self {
12632        self.__unsafe_private_named.5 = value.into();
12633        self
12634    }
12635    /// Set the `comment` field to an Option value (optional)
12636    pub fn maybe_comment(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
12637        self.__unsafe_private_named.5 = value;
12638        self
12639    }
12640}
12641
12642impl<'a, S> SubjectStatusViewBuilder<'a, S>
12643where
12644    S: subject_status_view_state::State,
12645    S::CreatedAt: subject_status_view_state::IsUnset,
12646{
12647    /// Set the `createdAt` field (required)
12648    pub fn created_at(
12649        mut self,
12650        value: impl Into<jacquard_common::types::string::Datetime>,
12651    ) -> SubjectStatusViewBuilder<'a, subject_status_view_state::SetCreatedAt<S>> {
12652        self.__unsafe_private_named.6 = ::core::option::Option::Some(value.into());
12653        SubjectStatusViewBuilder {
12654            _phantom_state: ::core::marker::PhantomData,
12655            __unsafe_private_named: self.__unsafe_private_named,
12656            _phantom: ::core::marker::PhantomData,
12657        }
12658    }
12659}
12660
12661impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12662    /// Set the `hosting` field (optional)
12663    pub fn hosting(
12664        mut self,
12665        value: impl Into<Option<SubjectStatusViewHosting<'a>>>,
12666    ) -> Self {
12667        self.__unsafe_private_named.7 = value.into();
12668        self
12669    }
12670    /// Set the `hosting` field to an Option value (optional)
12671    pub fn maybe_hosting(mut self, value: Option<SubjectStatusViewHosting<'a>>) -> Self {
12672        self.__unsafe_private_named.7 = value;
12673        self
12674    }
12675}
12676
12677impl<'a, S> SubjectStatusViewBuilder<'a, S>
12678where
12679    S: subject_status_view_state::State,
12680    S::Id: subject_status_view_state::IsUnset,
12681{
12682    /// Set the `id` field (required)
12683    pub fn id(
12684        mut self,
12685        value: impl Into<i64>,
12686    ) -> SubjectStatusViewBuilder<'a, subject_status_view_state::SetId<S>> {
12687        self.__unsafe_private_named.8 = ::core::option::Option::Some(value.into());
12688        SubjectStatusViewBuilder {
12689            _phantom_state: ::core::marker::PhantomData,
12690            __unsafe_private_named: self.__unsafe_private_named,
12691            _phantom: ::core::marker::PhantomData,
12692        }
12693    }
12694}
12695
12696impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12697    /// Set the `lastAppealedAt` field (optional)
12698    pub fn last_appealed_at(
12699        mut self,
12700        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
12701    ) -> Self {
12702        self.__unsafe_private_named.9 = value.into();
12703        self
12704    }
12705    /// Set the `lastAppealedAt` field to an Option value (optional)
12706    pub fn maybe_last_appealed_at(
12707        mut self,
12708        value: Option<jacquard_common::types::string::Datetime>,
12709    ) -> Self {
12710        self.__unsafe_private_named.9 = value;
12711        self
12712    }
12713}
12714
12715impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12716    /// Set the `lastReportedAt` field (optional)
12717    pub fn last_reported_at(
12718        mut self,
12719        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
12720    ) -> Self {
12721        self.__unsafe_private_named.10 = value.into();
12722        self
12723    }
12724    /// Set the `lastReportedAt` field to an Option value (optional)
12725    pub fn maybe_last_reported_at(
12726        mut self,
12727        value: Option<jacquard_common::types::string::Datetime>,
12728    ) -> Self {
12729        self.__unsafe_private_named.10 = value;
12730        self
12731    }
12732}
12733
12734impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12735    /// Set the `lastReviewedAt` field (optional)
12736    pub fn last_reviewed_at(
12737        mut self,
12738        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
12739    ) -> Self {
12740        self.__unsafe_private_named.11 = value.into();
12741        self
12742    }
12743    /// Set the `lastReviewedAt` field to an Option value (optional)
12744    pub fn maybe_last_reviewed_at(
12745        mut self,
12746        value: Option<jacquard_common::types::string::Datetime>,
12747    ) -> Self {
12748        self.__unsafe_private_named.11 = value;
12749        self
12750    }
12751}
12752
12753impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12754    /// Set the `lastReviewedBy` field (optional)
12755    pub fn last_reviewed_by(
12756        mut self,
12757        value: impl Into<Option<jacquard_common::types::string::Did<'a>>>,
12758    ) -> Self {
12759        self.__unsafe_private_named.12 = value.into();
12760        self
12761    }
12762    /// Set the `lastReviewedBy` field to an Option value (optional)
12763    pub fn maybe_last_reviewed_by(
12764        mut self,
12765        value: Option<jacquard_common::types::string::Did<'a>>,
12766    ) -> Self {
12767        self.__unsafe_private_named.12 = value;
12768        self
12769    }
12770}
12771
12772impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12773    /// Set the `muteReportingUntil` field (optional)
12774    pub fn mute_reporting_until(
12775        mut self,
12776        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
12777    ) -> Self {
12778        self.__unsafe_private_named.13 = value.into();
12779        self
12780    }
12781    /// Set the `muteReportingUntil` field to an Option value (optional)
12782    pub fn maybe_mute_reporting_until(
12783        mut self,
12784        value: Option<jacquard_common::types::string::Datetime>,
12785    ) -> Self {
12786        self.__unsafe_private_named.13 = value;
12787        self
12788    }
12789}
12790
12791impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12792    /// Set the `muteUntil` field (optional)
12793    pub fn mute_until(
12794        mut self,
12795        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
12796    ) -> Self {
12797        self.__unsafe_private_named.14 = value.into();
12798        self
12799    }
12800    /// Set the `muteUntil` field to an Option value (optional)
12801    pub fn maybe_mute_until(
12802        mut self,
12803        value: Option<jacquard_common::types::string::Datetime>,
12804    ) -> Self {
12805        self.__unsafe_private_named.14 = value;
12806        self
12807    }
12808}
12809
12810impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12811    /// Set the `priorityScore` field (optional)
12812    pub fn priority_score(mut self, value: impl Into<Option<i64>>) -> Self {
12813        self.__unsafe_private_named.15 = value.into();
12814        self
12815    }
12816    /// Set the `priorityScore` field to an Option value (optional)
12817    pub fn maybe_priority_score(mut self, value: Option<i64>) -> Self {
12818        self.__unsafe_private_named.15 = value;
12819        self
12820    }
12821}
12822
12823impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12824    /// Set the `recordsStats` field (optional)
12825    pub fn records_stats(
12826        mut self,
12827        value: impl Into<Option<crate::tools_ozone::moderation::RecordsStats<'a>>>,
12828    ) -> Self {
12829        self.__unsafe_private_named.16 = value.into();
12830        self
12831    }
12832    /// Set the `recordsStats` field to an Option value (optional)
12833    pub fn maybe_records_stats(
12834        mut self,
12835        value: Option<crate::tools_ozone::moderation::RecordsStats<'a>>,
12836    ) -> Self {
12837        self.__unsafe_private_named.16 = value;
12838        self
12839    }
12840}
12841
12842impl<'a, S> SubjectStatusViewBuilder<'a, S>
12843where
12844    S: subject_status_view_state::State,
12845    S::ReviewState: subject_status_view_state::IsUnset,
12846{
12847    /// Set the `reviewState` field (required)
12848    pub fn review_state(
12849        mut self,
12850        value: impl Into<crate::tools_ozone::moderation::SubjectReviewState<'a>>,
12851    ) -> SubjectStatusViewBuilder<'a, subject_status_view_state::SetReviewState<S>> {
12852        self.__unsafe_private_named.17 = ::core::option::Option::Some(value.into());
12853        SubjectStatusViewBuilder {
12854            _phantom_state: ::core::marker::PhantomData,
12855            __unsafe_private_named: self.__unsafe_private_named,
12856            _phantom: ::core::marker::PhantomData,
12857        }
12858    }
12859}
12860
12861impl<'a, S> SubjectStatusViewBuilder<'a, S>
12862where
12863    S: subject_status_view_state::State,
12864    S::Subject: subject_status_view_state::IsUnset,
12865{
12866    /// Set the `subject` field (required)
12867    pub fn subject(
12868        mut self,
12869        value: impl Into<SubjectStatusViewSubject<'a>>,
12870    ) -> SubjectStatusViewBuilder<'a, subject_status_view_state::SetSubject<S>> {
12871        self.__unsafe_private_named.18 = ::core::option::Option::Some(value.into());
12872        SubjectStatusViewBuilder {
12873            _phantom_state: ::core::marker::PhantomData,
12874            __unsafe_private_named: self.__unsafe_private_named,
12875            _phantom: ::core::marker::PhantomData,
12876        }
12877    }
12878}
12879
12880impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12881    /// Set the `subjectBlobCids` field (optional)
12882    pub fn subject_blob_cids(
12883        mut self,
12884        value: impl Into<Option<Vec<jacquard_common::types::string::Cid<'a>>>>,
12885    ) -> Self {
12886        self.__unsafe_private_named.19 = value.into();
12887        self
12888    }
12889    /// Set the `subjectBlobCids` field to an Option value (optional)
12890    pub fn maybe_subject_blob_cids(
12891        mut self,
12892        value: Option<Vec<jacquard_common::types::string::Cid<'a>>>,
12893    ) -> Self {
12894        self.__unsafe_private_named.19 = value;
12895        self
12896    }
12897}
12898
12899impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12900    /// Set the `subjectRepoHandle` field (optional)
12901    pub fn subject_repo_handle(
12902        mut self,
12903        value: impl Into<Option<jacquard_common::CowStr<'a>>>,
12904    ) -> Self {
12905        self.__unsafe_private_named.20 = value.into();
12906        self
12907    }
12908    /// Set the `subjectRepoHandle` field to an Option value (optional)
12909    pub fn maybe_subject_repo_handle(
12910        mut self,
12911        value: Option<jacquard_common::CowStr<'a>>,
12912    ) -> Self {
12913        self.__unsafe_private_named.20 = value;
12914        self
12915    }
12916}
12917
12918impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12919    /// Set the `suspendUntil` field (optional)
12920    pub fn suspend_until(
12921        mut self,
12922        value: impl Into<Option<jacquard_common::types::string::Datetime>>,
12923    ) -> Self {
12924        self.__unsafe_private_named.21 = value.into();
12925        self
12926    }
12927    /// Set the `suspendUntil` field to an Option value (optional)
12928    pub fn maybe_suspend_until(
12929        mut self,
12930        value: Option<jacquard_common::types::string::Datetime>,
12931    ) -> Self {
12932        self.__unsafe_private_named.21 = value;
12933        self
12934    }
12935}
12936
12937impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12938    /// Set the `tags` field (optional)
12939    pub fn tags(
12940        mut self,
12941        value: impl Into<Option<Vec<jacquard_common::CowStr<'a>>>>,
12942    ) -> Self {
12943        self.__unsafe_private_named.22 = value.into();
12944        self
12945    }
12946    /// Set the `tags` field to an Option value (optional)
12947    pub fn maybe_tags(
12948        mut self,
12949        value: Option<Vec<jacquard_common::CowStr<'a>>>,
12950    ) -> Self {
12951        self.__unsafe_private_named.22 = value;
12952        self
12953    }
12954}
12955
12956impl<'a, S: subject_status_view_state::State> SubjectStatusViewBuilder<'a, S> {
12957    /// Set the `takendown` field (optional)
12958    pub fn takendown(mut self, value: impl Into<Option<bool>>) -> Self {
12959        self.__unsafe_private_named.23 = value.into();
12960        self
12961    }
12962    /// Set the `takendown` field to an Option value (optional)
12963    pub fn maybe_takendown(mut self, value: Option<bool>) -> Self {
12964        self.__unsafe_private_named.23 = value;
12965        self
12966    }
12967}
12968
12969impl<'a, S> SubjectStatusViewBuilder<'a, S>
12970where
12971    S: subject_status_view_state::State,
12972    S::UpdatedAt: subject_status_view_state::IsUnset,
12973{
12974    /// Set the `updatedAt` field (required)
12975    pub fn updated_at(
12976        mut self,
12977        value: impl Into<jacquard_common::types::string::Datetime>,
12978    ) -> SubjectStatusViewBuilder<'a, subject_status_view_state::SetUpdatedAt<S>> {
12979        self.__unsafe_private_named.24 = ::core::option::Option::Some(value.into());
12980        SubjectStatusViewBuilder {
12981            _phantom_state: ::core::marker::PhantomData,
12982            __unsafe_private_named: self.__unsafe_private_named,
12983            _phantom: ::core::marker::PhantomData,
12984        }
12985    }
12986}
12987
12988impl<'a, S> SubjectStatusViewBuilder<'a, S>
12989where
12990    S: subject_status_view_state::State,
12991    S::Id: subject_status_view_state::IsSet,
12992    S::Subject: subject_status_view_state::IsSet,
12993    S::CreatedAt: subject_status_view_state::IsSet,
12994    S::UpdatedAt: subject_status_view_state::IsSet,
12995    S::ReviewState: subject_status_view_state::IsSet,
12996{
12997    /// Build the final struct
12998    pub fn build(self) -> SubjectStatusView<'a> {
12999        SubjectStatusView {
13000            account_stats: self.__unsafe_private_named.0,
13001            account_strike: self.__unsafe_private_named.1,
13002            age_assurance_state: self.__unsafe_private_named.2,
13003            age_assurance_updated_by: self.__unsafe_private_named.3,
13004            appealed: self.__unsafe_private_named.4,
13005            comment: self.__unsafe_private_named.5,
13006            created_at: self.__unsafe_private_named.6.unwrap(),
13007            hosting: self.__unsafe_private_named.7,
13008            id: self.__unsafe_private_named.8.unwrap(),
13009            last_appealed_at: self.__unsafe_private_named.9,
13010            last_reported_at: self.__unsafe_private_named.10,
13011            last_reviewed_at: self.__unsafe_private_named.11,
13012            last_reviewed_by: self.__unsafe_private_named.12,
13013            mute_reporting_until: self.__unsafe_private_named.13,
13014            mute_until: self.__unsafe_private_named.14,
13015            priority_score: self.__unsafe_private_named.15,
13016            records_stats: self.__unsafe_private_named.16,
13017            review_state: self.__unsafe_private_named.17.unwrap(),
13018            subject: self.__unsafe_private_named.18.unwrap(),
13019            subject_blob_cids: self.__unsafe_private_named.19,
13020            subject_repo_handle: self.__unsafe_private_named.20,
13021            suspend_until: self.__unsafe_private_named.21,
13022            tags: self.__unsafe_private_named.22,
13023            takendown: self.__unsafe_private_named.23,
13024            updated_at: self.__unsafe_private_named.24.unwrap(),
13025            extra_data: Default::default(),
13026        }
13027    }
13028    /// Build the final struct with custom extra_data
13029    pub fn build_with_data(
13030        self,
13031        extra_data: std::collections::BTreeMap<
13032            jacquard_common::smol_str::SmolStr,
13033            jacquard_common::types::value::Data<'a>,
13034        >,
13035    ) -> SubjectStatusView<'a> {
13036        SubjectStatusView {
13037            account_stats: self.__unsafe_private_named.0,
13038            account_strike: self.__unsafe_private_named.1,
13039            age_assurance_state: self.__unsafe_private_named.2,
13040            age_assurance_updated_by: self.__unsafe_private_named.3,
13041            appealed: self.__unsafe_private_named.4,
13042            comment: self.__unsafe_private_named.5,
13043            created_at: self.__unsafe_private_named.6.unwrap(),
13044            hosting: self.__unsafe_private_named.7,
13045            id: self.__unsafe_private_named.8.unwrap(),
13046            last_appealed_at: self.__unsafe_private_named.9,
13047            last_reported_at: self.__unsafe_private_named.10,
13048            last_reviewed_at: self.__unsafe_private_named.11,
13049            last_reviewed_by: self.__unsafe_private_named.12,
13050            mute_reporting_until: self.__unsafe_private_named.13,
13051            mute_until: self.__unsafe_private_named.14,
13052            priority_score: self.__unsafe_private_named.15,
13053            records_stats: self.__unsafe_private_named.16,
13054            review_state: self.__unsafe_private_named.17.unwrap(),
13055            subject: self.__unsafe_private_named.18.unwrap(),
13056            subject_blob_cids: self.__unsafe_private_named.19,
13057            subject_repo_handle: self.__unsafe_private_named.20,
13058            suspend_until: self.__unsafe_private_named.21,
13059            tags: self.__unsafe_private_named.22,
13060            takendown: self.__unsafe_private_named.23,
13061            updated_at: self.__unsafe_private_named.24.unwrap(),
13062            extra_data: Some(extra_data),
13063        }
13064    }
13065}
13066
13067#[jacquard_derive::open_union]
13068#[derive(
13069    serde::Serialize,
13070    serde::Deserialize,
13071    Debug,
13072    Clone,
13073    PartialEq,
13074    Eq,
13075    jacquard_derive::IntoStatic
13076)]
13077#[serde(tag = "$type")]
13078#[serde(bound(deserialize = "'de: 'a"))]
13079pub enum SubjectStatusViewHosting<'a> {
13080    #[serde(rename = "tools.ozone.moderation.defs#accountHosting")]
13081    AccountHosting(Box<crate::tools_ozone::moderation::AccountHosting<'a>>),
13082    #[serde(rename = "tools.ozone.moderation.defs#recordHosting")]
13083    RecordHosting(Box<crate::tools_ozone::moderation::RecordHosting<'a>>),
13084}
13085
13086#[jacquard_derive::open_union]
13087#[derive(
13088    serde::Serialize,
13089    serde::Deserialize,
13090    Debug,
13091    Clone,
13092    PartialEq,
13093    Eq,
13094    jacquard_derive::IntoStatic
13095)]
13096#[serde(tag = "$type")]
13097#[serde(bound(deserialize = "'de: 'a"))]
13098pub enum SubjectStatusViewSubject<'a> {
13099    #[serde(rename = "com.atproto.admin.defs#repoRef")]
13100    RepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>),
13101    #[serde(rename = "com.atproto.repo.strongRef")]
13102    StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>),
13103    #[serde(rename = "chat.bsky.convo.defs#messageRef")]
13104    MessageRef(Box<crate::chat_bsky::convo::MessageRef<'a>>),
13105}
13106
13107impl<'a> ::jacquard_lexicon::schema::LexiconSchema for SubjectStatusView<'a> {
13108    fn nsid() -> &'static str {
13109        "tools.ozone.moderation.defs"
13110    }
13111    fn def_name() -> &'static str {
13112        "subjectStatusView"
13113    }
13114    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
13115        lexicon_doc_tools_ozone_moderation_defs()
13116    }
13117    fn validate(
13118        &self,
13119    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
13120        if let Some(ref value) = self.priority_score {
13121            if *value > 100i64 {
13122                return Err(::jacquard_lexicon::validation::ConstraintError::Maximum {
13123                    path: ::jacquard_lexicon::validation::ValidationPath::from_field(
13124                        "priority_score",
13125                    ),
13126                    max: 100i64,
13127                    actual: *value,
13128                });
13129            }
13130        }
13131        if let Some(ref value) = self.priority_score {
13132            if *value < 0i64 {
13133                return Err(::jacquard_lexicon::validation::ConstraintError::Minimum {
13134                    path: ::jacquard_lexicon::validation::ValidationPath::from_field(
13135                        "priority_score",
13136                    ),
13137                    min: 0i64,
13138                    actual: *value,
13139                });
13140            }
13141        }
13142        Ok(())
13143    }
13144}
13145
13146/// Detailed view of a subject. For record subjects, the author's repo and profile will be returned.
13147#[jacquard_derive::lexicon]
13148#[derive(
13149    serde::Serialize,
13150    serde::Deserialize,
13151    Debug,
13152    Clone,
13153    PartialEq,
13154    Eq,
13155    jacquard_derive::IntoStatic
13156)]
13157#[serde(rename_all = "camelCase")]
13158pub struct SubjectView<'a> {
13159    #[serde(skip_serializing_if = "std::option::Option::is_none")]
13160    #[serde(borrow)]
13161    pub profile: Option<jacquard_common::types::value::Data<'a>>,
13162    #[serde(skip_serializing_if = "std::option::Option::is_none")]
13163    #[serde(borrow)]
13164    pub record: Option<crate::tools_ozone::moderation::RecordViewDetail<'a>>,
13165    #[serde(skip_serializing_if = "std::option::Option::is_none")]
13166    #[serde(borrow)]
13167    pub repo: Option<crate::tools_ozone::moderation::RepoViewDetail<'a>>,
13168    #[serde(skip_serializing_if = "std::option::Option::is_none")]
13169    #[serde(borrow)]
13170    pub status: Option<crate::tools_ozone::moderation::SubjectStatusView<'a>>,
13171    #[serde(borrow)]
13172    pub subject: jacquard_common::CowStr<'a>,
13173    #[serde(borrow)]
13174    pub r#type: crate::com_atproto::moderation::SubjectType<'a>,
13175}
13176
13177pub mod subject_view_state {
13178
13179    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
13180    #[allow(unused)]
13181    use ::core::marker::PhantomData;
13182    mod sealed {
13183        pub trait Sealed {}
13184    }
13185    /// State trait tracking which required fields have been set
13186    pub trait State: sealed::Sealed {
13187        type Type;
13188        type Subject;
13189    }
13190    /// Empty state - all required fields are unset
13191    pub struct Empty(());
13192    impl sealed::Sealed for Empty {}
13193    impl State for Empty {
13194        type Type = Unset;
13195        type Subject = Unset;
13196    }
13197    ///State transition - sets the `type` field to Set
13198    pub struct SetType<S: State = Empty>(PhantomData<fn() -> S>);
13199    impl<S: State> sealed::Sealed for SetType<S> {}
13200    impl<S: State> State for SetType<S> {
13201        type Type = Set<members::r#type>;
13202        type Subject = S::Subject;
13203    }
13204    ///State transition - sets the `subject` field to Set
13205    pub struct SetSubject<S: State = Empty>(PhantomData<fn() -> S>);
13206    impl<S: State> sealed::Sealed for SetSubject<S> {}
13207    impl<S: State> State for SetSubject<S> {
13208        type Type = S::Type;
13209        type Subject = Set<members::subject>;
13210    }
13211    /// Marker types for field names
13212    #[allow(non_camel_case_types)]
13213    pub mod members {
13214        ///Marker type for the `type` field
13215        pub struct r#type(());
13216        ///Marker type for the `subject` field
13217        pub struct subject(());
13218    }
13219}
13220
13221/// Builder for constructing an instance of this type
13222pub struct SubjectViewBuilder<'a, S: subject_view_state::State> {
13223    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
13224    __unsafe_private_named: (
13225        ::core::option::Option<jacquard_common::types::value::Data<'a>>,
13226        ::core::option::Option<crate::tools_ozone::moderation::RecordViewDetail<'a>>,
13227        ::core::option::Option<crate::tools_ozone::moderation::RepoViewDetail<'a>>,
13228        ::core::option::Option<crate::tools_ozone::moderation::SubjectStatusView<'a>>,
13229        ::core::option::Option<jacquard_common::CowStr<'a>>,
13230        ::core::option::Option<crate::com_atproto::moderation::SubjectType<'a>>,
13231    ),
13232    _phantom: ::core::marker::PhantomData<&'a ()>,
13233}
13234
13235impl<'a> SubjectView<'a> {
13236    /// Create a new builder for this type
13237    pub fn new() -> SubjectViewBuilder<'a, subject_view_state::Empty> {
13238        SubjectViewBuilder::new()
13239    }
13240}
13241
13242impl<'a> SubjectViewBuilder<'a, subject_view_state::Empty> {
13243    /// Create a new builder with all fields unset
13244    pub fn new() -> Self {
13245        SubjectViewBuilder {
13246            _phantom_state: ::core::marker::PhantomData,
13247            __unsafe_private_named: (None, None, None, None, None, None),
13248            _phantom: ::core::marker::PhantomData,
13249        }
13250    }
13251}
13252
13253impl<'a, S: subject_view_state::State> SubjectViewBuilder<'a, S> {
13254    /// Set the `profile` field (optional)
13255    pub fn profile(
13256        mut self,
13257        value: impl Into<Option<jacquard_common::types::value::Data<'a>>>,
13258    ) -> Self {
13259        self.__unsafe_private_named.0 = value.into();
13260        self
13261    }
13262    /// Set the `profile` field to an Option value (optional)
13263    pub fn maybe_profile(
13264        mut self,
13265        value: Option<jacquard_common::types::value::Data<'a>>,
13266    ) -> Self {
13267        self.__unsafe_private_named.0 = value;
13268        self
13269    }
13270}
13271
13272impl<'a, S: subject_view_state::State> SubjectViewBuilder<'a, S> {
13273    /// Set the `record` field (optional)
13274    pub fn record(
13275        mut self,
13276        value: impl Into<Option<crate::tools_ozone::moderation::RecordViewDetail<'a>>>,
13277    ) -> Self {
13278        self.__unsafe_private_named.1 = value.into();
13279        self
13280    }
13281    /// Set the `record` field to an Option value (optional)
13282    pub fn maybe_record(
13283        mut self,
13284        value: Option<crate::tools_ozone::moderation::RecordViewDetail<'a>>,
13285    ) -> Self {
13286        self.__unsafe_private_named.1 = value;
13287        self
13288    }
13289}
13290
13291impl<'a, S: subject_view_state::State> SubjectViewBuilder<'a, S> {
13292    /// Set the `repo` field (optional)
13293    pub fn repo(
13294        mut self,
13295        value: impl Into<Option<crate::tools_ozone::moderation::RepoViewDetail<'a>>>,
13296    ) -> Self {
13297        self.__unsafe_private_named.2 = value.into();
13298        self
13299    }
13300    /// Set the `repo` field to an Option value (optional)
13301    pub fn maybe_repo(
13302        mut self,
13303        value: Option<crate::tools_ozone::moderation::RepoViewDetail<'a>>,
13304    ) -> Self {
13305        self.__unsafe_private_named.2 = value;
13306        self
13307    }
13308}
13309
13310impl<'a, S: subject_view_state::State> SubjectViewBuilder<'a, S> {
13311    /// Set the `status` field (optional)
13312    pub fn status(
13313        mut self,
13314        value: impl Into<Option<crate::tools_ozone::moderation::SubjectStatusView<'a>>>,
13315    ) -> Self {
13316        self.__unsafe_private_named.3 = value.into();
13317        self
13318    }
13319    /// Set the `status` field to an Option value (optional)
13320    pub fn maybe_status(
13321        mut self,
13322        value: Option<crate::tools_ozone::moderation::SubjectStatusView<'a>>,
13323    ) -> Self {
13324        self.__unsafe_private_named.3 = value;
13325        self
13326    }
13327}
13328
13329impl<'a, S> SubjectViewBuilder<'a, S>
13330where
13331    S: subject_view_state::State,
13332    S::Subject: subject_view_state::IsUnset,
13333{
13334    /// Set the `subject` field (required)
13335    pub fn subject(
13336        mut self,
13337        value: impl Into<jacquard_common::CowStr<'a>>,
13338    ) -> SubjectViewBuilder<'a, subject_view_state::SetSubject<S>> {
13339        self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
13340        SubjectViewBuilder {
13341            _phantom_state: ::core::marker::PhantomData,
13342            __unsafe_private_named: self.__unsafe_private_named,
13343            _phantom: ::core::marker::PhantomData,
13344        }
13345    }
13346}
13347
13348impl<'a, S> SubjectViewBuilder<'a, S>
13349where
13350    S: subject_view_state::State,
13351    S::Type: subject_view_state::IsUnset,
13352{
13353    /// Set the `type` field (required)
13354    pub fn r#type(
13355        mut self,
13356        value: impl Into<crate::com_atproto::moderation::SubjectType<'a>>,
13357    ) -> SubjectViewBuilder<'a, subject_view_state::SetType<S>> {
13358        self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
13359        SubjectViewBuilder {
13360            _phantom_state: ::core::marker::PhantomData,
13361            __unsafe_private_named: self.__unsafe_private_named,
13362            _phantom: ::core::marker::PhantomData,
13363        }
13364    }
13365}
13366
13367impl<'a, S> SubjectViewBuilder<'a, S>
13368where
13369    S: subject_view_state::State,
13370    S::Type: subject_view_state::IsSet,
13371    S::Subject: subject_view_state::IsSet,
13372{
13373    /// Build the final struct
13374    pub fn build(self) -> SubjectView<'a> {
13375        SubjectView {
13376            profile: self.__unsafe_private_named.0,
13377            record: self.__unsafe_private_named.1,
13378            repo: self.__unsafe_private_named.2,
13379            status: self.__unsafe_private_named.3,
13380            subject: self.__unsafe_private_named.4.unwrap(),
13381            r#type: self.__unsafe_private_named.5.unwrap(),
13382            extra_data: Default::default(),
13383        }
13384    }
13385    /// Build the final struct with custom extra_data
13386    pub fn build_with_data(
13387        self,
13388        extra_data: std::collections::BTreeMap<
13389            jacquard_common::smol_str::SmolStr,
13390            jacquard_common::types::value::Data<'a>,
13391        >,
13392    ) -> SubjectView<'a> {
13393        SubjectView {
13394            profile: self.__unsafe_private_named.0,
13395            record: self.__unsafe_private_named.1,
13396            repo: self.__unsafe_private_named.2,
13397            status: self.__unsafe_private_named.3,
13398            subject: self.__unsafe_private_named.4.unwrap(),
13399            r#type: self.__unsafe_private_named.5.unwrap(),
13400            extra_data: Some(extra_data),
13401        }
13402    }
13403}
13404
13405impl<'a> ::jacquard_lexicon::schema::LexiconSchema for SubjectView<'a> {
13406    fn nsid() -> &'static str {
13407        "tools.ozone.moderation.defs"
13408    }
13409    fn def_name() -> &'static str {
13410        "subjectView"
13411    }
13412    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
13413        lexicon_doc_tools_ozone_moderation_defs()
13414    }
13415    fn validate(
13416        &self,
13417    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
13418        Ok(())
13419    }
13420}
13421
13422/// Moderation event timeline event for a PLC create operation
13423#[derive(
13424    serde::Serialize,
13425    serde::Deserialize,
13426    Debug,
13427    Clone,
13428    PartialEq,
13429    Eq,
13430    Hash,
13431    jacquard_derive::IntoStatic
13432)]
13433pub struct TimelineEventPlcCreate;
13434impl std::fmt::Display for TimelineEventPlcCreate {
13435    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
13436        write!(f, "timelineEventPlcCreate")
13437    }
13438}
13439
13440/// Moderation event timeline event for generic PLC operation
13441#[derive(
13442    serde::Serialize,
13443    serde::Deserialize,
13444    Debug,
13445    Clone,
13446    PartialEq,
13447    Eq,
13448    Hash,
13449    jacquard_derive::IntoStatic
13450)]
13451pub struct TimelineEventPlcOperation;
13452impl std::fmt::Display for TimelineEventPlcOperation {
13453    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
13454        write!(f, "timelineEventPlcOperation")
13455    }
13456}
13457
13458/// Moderation event timeline event for a PLC tombstone operation
13459#[derive(
13460    serde::Serialize,
13461    serde::Deserialize,
13462    Debug,
13463    Clone,
13464    PartialEq,
13465    Eq,
13466    Hash,
13467    jacquard_derive::IntoStatic
13468)]
13469pub struct TimelineEventPlcTombstone;
13470impl std::fmt::Display for TimelineEventPlcTombstone {
13471    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
13472        write!(f, "timelineEventPlcTombstone")
13473    }
13474}
13475
13476#[jacquard_derive::lexicon]
13477#[derive(
13478    serde::Serialize,
13479    serde::Deserialize,
13480    Debug,
13481    Clone,
13482    PartialEq,
13483    Eq,
13484    jacquard_derive::IntoStatic
13485)]
13486#[serde(rename_all = "camelCase")]
13487pub struct VideoDetails<'a> {
13488    pub height: i64,
13489    pub length: i64,
13490    pub width: i64,
13491}
13492
13493pub mod video_details_state {
13494
13495    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
13496    #[allow(unused)]
13497    use ::core::marker::PhantomData;
13498    mod sealed {
13499        pub trait Sealed {}
13500    }
13501    /// State trait tracking which required fields have been set
13502    pub trait State: sealed::Sealed {
13503        type Width;
13504        type Height;
13505        type Length;
13506    }
13507    /// Empty state - all required fields are unset
13508    pub struct Empty(());
13509    impl sealed::Sealed for Empty {}
13510    impl State for Empty {
13511        type Width = Unset;
13512        type Height = Unset;
13513        type Length = Unset;
13514    }
13515    ///State transition - sets the `width` field to Set
13516    pub struct SetWidth<S: State = Empty>(PhantomData<fn() -> S>);
13517    impl<S: State> sealed::Sealed for SetWidth<S> {}
13518    impl<S: State> State for SetWidth<S> {
13519        type Width = Set<members::width>;
13520        type Height = S::Height;
13521        type Length = S::Length;
13522    }
13523    ///State transition - sets the `height` field to Set
13524    pub struct SetHeight<S: State = Empty>(PhantomData<fn() -> S>);
13525    impl<S: State> sealed::Sealed for SetHeight<S> {}
13526    impl<S: State> State for SetHeight<S> {
13527        type Width = S::Width;
13528        type Height = Set<members::height>;
13529        type Length = S::Length;
13530    }
13531    ///State transition - sets the `length` field to Set
13532    pub struct SetLength<S: State = Empty>(PhantomData<fn() -> S>);
13533    impl<S: State> sealed::Sealed for SetLength<S> {}
13534    impl<S: State> State for SetLength<S> {
13535        type Width = S::Width;
13536        type Height = S::Height;
13537        type Length = Set<members::length>;
13538    }
13539    /// Marker types for field names
13540    #[allow(non_camel_case_types)]
13541    pub mod members {
13542        ///Marker type for the `width` field
13543        pub struct width(());
13544        ///Marker type for the `height` field
13545        pub struct height(());
13546        ///Marker type for the `length` field
13547        pub struct length(());
13548    }
13549}
13550
13551/// Builder for constructing an instance of this type
13552pub struct VideoDetailsBuilder<'a, S: video_details_state::State> {
13553    _phantom_state: ::core::marker::PhantomData<fn() -> S>,
13554    __unsafe_private_named: (
13555        ::core::option::Option<i64>,
13556        ::core::option::Option<i64>,
13557        ::core::option::Option<i64>,
13558    ),
13559    _phantom: ::core::marker::PhantomData<&'a ()>,
13560}
13561
13562impl<'a> VideoDetails<'a> {
13563    /// Create a new builder for this type
13564    pub fn new() -> VideoDetailsBuilder<'a, video_details_state::Empty> {
13565        VideoDetailsBuilder::new()
13566    }
13567}
13568
13569impl<'a> VideoDetailsBuilder<'a, video_details_state::Empty> {
13570    /// Create a new builder with all fields unset
13571    pub fn new() -> Self {
13572        VideoDetailsBuilder {
13573            _phantom_state: ::core::marker::PhantomData,
13574            __unsafe_private_named: (None, None, None),
13575            _phantom: ::core::marker::PhantomData,
13576        }
13577    }
13578}
13579
13580impl<'a, S> VideoDetailsBuilder<'a, S>
13581where
13582    S: video_details_state::State,
13583    S::Height: video_details_state::IsUnset,
13584{
13585    /// Set the `height` field (required)
13586    pub fn height(
13587        mut self,
13588        value: impl Into<i64>,
13589    ) -> VideoDetailsBuilder<'a, video_details_state::SetHeight<S>> {
13590        self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
13591        VideoDetailsBuilder {
13592            _phantom_state: ::core::marker::PhantomData,
13593            __unsafe_private_named: self.__unsafe_private_named,
13594            _phantom: ::core::marker::PhantomData,
13595        }
13596    }
13597}
13598
13599impl<'a, S> VideoDetailsBuilder<'a, S>
13600where
13601    S: video_details_state::State,
13602    S::Length: video_details_state::IsUnset,
13603{
13604    /// Set the `length` field (required)
13605    pub fn length(
13606        mut self,
13607        value: impl Into<i64>,
13608    ) -> VideoDetailsBuilder<'a, video_details_state::SetLength<S>> {
13609        self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
13610        VideoDetailsBuilder {
13611            _phantom_state: ::core::marker::PhantomData,
13612            __unsafe_private_named: self.__unsafe_private_named,
13613            _phantom: ::core::marker::PhantomData,
13614        }
13615    }
13616}
13617
13618impl<'a, S> VideoDetailsBuilder<'a, S>
13619where
13620    S: video_details_state::State,
13621    S::Width: video_details_state::IsUnset,
13622{
13623    /// Set the `width` field (required)
13624    pub fn width(
13625        mut self,
13626        value: impl Into<i64>,
13627    ) -> VideoDetailsBuilder<'a, video_details_state::SetWidth<S>> {
13628        self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
13629        VideoDetailsBuilder {
13630            _phantom_state: ::core::marker::PhantomData,
13631            __unsafe_private_named: self.__unsafe_private_named,
13632            _phantom: ::core::marker::PhantomData,
13633        }
13634    }
13635}
13636
13637impl<'a, S> VideoDetailsBuilder<'a, S>
13638where
13639    S: video_details_state::State,
13640    S::Width: video_details_state::IsSet,
13641    S::Height: video_details_state::IsSet,
13642    S::Length: video_details_state::IsSet,
13643{
13644    /// Build the final struct
13645    pub fn build(self) -> VideoDetails<'a> {
13646        VideoDetails {
13647            height: self.__unsafe_private_named.0.unwrap(),
13648            length: self.__unsafe_private_named.1.unwrap(),
13649            width: self.__unsafe_private_named.2.unwrap(),
13650            extra_data: Default::default(),
13651        }
13652    }
13653    /// Build the final struct with custom extra_data
13654    pub fn build_with_data(
13655        self,
13656        extra_data: std::collections::BTreeMap<
13657            jacquard_common::smol_str::SmolStr,
13658            jacquard_common::types::value::Data<'a>,
13659        >,
13660    ) -> VideoDetails<'a> {
13661        VideoDetails {
13662            height: self.__unsafe_private_named.0.unwrap(),
13663            length: self.__unsafe_private_named.1.unwrap(),
13664            width: self.__unsafe_private_named.2.unwrap(),
13665            extra_data: Some(extra_data),
13666        }
13667    }
13668}
13669
13670impl<'a> ::jacquard_lexicon::schema::LexiconSchema for VideoDetails<'a> {
13671    fn nsid() -> &'static str {
13672        "tools.ozone.moderation.defs"
13673    }
13674    fn def_name() -> &'static str {
13675        "videoDetails"
13676    }
13677    fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
13678        lexicon_doc_tools_ozone_moderation_defs()
13679    }
13680    fn validate(
13681        &self,
13682    ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
13683        Ok(())
13684    }
13685}