···326326 "type": "string",
327327 "description": "The content of the email sent to the user."
328328 },
329329+ "isDelivered": {
330330+ "type": "boolean",
331331+ "description": "Indicates whether the email was successfully delivered to the user's inbox."
332332+ },
329333 "policies": {
330334 "type": "array",
331335 "description": "Names/Keywords of the policies that necessitated the email.",
···555559 "type": "string",
556560 "description": "When the strike should expire. If not provided, the strike never expires.",
557561 "format": "datetime"
562562+ },
563563+ "targetServices": {
564564+ "type": "array",
565565+ "description": "List of services where the takedown should be applied. If empty or not provided, takedown is applied on all configured services.",
566566+ "items": {
567567+ "type": "string",
568568+ "knownValues": [
569569+ "appview",
570570+ "pds"
571571+ ]
572572+ }
558573 }
559574 }
560575 },
···133133 "type": "integer",
134134 "description": "Indicates how long the takedown should be in effect before automatically expiring."
135135 },
136136+ "emailContent": {
137137+ "type": "string",
138138+ "description": "Email content to be sent to the user upon takedown."
139139+ },
140140+ "emailSubject": {
141141+ "type": "string",
142142+ "description": "Subject of the email to be sent to the user upon takedown."
143143+ },
136144 "policies": {
137145 "type": "array",
138146 "description": "Names/Keywords of the policies that drove the decision.",
···140148 "type": "string"
141149 },
142150 "maxLength": 5
151151+ },
152152+ "severityLevel": {
153153+ "type": "string",
154154+ "description": "Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.)."
155155+ },
156156+ "strikeCount": {
157157+ "type": "integer",
158158+ "description": "Number of strikes to assign to the user when takedown is applied."
159159+ },
160160+ "strikeExpiresAt": {
161161+ "type": "string",
162162+ "description": "When the strike should expire. If not provided, the strike never expires.",
163163+ "format": "datetime"
143164 }
144165 }
145166 }
···3939 pub created_at: jacquard_common::types::string::Datetime,
4040 /// The duration of the status in minutes. Applications can choose to impose minimum and maximum limits.
4141 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4242- pub duration_minutes: Option<i64>,
4242+ pub duration_minutes: std::option::Option<i64>,
4343 /// An optional embed associated with the status.
4444 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4545 #[serde(borrow)]
4646- pub embed: Option<crate::app_bsky::embed::external::ExternalRecord<'a>>,
4646+ pub embed: std::option::Option<crate::app_bsky::embed::external::ExternalRecord<'a>>,
4747 /// The status for the account.
4848 #[serde(borrow)]
4949 pub status: jacquard_common::CowStr<'a>,
···2222 pub alt: jacquard_common::CowStr<'a>,
2323 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2424 #[serde(borrow)]
2525- pub aspect_ratio: Option<crate::app_bsky::embed::AspectRatio<'a>>,
2525+ pub aspect_ratio: std::option::Option<crate::app_bsky::embed::AspectRatio<'a>>,
2626 #[serde(borrow)]
2727 pub image: jacquard_common::types::blob::BlobRef<'a>,
2828}
···741741 pub alt: jacquard_common::CowStr<'a>,
742742 #[serde(skip_serializing_if = "std::option::Option::is_none")]
743743 #[serde(borrow)]
744744- pub aspect_ratio: Option<crate::app_bsky::embed::AspectRatio<'a>>,
744744+ pub aspect_ratio: std::option::Option<crate::app_bsky::embed::AspectRatio<'a>>,
745745 /// Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View.
746746 #[serde(borrow)]
747747 pub fullsize: jacquard_common::types::string::Uri<'a>,
···584584 pub created_at: jacquard_common::types::string::Datetime,
585585 #[serde(skip_serializing_if = "std::option::Option::is_none")]
586586 #[serde(borrow)]
587587- pub embed: Option<PostEmbed<'a>>,
587587+ pub embed: std::option::Option<PostEmbed<'a>>,
588588 /// DEPRECATED: replaced by app.bsky.richtext.facet.
589589 #[serde(skip_serializing_if = "std::option::Option::is_none")]
590590 #[serde(borrow)]
591591- pub entities: Option<Vec<crate::app_bsky::feed::post::Entity<'a>>>,
591591+ pub entities: std::option::Option<Vec<crate::app_bsky::feed::post::Entity<'a>>>,
592592 /// Annotations of text (mentions, URLs, hashtags, etc)
593593 #[serde(skip_serializing_if = "std::option::Option::is_none")]
594594 #[serde(borrow)]
595595- pub facets: Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>,
595595+ pub facets: std::option::Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>,
596596 /// Self-label values for this post. Effectively content warnings.
597597 #[serde(skip_serializing_if = "std::option::Option::is_none")]
598598 #[serde(borrow)]
599599- pub labels: Option<crate::com_atproto::label::SelfLabels<'a>>,
599599+ pub labels: std::option::Option<crate::com_atproto::label::SelfLabels<'a>>,
600600 /// Indicates human language of post primary text content.
601601 #[serde(skip_serializing_if = "std::option::Option::is_none")]
602602- pub langs: Option<Vec<jacquard_common::types::string::Language>>,
602602+ pub langs: std::option::Option<Vec<jacquard_common::types::string::Language>>,
603603 #[serde(skip_serializing_if = "std::option::Option::is_none")]
604604 #[serde(borrow)]
605605- pub reply: Option<crate::app_bsky::feed::post::ReplyRef<'a>>,
605605+ pub reply: std::option::Option<crate::app_bsky::feed::post::ReplyRef<'a>>,
606606 /// Additional hashtags, in addition to any included in post text and facets.
607607 #[serde(skip_serializing_if = "std::option::Option::is_none")]
608608 #[serde(borrow)]
609609- pub tags: Option<Vec<jacquard_common::CowStr<'a>>>,
609609+ pub tags: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
610610 /// The primary post content. May be an empty string, if there are embeds.
611611 #[serde(borrow)]
612612 pub text: jacquard_common::CowStr<'a>,
+6-2
crates/weaver-api/src/app_bsky/feed/postgate.rs
···200200 /// List of AT-URIs embedding this post that the author has detached from.
201201 #[serde(skip_serializing_if = "std::option::Option::is_none")]
202202 #[serde(borrow)]
203203- pub detached_embedding_uris: Option<Vec<jacquard_common::types::string::AtUri<'a>>>,
203203+ pub detached_embedding_uris: std::option::Option<
204204+ Vec<jacquard_common::types::string::AtUri<'a>>,
205205+ >,
204206 /// List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed.
205207 #[serde(skip_serializing_if = "std::option::Option::is_none")]
206208 #[serde(borrow)]
207207- pub embedding_rules: Option<Vec<crate::app_bsky::feed::postgate::DisableRule<'a>>>,
209209+ pub embedding_rules: std::option::Option<
210210+ Vec<crate::app_bsky::feed::postgate::DisableRule<'a>>,
211211+ >,
208212 /// Reference (AT-URI) to the post record.
209213 #[serde(borrow)]
210214 pub post: jacquard_common::types::string::AtUri<'a>,
···440440 /// List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply.
441441 #[serde(skip_serializing_if = "std::option::Option::is_none")]
442442 #[serde(borrow)]
443443- pub allow: Option<Vec<ThreadgateAllowItem<'a>>>,
443443+ pub allow: std::option::Option<Vec<ThreadgateAllowItem<'a>>>,
444444 pub created_at: jacquard_common::types::string::Datetime,
445445 /// List of hidden reply URIs.
446446 #[serde(skip_serializing_if = "std::option::Option::is_none")]
447447 #[serde(borrow)]
448448- pub hidden_replies: Option<Vec<jacquard_common::types::string::AtUri<'a>>>,
448448+ pub hidden_replies: std::option::Option<
449449+ Vec<jacquard_common::types::string::AtUri<'a>>,
450450+ >,
449451 /// Reference (AT-URI) to the post record.
450452 #[serde(borrow)]
451453 pub post: jacquard_common::types::string::AtUri<'a>,
···2323 /// Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler.
2424 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2525 #[serde(borrow)]
2626- pub label_value_definitions: Option<
2626+ pub label_value_definitions: std::option::Option<
2727 Vec<crate::com_atproto::label::LabelValueDefinition<'a>>,
2828 >,
2929 /// The label values which this labeler publishes. May include global or custom labels.
···612612 pub indexed_at: jacquard_common::types::string::Datetime,
613613 #[serde(skip_serializing_if = "std::option::Option::is_none")]
614614 #[serde(borrow)]
615615- pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>,
615615+ pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
616616 #[serde(skip_serializing_if = "std::option::Option::is_none")]
617617- pub like_count: Option<i64>,
617617+ pub like_count: std::option::Option<i64>,
618618 #[serde(borrow)]
619619 pub uri: jacquard_common::types::string::AtUri<'a>,
620620 #[serde(skip_serializing_if = "std::option::Option::is_none")]
621621 #[serde(borrow)]
622622- pub viewer: Option<crate::app_bsky::labeler::LabelerViewerState<'a>>,
622622+ pub viewer: std::option::Option<crate::app_bsky::labeler::LabelerViewerState<'a>>,
623623}
624624625625pub mod labeler_view_state {
···945945 pub indexed_at: jacquard_common::types::string::Datetime,
946946 #[serde(skip_serializing_if = "std::option::Option::is_none")]
947947 #[serde(borrow)]
948948- pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>,
948948+ pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
949949 #[serde(skip_serializing_if = "std::option::Option::is_none")]
950950- pub like_count: Option<i64>,
950950+ pub like_count: std::option::Option<i64>,
951951 #[serde(borrow)]
952952 pub policies: crate::app_bsky::labeler::LabelerPolicies<'a>,
953953 /// The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed.
954954 #[serde(skip_serializing_if = "std::option::Option::is_none")]
955955 #[serde(borrow)]
956956- pub reason_types: Option<Vec<crate::com_atproto::moderation::ReasonType<'a>>>,
956956+ pub reason_types: std::option::Option<
957957+ Vec<crate::com_atproto::moderation::ReasonType<'a>>,
958958+ >,
957959 /// Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type.
958960 #[serde(skip_serializing_if = "std::option::Option::is_none")]
959961 #[serde(borrow)]
960960- pub subject_collections: Option<Vec<jacquard_common::types::string::Nsid<'a>>>,
962962+ pub subject_collections: std::option::Option<
963963+ Vec<jacquard_common::types::string::Nsid<'a>>,
964964+ >,
961965 /// The set of subject types (account, record, etc) this service accepts reports on.
962966 #[serde(skip_serializing_if = "std::option::Option::is_none")]
963967 #[serde(borrow)]
964964- pub subject_types: Option<Vec<crate::com_atproto::moderation::SubjectType<'a>>>,
968968+ pub subject_types: std::option::Option<
969969+ Vec<crate::com_atproto::moderation::SubjectType<'a>>,
970970+ >,
965971 #[serde(borrow)]
966972 pub uri: jacquard_common::types::string::AtUri<'a>,
967973 #[serde(skip_serializing_if = "std::option::Option::is_none")]
968974 #[serde(borrow)]
969969- pub viewer: Option<crate::app_bsky::labeler::LabelerViewerState<'a>>,
975975+ pub viewer: std::option::Option<crate::app_bsky::labeler::LabelerViewerState<'a>>,
970976}
971977972978pub mod labeler_view_detailed_state {
+10-4
crates/weaver-api/src/app_bsky/labeler/service.rs
···2121 pub created_at: jacquard_common::types::string::Datetime,
2222 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2323 #[serde(borrow)]
2424- pub labels: Option<crate::com_atproto::label::SelfLabels<'a>>,
2424+ pub labels: std::option::Option<crate::com_atproto::label::SelfLabels<'a>>,
2525 #[serde(borrow)]
2626 pub policies: crate::app_bsky::labeler::LabelerPolicies<'a>,
2727 /// The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed.
2828 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2929 #[serde(borrow)]
3030- pub reason_types: Option<Vec<crate::com_atproto::moderation::ReasonType<'a>>>,
3030+ pub reason_types: std::option::Option<
3131+ Vec<crate::com_atproto::moderation::ReasonType<'a>>,
3232+ >,
3133 /// Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type.
3234 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3335 #[serde(borrow)]
3434- pub subject_collections: Option<Vec<jacquard_common::types::string::Nsid<'a>>>,
3636+ pub subject_collections: std::option::Option<
3737+ Vec<jacquard_common::types::string::Nsid<'a>>,
3838+ >,
3539 /// The set of subject types (account, record, etc) this service accepts reports on.
3640 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3741 #[serde(borrow)]
3838- pub subject_types: Option<Vec<crate::com_atproto::moderation::SubjectType<'a>>>,
4242+ pub subject_types: std::option::Option<
4343+ Vec<crate::com_atproto::moderation::SubjectType<'a>>,
4444+ >,
3945}
40464147pub mod service_state {
···1919pub struct RegisterPush<'a> {
2020 /// Set to true when the actor is age restricted
2121 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2222- pub age_restricted: Option<bool>,
2222+ pub age_restricted: std::option::Option<bool>,
2323 #[serde(borrow)]
2424 pub app_id: jacquard_common::CowStr<'a>,
2525 #[serde(borrow)]
+9-9
crates/weaver-api/src/app_bsky/unspecced.rs
···4747 /// The IP address used when completing the AA flow.
4848 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4949 #[serde(borrow)]
5050- pub complete_ip: Option<jacquard_common::CowStr<'a>>,
5050+ pub complete_ip: std::option::Option<jacquard_common::CowStr<'a>>,
5151 /// The user agent used when completing the AA flow.
5252 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5353 #[serde(borrow)]
5454- pub complete_ua: Option<jacquard_common::CowStr<'a>>,
5454+ pub complete_ua: std::option::Option<jacquard_common::CowStr<'a>>,
5555 /// The date and time of this write operation.
5656 pub created_at: jacquard_common::types::string::Datetime,
5757 /// The email used for AA.
5858 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5959 #[serde(borrow)]
6060- pub email: Option<jacquard_common::CowStr<'a>>,
6060+ pub email: std::option::Option<jacquard_common::CowStr<'a>>,
6161 /// The IP address used when initiating the AA flow.
6262 #[serde(skip_serializing_if = "std::option::Option::is_none")]
6363 #[serde(borrow)]
6464- pub init_ip: Option<jacquard_common::CowStr<'a>>,
6464+ pub init_ip: std::option::Option<jacquard_common::CowStr<'a>>,
6565 /// The user agent used when initiating the AA flow.
6666 #[serde(skip_serializing_if = "std::option::Option::is_none")]
6767 #[serde(borrow)]
6868- pub init_ua: Option<jacquard_common::CowStr<'a>>,
6868+ pub init_ua: std::option::Option<jacquard_common::CowStr<'a>>,
6969 /// The status of the age assurance process.
7070 #[serde(borrow)]
7171 pub status: jacquard_common::CowStr<'a>,
···17171717pub struct SkeletonTrend<'a> {
17181718 #[serde(skip_serializing_if = "std::option::Option::is_none")]
17191719 #[serde(borrow)]
17201720- pub category: Option<jacquard_common::CowStr<'a>>,
17201720+ pub category: std::option::Option<jacquard_common::CowStr<'a>>,
17211721 #[serde(borrow)]
17221722 pub dids: Vec<jacquard_common::types::string::Did<'a>>,
17231723 #[serde(borrow)]
···17281728 pub started_at: jacquard_common::types::string::Datetime,
17291729 #[serde(skip_serializing_if = "std::option::Option::is_none")]
17301730 #[serde(borrow)]
17311731- pub status: Option<jacquard_common::CowStr<'a>>,
17311731+ pub status: std::option::Option<jacquard_common::CowStr<'a>>,
17321732 #[serde(borrow)]
17331733 pub topic: jacquard_common::CowStr<'a>,
17341734}
···26452645 pub actors: Vec<crate::app_bsky::actor::ProfileViewBasic<'a>>,
26462646 #[serde(skip_serializing_if = "std::option::Option::is_none")]
26472647 #[serde(borrow)]
26482648- pub category: Option<jacquard_common::CowStr<'a>>,
26482648+ pub category: std::option::Option<jacquard_common::CowStr<'a>>,
26492649 #[serde(borrow)]
26502650 pub display_name: jacquard_common::CowStr<'a>,
26512651 #[serde(borrow)]
···26542654 pub started_at: jacquard_common::types::string::Datetime,
26552655 #[serde(skip_serializing_if = "std::option::Option::is_none")]
26562656 #[serde(borrow)]
26572657- pub status: Option<jacquard_common::CowStr<'a>>,
26572657+ pub status: std::option::Option<jacquard_common::CowStr<'a>>,
26582658 #[serde(borrow)]
26592659 pub topic: jacquard_common::CowStr<'a>,
26602660}
+4-4
crates/weaver-api/src/app_bsky/video.rs
···2323pub struct JobStatus<'a> {
2424 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2525 #[serde(borrow)]
2626- pub blob: Option<jacquard_common::types::blob::BlobRef<'a>>,
2626+ pub blob: std::option::Option<jacquard_common::types::blob::BlobRef<'a>>,
2727 #[serde(borrow)]
2828 pub did: jacquard_common::types::string::Did<'a>,
2929 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3030 #[serde(borrow)]
3131- pub error: Option<jacquard_common::CowStr<'a>>,
3131+ pub error: std::option::Option<jacquard_common::CowStr<'a>>,
3232 #[serde(borrow)]
3333 pub job_id: jacquard_common::CowStr<'a>,
3434 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3535 #[serde(borrow)]
3636- pub message: Option<jacquard_common::CowStr<'a>>,
3636+ pub message: std::option::Option<jacquard_common::CowStr<'a>>,
3737 /// Progress within the current processing state.
3838 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3939- pub progress: Option<i64>,
3939+ pub progress: std::option::Option<i64>,
4040 /// The state of the video processing job. All values not listed as a known value indicate that the job is in process.
4141 #[serde(borrow)]
4242 pub state: jacquard_common::CowStr<'a>,
···2626 /// Optionally, CID specifying the specific version of 'uri' resource this label applies to.
2727 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2828 #[serde(borrow)]
2929- pub cid: Option<jacquard_common::types::string::Cid<'a>>,
2929+ pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
3030 /// Timestamp when this label was created.
3131 pub cts: jacquard_common::types::string::Datetime,
3232 /// Timestamp at which this label expires (no longer applies).
3333 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3434- pub exp: Option<jacquard_common::types::string::Datetime>,
3434+ pub exp: std::option::Option<jacquard_common::types::string::Datetime>,
3535 /// If true, this is a negation label, overwriting a previous label.
3636 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3737- pub neg: Option<bool>,
3737+ pub neg: std::option::Option<bool>,
3838 /// Signature of dag-cbor encoded label.
3939 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4040- pub sig: Option<bytes::Bytes>,
4040+ pub sig: std::option::Option<bytes::Bytes>,
4141 /// DID of the actor who created this label.
4242 #[serde(borrow)]
4343 pub src: jacquard_common::types::string::Did<'a>,
···4949 pub val: jacquard_common::CowStr<'a>,
5050 /// The AT Protocol version of the label object.
5151 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5252- pub ver: Option<i64>,
5252+ pub ver: std::option::Option<i64>,
5353}
54545555pub mod label_state {
···10241024pub struct LabelValueDefinition<'a> {
10251025 /// Does the user need to have adult content enabled in order to configure this label?
10261026 #[serde(skip_serializing_if = "std::option::Option::is_none")]
10271027- pub adult_only: Option<bool>,
10271027+ pub adult_only: std::option::Option<bool>,
10281028 /// What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.
10291029 #[serde(borrow)]
10301030 pub blurs: jacquard_common::CowStr<'a>,
10311031 /// The default setting for this label.
10321032 #[serde(skip_serializing_if = "std::option::Option::is_none")]
10331033 #[serde(borrow)]
10341034- pub default_setting: Option<jacquard_common::CowStr<'a>>,
10341034+ pub default_setting: std::option::Option<jacquard_common::CowStr<'a>>,
10351035 /// The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).
10361036 #[serde(borrow)]
10371037 pub identifier: jacquard_common::CowStr<'a>,
···2929 /// The Record Key.
3030 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3131 #[serde(borrow)]
3232- pub rkey: Option<
3232+ pub rkey: std::option::Option<
3333 jacquard_common::types::string::RecordKey<
3434 jacquard_common::types::string::Rkey<'a>,
3535 >,
···3737 /// Compare and swap with the previous commit by CID.
3838 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3939 #[serde(borrow)]
4040- pub swap_commit: Option<jacquard_common::types::string::Cid<'a>>,
4040+ pub swap_commit: std::option::Option<jacquard_common::types::string::Cid<'a>>,
4141 /// Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons.
4242 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4343- pub validate: Option<bool>,
4343+ pub validate: std::option::Option<bool>,
4444}
45454646pub mod create_record_state {
···3434 /// Compare and swap with the previous commit by CID.
3535 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3636 #[serde(borrow)]
3737- pub swap_commit: Option<jacquard_common::types::string::Cid<'a>>,
3737+ pub swap_commit: std::option::Option<jacquard_common::types::string::Cid<'a>>,
3838 /// Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation
3939 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4040 #[serde(borrow)]
4141- pub swap_record: Option<jacquard_common::types::string::Cid<'a>>,
4141+ pub swap_record: std::option::Option<jacquard_common::types::string::Cid<'a>>,
4242 /// Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons.
4343 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4444- pub validate: Option<bool>,
4444+ pub validate: std::option::Option<bool>,
4545}
46464747pub mod put_record_state {
···171171#[serde(rename_all = "camelCase")]
172172pub struct Repo<'a> {
173173 #[serde(skip_serializing_if = "std::option::Option::is_none")]
174174- pub active: Option<bool>,
174174+ pub active: std::option::Option<bool>,
175175 #[serde(borrow)]
176176 pub did: jacquard_common::types::string::Did<'a>,
177177 /// Current repo commit CID
···181181 /// If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.
182182 #[serde(skip_serializing_if = "std::option::Option::is_none")]
183183 #[serde(borrow)]
184184- pub status: Option<jacquard_common::CowStr<'a>>,
184184+ pub status: std::option::Option<jacquard_common::CowStr<'a>>,
185185}
186186187187pub mod repo_state {
···2626 /// If active=false, this optional field indicates a reason for why the account is not active.
2727 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2828 #[serde(borrow)]
2929- pub status: Option<jacquard_common::CowStr<'a>>,
2929+ pub status: std::option::Option<jacquard_common::CowStr<'a>>,
3030 pub time: jacquard_common::types::string::Datetime,
3131}
3232···938938 /// The root CID of the MST tree for the previous commit from this repo (indicated by the 'since' revision field in this message). Corresponds to the 'data' field in the repo commit object. NOTE: this field is effectively required for the 'inductive' version of firehose.
939939 #[serde(skip_serializing_if = "std::option::Option::is_none")]
940940 #[serde(borrow)]
941941- pub prev_data: Option<jacquard_common::types::cid::CidLink<'a>>,
941941+ pub prev_data: std::option::Option<jacquard_common::types::cid::CidLink<'a>>,
942942 /// DEPRECATED -- unused
943943 pub rebase: bool,
944944 /// The repo this event comes from. Note that all other message types name this field 'did'.
···15861586 /// The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details.
15871587 #[serde(skip_serializing_if = "std::option::Option::is_none")]
15881588 #[serde(borrow)]
15891589- pub handle: Option<jacquard_common::types::string::Handle<'a>>,
15891589+ pub handle: std::option::Option<jacquard_common::types::string::Handle<'a>>,
15901590 pub seq: i64,
15911591 pub time: jacquard_common::types::string::Datetime,
15921592}
···20852085 /// For updates and deletes, the previous record CID (required for inductive firehose). For creations, field should not be defined.
20862086 #[serde(skip_serializing_if = "std::option::Option::is_none")]
20872087 #[serde(borrow)]
20882088- pub prev: Option<jacquard_common::types::cid::CidLink<'a>>,
20882088+ pub prev: std::option::Option<jacquard_common::types::cid::CidLink<'a>>,
20892089}
2090209020912091pub mod repo_op_state {
···2323 /// Blurhash string for the image, used for low-resolution placeholders. This must be a valid Blurhash string.
2424 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2525 #[serde(borrow)]
2626- pub blurhash: Option<jacquard_common::CowStr<'a>>,
2626+ pub blurhash: std::option::Option<jacquard_common::CowStr<'a>>,
2727 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2828 #[serde(borrow)]
2929- pub dimensions: Option<ImageDimensions<'a>>,
2929+ pub dimensions: std::option::Option<ImageDimensions<'a>>,
3030 #[serde(borrow)]
3131 pub image: jacquard_common::types::blob::BlobRef<'a>,
3232 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3333 #[serde(borrow)]
3434- pub name: Option<jacquard_common::CowStr<'a>>,
3434+ pub name: std::option::Option<jacquard_common::CowStr<'a>>,
3535}
36363737pub mod image_state {
···880880 pub alt: jacquard_common::CowStr<'a>,
881881 #[serde(skip_serializing_if = "std::option::Option::is_none")]
882882 #[serde(borrow)]
883883- pub dimensions: Option<ViewImageDimensions<'a>>,
883883+ pub dimensions: std::option::Option<ViewImageDimensions<'a>>,
884884 /// Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View.
885885 #[serde(borrow)]
886886 pub fullsize: jacquard_common::types::string::Uri<'a>,
887887 #[serde(skip_serializing_if = "std::option::Option::is_none")]
888888 #[serde(borrow)]
889889- pub name: Option<jacquard_common::CowStr<'a>>,
889889+ pub name: std::option::Option<jacquard_common::CowStr<'a>>,
890890 /// Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View.
891891 #[serde(borrow)]
892892 pub thumb: jacquard_common::types::string::Uri<'a>,
···2424 /// An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject.
2525 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2626 #[serde(borrow)]
2727- pub external_id: Option<jacquard_common::CowStr<'a>>,
2727+ pub external_id: std::option::Option<jacquard_common::CowStr<'a>>,
2828 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2929 #[serde(borrow)]
3030- pub mod_tool: Option<crate::tools_ozone::moderation::ModTool<'a>>,
3030+ pub mod_tool: std::option::Option<crate::tools_ozone::moderation::ModTool<'a>>,
3131 #[serde(borrow)]
3232 pub subject: EmitEventSubject<'a>,
3333 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3434 #[serde(borrow)]
3535- pub subject_blob_cids: Option<Vec<jacquard_common::types::string::Cid<'a>>>,
3535+ pub subject_blob_cids: std::option::Option<
3636+ Vec<jacquard_common::types::string::Cid<'a>>,
3737+ >,
3638}
37393840pub mod emit_event_state {
···2121 pub error: jacquard_common::CowStr<'a>,
2222 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2323 #[serde(borrow)]
2424- pub error_code: Option<jacquard_common::CowStr<'a>>,
2424+ pub error_code: std::option::Option<jacquard_common::CowStr<'a>>,
2525 #[serde(borrow)]
2626 pub subject: jacquard_common::types::string::Did<'a>,
2727}
···574574 }),
575575 );
576576 map.insert(
577577+ ::jacquard_common::smol_str::SmolStr::new_static(
578578+ "emailContent",
579579+ ),
580580+ ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
581581+ description: Some(
582582+ ::jacquard_common::CowStr::new_static(
583583+ "Email content to be sent to the user upon takedown.",
584584+ ),
585585+ ),
586586+ format: None,
587587+ default: None,
588588+ min_length: None,
589589+ max_length: None,
590590+ min_graphemes: None,
591591+ max_graphemes: None,
592592+ r#enum: None,
593593+ r#const: None,
594594+ known_values: None,
595595+ }),
596596+ );
597597+ map.insert(
598598+ ::jacquard_common::smol_str::SmolStr::new_static(
599599+ "emailSubject",
600600+ ),
601601+ ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
602602+ description: Some(
603603+ ::jacquard_common::CowStr::new_static(
604604+ "Subject of the email to be sent to the user upon takedown.",
605605+ ),
606606+ ),
607607+ format: None,
608608+ default: None,
609609+ min_length: None,
610610+ max_length: None,
611611+ min_graphemes: None,
612612+ max_graphemes: None,
613613+ r#enum: None,
614614+ r#const: None,
615615+ known_values: None,
616616+ }),
617617+ );
618618+ map.insert(
577619 ::jacquard_common::smol_str::SmolStr::new_static("policies"),
578620 ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
579621 description: Some(
···597639 max_length: Some(5usize),
598640 }),
599641 );
642642+ map.insert(
643643+ ::jacquard_common::smol_str::SmolStr::new_static(
644644+ "severityLevel",
645645+ ),
646646+ ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
647647+ description: Some(
648648+ ::jacquard_common::CowStr::new_static(
649649+ "Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).",
650650+ ),
651651+ ),
652652+ format: None,
653653+ default: None,
654654+ min_length: None,
655655+ max_length: None,
656656+ min_graphemes: None,
657657+ max_graphemes: None,
658658+ r#enum: None,
659659+ r#const: None,
660660+ known_values: None,
661661+ }),
662662+ );
663663+ map.insert(
664664+ ::jacquard_common::smol_str::SmolStr::new_static(
665665+ "strikeCount",
666666+ ),
667667+ ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
668668+ description: None,
669669+ default: None,
670670+ minimum: None,
671671+ maximum: None,
672672+ r#enum: None,
673673+ r#const: None,
674674+ }),
675675+ );
676676+ map.insert(
677677+ ::jacquard_common::smol_str::SmolStr::new_static(
678678+ "strikeExpiresAt",
679679+ ),
680680+ ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
681681+ description: Some(
682682+ ::jacquard_common::CowStr::new_static(
683683+ "When the strike should expire. If not provided, the strike never expires.",
684684+ ),
685685+ ),
686686+ format: Some(
687687+ ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
688688+ ),
689689+ default: None,
690690+ min_length: None,
691691+ max_length: None,
692692+ min_graphemes: None,
693693+ max_graphemes: None,
694694+ r#enum: None,
695695+ r#const: None,
696696+ known_values: None,
697697+ }),
698698+ );
600699 map
601700 },
602701 }),
···642741 /// This will be propagated to the moderation event when it is applied
643742 #[serde(skip_serializing_if = "std::option::Option::is_none")]
644743 #[serde(borrow)]
645645- pub mod_tool: Option<crate::tools_ozone::moderation::ModTool<'a>>,
744744+ pub mod_tool: std::option::Option<crate::tools_ozone::moderation::ModTool<'a>>,
646745 #[serde(borrow)]
647746 pub scheduling: crate::tools_ozone::moderation::schedule_action::SchedulingConfig<
648747 'a,
···11981297 /// Indicates how long the takedown should be in effect before automatically expiring.
11991298 #[serde(skip_serializing_if = "std::option::Option::is_none")]
12001299 pub duration_in_hours: std::option::Option<i64>,
13001300+ /// Email content to be sent to the user upon takedown.
13011301+ #[serde(skip_serializing_if = "std::option::Option::is_none")]
13021302+ #[serde(borrow)]
13031303+ pub email_content: std::option::Option<jacquard_common::CowStr<'a>>,
13041304+ /// Subject of the email to be sent to the user upon takedown.
13051305+ #[serde(skip_serializing_if = "std::option::Option::is_none")]
13061306+ #[serde(borrow)]
13071307+ pub email_subject: std::option::Option<jacquard_common::CowStr<'a>>,
12011308 /// Names/Keywords of the policies that drove the decision.
12021309 #[serde(skip_serializing_if = "std::option::Option::is_none")]
12031310 #[serde(borrow)]
12041311 pub policies: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
13121312+ /// Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).
13131313+ #[serde(skip_serializing_if = "std::option::Option::is_none")]
13141314+ #[serde(borrow)]
13151315+ pub severity_level: std::option::Option<jacquard_common::CowStr<'a>>,
13161316+ /// Number of strikes to assign to the user when takedown is applied.
13171317+ #[serde(skip_serializing_if = "std::option::Option::is_none")]
13181318+ pub strike_count: std::option::Option<i64>,
13191319+ /// When the strike should expire. If not provided, the strike never expires.
13201320+ #[serde(skip_serializing_if = "std::option::Option::is_none")]
13211321+ pub strike_expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
12051322}
1206132312071324impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Takedown<'a> {
+2-2
crates/weaver-api/src/tools_ozone/safelink.rs
···110110 /// Optional comment about the decision
111111 #[serde(skip_serializing_if = "std::option::Option::is_none")]
112112 #[serde(borrow)]
113113- pub comment: Option<jacquard_common::CowStr<'a>>,
113113+ pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
114114 pub created_at: jacquard_common::types::string::Datetime,
115115 /// DID of the user who created this rule
116116 #[serde(borrow)]
···12061206 /// Optional comment about the decision
12071207 #[serde(skip_serializing_if = "std::option::Option::is_none")]
12081208 #[serde(borrow)]
12091209- pub comment: Option<jacquard_common::CowStr<'a>>,
12091209+ pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
12101210 /// Timestamp when the rule was created
12111211 pub created_at: jacquard_common::types::string::Datetime,
12121212 /// DID of the user added the rule.
···2020 /// Optional comment about why the rule is being removed
2121 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2222 #[serde(borrow)]
2323- pub comment: Option<jacquard_common::CowStr<'a>>,
2323+ pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
2424 /// Optional DID of the user. Only respected when using admin auth.
2525 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2626 #[serde(borrow)]
2727- pub created_by: Option<jacquard_common::types::string::Did<'a>>,
2727+ pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>,
2828 #[serde(borrow)]
2929 pub pattern: crate::tools_ozone::safelink::PatternType<'a>,
3030 /// The URL or domain to remove the rule for
···618618pub struct VerificationInput<'a> {
619619 /// Timestamp for verification record. Defaults to current time when not specified.
620620 #[serde(skip_serializing_if = "std::option::Option::is_none")]
621621- pub created_at: Option<jacquard_common::types::string::Datetime>,
621621+ pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
622622 /// Display name of the subject the verification applies to at the moment of verifying.
623623 #[serde(borrow)]
624624 pub display_name: jacquard_common::CowStr<'a>,
···2020 /// Reason for revoking the verification. This is optional and can be omitted if not needed.
2121 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2222 #[serde(borrow)]
2323- pub revoke_reason: Option<jacquard_common::CowStr<'a>>,
2323+ pub revoke_reason: std::option::Option<jacquard_common::CowStr<'a>>,
2424 /// Array of verification record uris to revoke
2525 #[serde(borrow)]
2626 pub uris: Vec<jacquard_common::types::string::AtUri<'a>>,
···7788mod entry;
99#[allow(unused_imports)]
1010-pub use entry::{Entry, EntryCard, EntryMarkdown};
1010+pub use entry::{Entry, EntryCard, EntryMarkdown, EntryPage};
11111212pub mod identity;
1313#[allow(unused_imports)]
···2121pub use notebook_cover::NotebookCover;
22222323pub mod login;
2424+2525+pub mod record_editor;
2626+pub mod record_view;
24272528use dioxus::prelude::*;
2629···121124 .with_hash_suffix(false)
122125 .into_asset_options()
123126);
124124-pub mod input;
125125-pub mod dialog;
126126-pub mod button;
127127pub mod accordion;
128128+pub mod button;
129129+pub mod dialog;
130130+pub mod input;