Lexicons and codegen rust types

+18867 -199
+6
.gitmodules
··· 1 + [submodule "atproto"] 2 + path = atproto 3 + url = https://github.com/bluesky-social/atproto 4 + [submodule "tangled/core"] 5 + path = tangled/core 6 + url = https://tangled.sh/@tangled.sh/core
+8
Cargo.lock
··· 3440 3440 name = "weaver-workspace-hack" 3441 3441 version = "0.1.0" 3442 3442 dependencies = [ 3443 + "data-encoding", 3444 + "futures-channel", 3445 + "futures-core", 3446 + "idna", 3447 + "memchr", 3448 + "percent-encoding", 3443 3449 "proc-macro2", 3444 3450 "quote", 3451 + "scopeguard", 3445 3452 "smallvec", 3446 3453 "syn", 3447 3454 "tokio", 3455 + "tracing", 3448 3456 ] 3449 3457 3450 3458 [[package]]
+5 -3
Cargo.toml
··· 6 6 # rebuilt if the other package's sources change. 7 7 members = ["crates/*"] 8 8 9 - default-members = ["crates/weaver-cli"] 9 + #default-members = ["crates/weaver-cli"] 10 10 11 11 12 12 [workspace.package] ··· 35 35 jane-eyre = "0.6.12" 36 36 n0-future = "=0.1.2" 37 37 tracing = { version = "0.1.41", default-features = false, features = ["std"] } 38 - lexicon_cid = { package = "cid", version = "0.10.1", features = ["serde-codec"] } 39 - markdown-weaver = { git = "https://github.com/rsform/markdown-weaver"} 38 + lexicon_cid = { package = "cid", version = "0.10.1", features = [ 39 + "serde-codec", 40 + ] } 41 + markdown-weaver = { git = "https://github.com/rsform/markdown-weaver" } 40 42 41 43 esquema-codegen = { git = "https://github.com/fatfingers23/esquema.git", branch = "main" } 42 44 atrium-lex = { git = "https://github.com/sugyan/atrium.git", rev = "f162f815a04b5ecb0421b390d521c883c41d5f75" }
+11 -2
crates/weaver-common/Cargo.toml
··· 21 21 merde = { workspace = true, features = ["yaml"] } 22 22 serde = { workspace = true } 23 23 serde_json = { version = "1.0.140", features = ["preserve_order", "raw_value"] } 24 - serde_ipld_dagcbor = { version = "0.6.1" ,features = ["codec"]} 24 + serde_ipld_dagcbor = { version = "0.6.1", features = ["codec"] } 25 25 serde_cbor = "0.11.2" 26 26 27 - minijinja = { workspace = true, features = ["builtins", "debug", "deserialization", "macros", "multi_template", "adjacent_loop_items", "std_collections", "serde"]} 27 + minijinja = { workspace = true, features = [ 28 + "builtins", 29 + "debug", 30 + "deserialization", 31 + "macros", 32 + "multi_template", 33 + "adjacent_loop_items", 34 + "std_collections", 35 + "serde", 36 + ] } 28 37 29 38 30 39 miette = { workspace = true, features = ["fancy"] }
+2 -2
crates/weaver-common/src/error.rs
··· 127 127 let (line, col) = offset_to_line_col(self.err_location.offset(), &self.src); 128 128 let len = self.err_location.len(); 129 129 let location = 130 - SourceSpan::new(SourceOffset::from_location(&src.inner(), line, col), len); 130 + SourceSpan::new(SourceOffset::from_location(src.inner(), line, col), len); 131 131 Self { 132 132 kind: self.kind, 133 133 src, ··· 173 173 fn from(err: serde_json::Error) -> Self { 174 174 let line = err.line(); 175 175 let column = err.column(); 176 - let location = SourceSpan::new(SourceOffset::from_location(&"", line, column), 0); 176 + let location = SourceSpan::new(SourceOffset::from_location("", line, column), 0); 177 177 Self { 178 178 kind: ParseErrorKind::SerdeError(SerDeError::SDJson(err)), 179 179 src: NamedSource::new(Cow::Borrowed("json"), Cow::Borrowed("")),
+3
crates/weaver-common/src/lexicons/app.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app` namespace. 3 + pub mod bsky;
+11
crates/weaver-common/src/lexicons/app/bsky.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky` namespace. 3 + pub mod actor; 4 + pub mod embed; 5 + pub mod feed; 6 + pub mod graph; 7 + pub mod labeler; 8 + pub mod notification; 9 + pub mod richtext; 10 + pub mod unspecced; 11 + pub mod video;
+12
crates/weaver-common/src/lexicons/app/bsky/actor.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor` namespace. 3 + pub mod defs; 4 + pub mod get_preferences; 5 + pub mod get_profile; 6 + pub mod get_profiles; 7 + pub mod get_suggestions; 8 + pub mod profile; 9 + pub mod put_preferences; 10 + pub mod search_actors; 11 + pub mod search_actors_typeahead; 12 + pub mod status;
+455
crates/weaver-common/src/lexicons/app/bsky/actor/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct AdultContentPrefData { 6 + pub enabled: bool, 7 + } 8 + pub type AdultContentPref = atrium_api::types::Object<AdultContentPrefData>; 9 + ///If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress. 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct BskyAppProgressGuideData { 13 + pub guide: String, 14 + } 15 + pub type BskyAppProgressGuide = atrium_api::types::Object<BskyAppProgressGuideData>; 16 + ///A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this. 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct BskyAppStatePrefData { 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub active_progress_guide: core::option::Option<BskyAppProgressGuide>, 22 + ///Storage for NUXs the user has encountered. 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub nuxs: core::option::Option<Vec<crate::app::bsky::actor::defs::Nux>>, 25 + ///An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user. 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub queued_nudges: core::option::Option<Vec<String>>, 28 + } 29 + pub type BskyAppStatePref = atrium_api::types::Object<BskyAppStatePrefData>; 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(rename_all = "camelCase")] 32 + pub struct ContentLabelPrefData { 33 + pub label: String, 34 + ///Which labeler does this preference apply to? If undefined, applies globally. 35 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 36 + pub labeler_did: core::option::Option<atrium_api::types::string::Did>, 37 + pub visibility: String, 38 + } 39 + pub type ContentLabelPref = atrium_api::types::Object<ContentLabelPrefData>; 40 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 + #[serde(rename_all = "camelCase")] 42 + pub struct FeedViewPrefData { 43 + ///The URI of the feed, or an identifier which describes the feed. 44 + pub feed: String, 45 + ///Hide quote posts in the feed. 46 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 47 + pub hide_quote_posts: core::option::Option<bool>, 48 + ///Hide replies in the feed. 49 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 50 + pub hide_replies: core::option::Option<bool>, 51 + ///Hide replies in the feed if they do not have this number of likes. 52 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 53 + pub hide_replies_by_like_count: core::option::Option<i64>, 54 + ///Hide replies in the feed if they are not by followed users. 55 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 56 + pub hide_replies_by_unfollowed: core::option::Option<bool>, 57 + ///Hide reposts in the feed. 58 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 59 + pub hide_reposts: core::option::Option<bool>, 60 + } 61 + pub type FeedViewPref = atrium_api::types::Object<FeedViewPrefData>; 62 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 63 + #[serde(rename_all = "camelCase")] 64 + pub struct HiddenPostsPrefData { 65 + ///A list of URIs of posts the account owner has hidden. 66 + pub items: Vec<String>, 67 + } 68 + pub type HiddenPostsPref = atrium_api::types::Object<HiddenPostsPrefData>; 69 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 70 + #[serde(rename_all = "camelCase")] 71 + pub struct InterestsPrefData { 72 + ///A list of tags which describe the account owner's interests gathered during onboarding. 73 + pub tags: Vec<String>, 74 + } 75 + pub type InterestsPref = atrium_api::types::Object<InterestsPrefData>; 76 + ///The subject's followers whom you also follow 77 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 78 + #[serde(rename_all = "camelCase")] 79 + pub struct KnownFollowersData { 80 + pub count: i64, 81 + pub followers: Vec<ProfileViewBasic>, 82 + } 83 + pub type KnownFollowers = atrium_api::types::Object<KnownFollowersData>; 84 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 85 + #[serde(rename_all = "camelCase")] 86 + pub struct LabelerPrefItemData { 87 + pub did: atrium_api::types::string::Did, 88 + } 89 + pub type LabelerPrefItem = atrium_api::types::Object<LabelerPrefItemData>; 90 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 91 + #[serde(rename_all = "camelCase")] 92 + pub struct LabelersPrefData { 93 + pub labelers: Vec<LabelerPrefItem>, 94 + } 95 + pub type LabelersPref = atrium_api::types::Object<LabelersPrefData>; 96 + ///A word that the account owner has muted. 97 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 98 + #[serde(rename_all = "camelCase")] 99 + pub struct MutedWordData { 100 + ///Groups of users to apply the muted word to. If undefined, applies to all users. 101 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 102 + pub actor_target: core::option::Option<String>, 103 + ///The date and time at which the muted word will expire and no longer be applied. 104 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 105 + pub expires_at: core::option::Option<atrium_api::types::string::Datetime>, 106 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 107 + pub id: core::option::Option<String>, 108 + ///The intended targets of the muted word. 109 + pub targets: Vec<crate::app::bsky::actor::defs::MutedWordTarget>, 110 + ///The muted word itself. 111 + pub value: String, 112 + } 113 + pub type MutedWord = atrium_api::types::Object<MutedWordData>; 114 + pub type MutedWordTarget = String; 115 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 116 + #[serde(rename_all = "camelCase")] 117 + pub struct MutedWordsPrefData { 118 + ///A list of words the account owner has muted. 119 + pub items: Vec<crate::app::bsky::actor::defs::MutedWord>, 120 + } 121 + pub type MutedWordsPref = atrium_api::types::Object<MutedWordsPrefData>; 122 + ///A new user experiences (NUX) storage object 123 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 124 + #[serde(rename_all = "camelCase")] 125 + pub struct NuxData { 126 + pub completed: bool, 127 + ///Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters. 128 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 129 + pub data: core::option::Option<String>, 130 + ///The date and time at which the NUX will expire and should be considered completed. 131 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 132 + pub expires_at: core::option::Option<atrium_api::types::string::Datetime>, 133 + pub id: String, 134 + } 135 + pub type Nux = atrium_api::types::Object<NuxData>; 136 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 137 + #[serde(rename_all = "camelCase")] 138 + pub struct PersonalDetailsPrefData { 139 + ///The birth date of account owner. 140 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 141 + pub birth_date: core::option::Option<atrium_api::types::string::Datetime>, 142 + } 143 + pub type PersonalDetailsPref = atrium_api::types::Object<PersonalDetailsPrefData>; 144 + ///Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly. 145 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 146 + #[serde(rename_all = "camelCase")] 147 + pub struct PostInteractionSettingsPrefData { 148 + ///Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed. 149 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 150 + pub postgate_embedding_rules: core::option::Option< 151 + Vec< 152 + atrium_api::types::Union< 153 + PostInteractionSettingsPrefPostgateEmbeddingRulesItem, 154 + >, 155 + >, 156 + >, 157 + ///Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply. 158 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 159 + pub threadgate_allow_rules: core::option::Option< 160 + Vec< 161 + atrium_api::types::Union<PostInteractionSettingsPrefThreadgateAllowRulesItem>, 162 + >, 163 + >, 164 + } 165 + pub type PostInteractionSettingsPref = atrium_api::types::Object< 166 + PostInteractionSettingsPrefData, 167 + >; 168 + pub type Preferences = Vec<atrium_api::types::Union<PreferencesItem>>; 169 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 170 + #[serde(rename_all = "camelCase")] 171 + pub struct ProfileAssociatedData { 172 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 173 + pub chat: core::option::Option<ProfileAssociatedChat>, 174 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 175 + pub feedgens: core::option::Option<i64>, 176 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 177 + pub labeler: core::option::Option<bool>, 178 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 179 + pub lists: core::option::Option<i64>, 180 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 181 + pub starter_packs: core::option::Option<i64>, 182 + } 183 + pub type ProfileAssociated = atrium_api::types::Object<ProfileAssociatedData>; 184 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 185 + #[serde(rename_all = "camelCase")] 186 + pub struct ProfileAssociatedChatData { 187 + pub allow_incoming: String, 188 + } 189 + pub type ProfileAssociatedChat = atrium_api::types::Object<ProfileAssociatedChatData>; 190 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 191 + #[serde(rename_all = "camelCase")] 192 + pub struct ProfileViewData { 193 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 194 + pub associated: core::option::Option<ProfileAssociated>, 195 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 196 + pub avatar: core::option::Option<String>, 197 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 198 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 199 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 200 + pub description: core::option::Option<String>, 201 + pub did: atrium_api::types::string::Did, 202 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 203 + pub display_name: core::option::Option<String>, 204 + pub handle: atrium_api::types::string::Handle, 205 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 206 + pub indexed_at: core::option::Option<atrium_api::types::string::Datetime>, 207 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 208 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 209 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 210 + pub status: core::option::Option<StatusView>, 211 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 212 + pub verification: core::option::Option<VerificationState>, 213 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 214 + pub viewer: core::option::Option<ViewerState>, 215 + } 216 + pub type ProfileView = atrium_api::types::Object<ProfileViewData>; 217 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 218 + #[serde(rename_all = "camelCase")] 219 + pub struct ProfileViewBasicData { 220 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 221 + pub associated: core::option::Option<ProfileAssociated>, 222 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 223 + pub avatar: core::option::Option<String>, 224 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 225 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 226 + pub did: atrium_api::types::string::Did, 227 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 228 + pub display_name: core::option::Option<String>, 229 + pub handle: atrium_api::types::string::Handle, 230 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 231 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 232 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 233 + pub status: core::option::Option<StatusView>, 234 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 235 + pub verification: core::option::Option<VerificationState>, 236 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 237 + pub viewer: core::option::Option<ViewerState>, 238 + } 239 + pub type ProfileViewBasic = atrium_api::types::Object<ProfileViewBasicData>; 240 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 241 + #[serde(rename_all = "camelCase")] 242 + pub struct ProfileViewDetailedData { 243 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 244 + pub associated: core::option::Option<ProfileAssociated>, 245 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 246 + pub avatar: core::option::Option<String>, 247 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 248 + pub banner: core::option::Option<String>, 249 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 250 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 251 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 252 + pub description: core::option::Option<String>, 253 + pub did: atrium_api::types::string::Did, 254 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 255 + pub display_name: core::option::Option<String>, 256 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 257 + pub followers_count: core::option::Option<i64>, 258 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 259 + pub follows_count: core::option::Option<i64>, 260 + pub handle: atrium_api::types::string::Handle, 261 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 262 + pub indexed_at: core::option::Option<atrium_api::types::string::Datetime>, 263 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 264 + pub joined_via_starter_pack: core::option::Option< 265 + crate::app::bsky::graph::defs::StarterPackViewBasic, 266 + >, 267 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 268 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 269 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 270 + pub pinned_post: core::option::Option<crate::com::atproto::repo::strong_ref::Main>, 271 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 272 + pub posts_count: core::option::Option<i64>, 273 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 274 + pub status: core::option::Option<StatusView>, 275 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 276 + pub verification: core::option::Option<VerificationState>, 277 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 278 + pub viewer: core::option::Option<ViewerState>, 279 + } 280 + pub type ProfileViewDetailed = atrium_api::types::Object<ProfileViewDetailedData>; 281 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 282 + #[serde(rename_all = "camelCase")] 283 + pub struct SavedFeedData { 284 + pub id: String, 285 + pub pinned: bool, 286 + pub r#type: String, 287 + pub value: String, 288 + } 289 + pub type SavedFeed = atrium_api::types::Object<SavedFeedData>; 290 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 291 + #[serde(rename_all = "camelCase")] 292 + pub struct SavedFeedsPrefData { 293 + pub pinned: Vec<String>, 294 + pub saved: Vec<String>, 295 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 296 + pub timeline_index: core::option::Option<i64>, 297 + } 298 + pub type SavedFeedsPref = atrium_api::types::Object<SavedFeedsPrefData>; 299 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 300 + #[serde(rename_all = "camelCase")] 301 + pub struct SavedFeedsPrefV2Data { 302 + pub items: Vec<crate::app::bsky::actor::defs::SavedFeed>, 303 + } 304 + pub type SavedFeedsPrefV2 = atrium_api::types::Object<SavedFeedsPrefV2Data>; 305 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 306 + #[serde(rename_all = "camelCase")] 307 + pub struct StatusViewData { 308 + ///An optional embed associated with the status. 309 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 310 + pub embed: core::option::Option<atrium_api::types::Union<StatusViewEmbedRefs>>, 311 + ///The date when this status will expire. The application might choose to no longer return the status after expiration. 312 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 313 + pub expires_at: core::option::Option<atrium_api::types::string::Datetime>, 314 + ///True if the status is not expired, false if it is expired. Only present if expiration was set. 315 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 316 + pub is_active: core::option::Option<bool>, 317 + pub record: atrium_api::types::Unknown, 318 + ///The status for the account. 319 + pub status: String, 320 + } 321 + pub type StatusView = atrium_api::types::Object<StatusViewData>; 322 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 323 + #[serde(rename_all = "camelCase")] 324 + pub struct ThreadViewPrefData { 325 + ///Show followed users at the top of all replies. 326 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 327 + pub prioritize_followed_users: core::option::Option<bool>, 328 + ///Sorting mode for threads. 329 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 330 + pub sort: core::option::Option<String>, 331 + } 332 + pub type ThreadViewPref = atrium_api::types::Object<ThreadViewPrefData>; 333 + ///Preferences for how verified accounts appear in the app. 334 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 335 + #[serde(rename_all = "camelCase")] 336 + pub struct VerificationPrefsData { 337 + ///Hide the blue check badges for verified accounts and trusted verifiers. 338 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 339 + pub hide_badges: core::option::Option<bool>, 340 + } 341 + pub type VerificationPrefs = atrium_api::types::Object<VerificationPrefsData>; 342 + ///Represents the verification information about the user this object is attached to. 343 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 344 + #[serde(rename_all = "camelCase")] 345 + pub struct VerificationStateData { 346 + ///The user's status as a trusted verifier. 347 + pub trusted_verifier_status: String, 348 + ///All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included. 349 + pub verifications: Vec<VerificationView>, 350 + ///The user's status as a verified account. 351 + pub verified_status: String, 352 + } 353 + pub type VerificationState = atrium_api::types::Object<VerificationStateData>; 354 + ///An individual verification for an associated subject. 355 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 356 + #[serde(rename_all = "camelCase")] 357 + pub struct VerificationViewData { 358 + ///Timestamp when the verification was created. 359 + pub created_at: atrium_api::types::string::Datetime, 360 + ///True if the verification passes validation, otherwise false. 361 + pub is_valid: bool, 362 + ///The user who issued this verification. 363 + pub issuer: atrium_api::types::string::Did, 364 + ///The AT-URI of the verification record. 365 + pub uri: String, 366 + } 367 + pub type VerificationView = atrium_api::types::Object<VerificationViewData>; 368 + ///Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests. 369 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 370 + #[serde(rename_all = "camelCase")] 371 + pub struct ViewerStateData { 372 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 373 + pub blocked_by: core::option::Option<bool>, 374 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 375 + pub blocking: core::option::Option<String>, 376 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 377 + pub blocking_by_list: core::option::Option< 378 + crate::app::bsky::graph::defs::ListViewBasic, 379 + >, 380 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 381 + pub followed_by: core::option::Option<String>, 382 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 383 + pub following: core::option::Option<String>, 384 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 385 + pub known_followers: core::option::Option<KnownFollowers>, 386 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 387 + pub muted: core::option::Option<bool>, 388 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 389 + pub muted_by_list: core::option::Option< 390 + crate::app::bsky::graph::defs::ListViewBasic, 391 + >, 392 + } 393 + pub type ViewerState = atrium_api::types::Object<ViewerStateData>; 394 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 395 + #[serde(tag = "$type")] 396 + pub enum PostInteractionSettingsPrefPostgateEmbeddingRulesItem { 397 + #[serde(rename = "app.bsky.feed.postgate#disableRule")] 398 + AppBskyFeedPostgateDisableRule(Box<crate::app::bsky::feed::postgate::DisableRule>), 399 + } 400 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 401 + #[serde(tag = "$type")] 402 + pub enum PostInteractionSettingsPrefThreadgateAllowRulesItem { 403 + #[serde(rename = "app.bsky.feed.threadgate#mentionRule")] 404 + AppBskyFeedThreadgateMentionRule( 405 + Box<crate::app::bsky::feed::threadgate::MentionRule>, 406 + ), 407 + #[serde(rename = "app.bsky.feed.threadgate#followerRule")] 408 + AppBskyFeedThreadgateFollowerRule( 409 + Box<crate::app::bsky::feed::threadgate::FollowerRule>, 410 + ), 411 + #[serde(rename = "app.bsky.feed.threadgate#followingRule")] 412 + AppBskyFeedThreadgateFollowingRule( 413 + Box<crate::app::bsky::feed::threadgate::FollowingRule>, 414 + ), 415 + #[serde(rename = "app.bsky.feed.threadgate#listRule")] 416 + AppBskyFeedThreadgateListRule(Box<crate::app::bsky::feed::threadgate::ListRule>), 417 + } 418 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 419 + #[serde(tag = "$type")] 420 + pub enum PreferencesItem { 421 + #[serde(rename = "app.bsky.actor.defs#adultContentPref")] 422 + AdultContentPref(Box<AdultContentPref>), 423 + #[serde(rename = "app.bsky.actor.defs#contentLabelPref")] 424 + ContentLabelPref(Box<ContentLabelPref>), 425 + #[serde(rename = "app.bsky.actor.defs#savedFeedsPref")] 426 + SavedFeedsPref(Box<SavedFeedsPref>), 427 + #[serde(rename = "app.bsky.actor.defs#savedFeedsPrefV2")] 428 + SavedFeedsPrefV2(Box<SavedFeedsPrefV2>), 429 + #[serde(rename = "app.bsky.actor.defs#personalDetailsPref")] 430 + PersonalDetailsPref(Box<PersonalDetailsPref>), 431 + #[serde(rename = "app.bsky.actor.defs#feedViewPref")] 432 + FeedViewPref(Box<FeedViewPref>), 433 + #[serde(rename = "app.bsky.actor.defs#threadViewPref")] 434 + ThreadViewPref(Box<ThreadViewPref>), 435 + #[serde(rename = "app.bsky.actor.defs#interestsPref")] 436 + InterestsPref(Box<InterestsPref>), 437 + #[serde(rename = "app.bsky.actor.defs#mutedWordsPref")] 438 + MutedWordsPref(Box<MutedWordsPref>), 439 + #[serde(rename = "app.bsky.actor.defs#hiddenPostsPref")] 440 + HiddenPostsPref(Box<HiddenPostsPref>), 441 + #[serde(rename = "app.bsky.actor.defs#bskyAppStatePref")] 442 + BskyAppStatePref(Box<BskyAppStatePref>), 443 + #[serde(rename = "app.bsky.actor.defs#labelersPref")] 444 + LabelersPref(Box<LabelersPref>), 445 + #[serde(rename = "app.bsky.actor.defs#postInteractionSettingsPref")] 446 + PostInteractionSettingsPref(Box<PostInteractionSettingsPref>), 447 + #[serde(rename = "app.bsky.actor.defs#verificationPrefs")] 448 + VerificationPrefs(Box<VerificationPrefs>), 449 + } 450 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 451 + #[serde(tag = "$type")] 452 + pub enum StatusViewEmbedRefs { 453 + #[serde(rename = "app.bsky.embed.external#view")] 454 + AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>), 455 + }
+21
crates/weaver-common/src/lexicons/app/bsky/actor/get_preferences.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.getPreferences` namespace. 3 + pub const NSID: &str = "app.bsky.actor.getPreferences"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData {} 7 + pub type Parameters = atrium_api::types::Object<ParametersData>; 8 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 + #[serde(rename_all = "camelCase")] 10 + pub struct OutputData { 11 + pub preferences: crate::app::bsky::actor::defs::Preferences, 12 + } 13 + pub type Output = atrium_api::types::Object<OutputData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(tag = "error", content = "message")] 16 + pub enum Error {} 17 + impl std::fmt::Display for Error { 18 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 19 + Ok(()) 20 + } 21 + }
+19
crates/weaver-common/src/lexicons/app/bsky/actor/get_profile.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.getProfile` namespace. 3 + pub const NSID: &str = "app.bsky.actor.getProfile"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Handle or DID of account to fetch profile of. 8 + pub actor: atrium_api::types::string::AtIdentifier, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + pub type Output = crate::app::bsky::actor::defs::ProfileViewDetailed; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error {} 15 + impl std::fmt::Display for Error { 16 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 17 + Ok(()) 18 + } 19 + }
+23
crates/weaver-common/src/lexicons/app/bsky/actor/get_profiles.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.getProfiles` namespace. 3 + pub const NSID: &str = "app.bsky.actor.getProfiles"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actors: Vec<atrium_api::types::string::AtIdentifier>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub profiles: Vec<crate::app::bsky::actor::defs::ProfileViewDetailed>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+31
crates/weaver-common/src/lexicons/app/bsky/actor/get_suggestions.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.getSuggestions` namespace. 3 + pub const NSID: &str = "app.bsky.actor.getSuggestions"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + pub actors: Vec<crate::app::bsky::actor::defs::ProfileView>, 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + ///Snowflake for this recommendation, use when submitting recommendation events. 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub rec_id: core::option::Option<i64>, 22 + } 23 + pub type Output = atrium_api::types::Object<OutputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "error", content = "message")] 26 + pub enum Error {} 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + Ok(()) 30 + } 31 + }
+41
crates/weaver-common/src/lexicons/app/bsky/actor/profile.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.profile` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///Small image to be displayed next to posts from account. AKA, 'profile picture' 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub avatar: core::option::Option<atrium_api::types::BlobRef>, 10 + ///Larger horizontal image to display behind profile view. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub banner: core::option::Option<atrium_api::types::BlobRef>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 15 + ///Free-form profile description text. 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub description: core::option::Option<String>, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub display_name: core::option::Option<String>, 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub joined_via_starter_pack: core::option::Option< 22 + crate::com::atproto::repo::strong_ref::Main, 23 + >, 24 + ///Self-label values, specific to the Bluesky application, on the overall account. 25 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 26 + pub labels: core::option::Option<atrium_api::types::Union<RecordLabelsRefs>>, 27 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 28 + pub pinned_post: core::option::Option<crate::com::atproto::repo::strong_ref::Main>, 29 + } 30 + pub type Record = atrium_api::types::Object<RecordData>; 31 + impl From<atrium_api::types::Unknown> for RecordData { 32 + fn from(value: atrium_api::types::Unknown) -> Self { 33 + Self::try_from_unknown(value).unwrap() 34 + } 35 + } 36 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 37 + #[serde(tag = "$type")] 38 + pub enum RecordLabelsRefs { 39 + #[serde(rename = "com.atproto.label.defs#selfLabels")] 40 + ComAtprotoLabelDefsSelfLabels(Box<crate::com::atproto::label::defs::SelfLabels>), 41 + }
+17
crates/weaver-common/src/lexicons/app/bsky/actor/put_preferences.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.putPreferences` namespace. 3 + pub const NSID: &str = "app.bsky.actor.putPreferences"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub preferences: crate::app::bsky::actor::defs::Preferences, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+34
crates/weaver-common/src/lexicons/app/bsky/actor/search_actors.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.searchActors` namespace. 3 + pub const NSID: &str = "app.bsky.actor.searchActors"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + ///Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub q: core::option::Option<String>, 14 + ///DEPRECATED: use 'q' instead. 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub term: core::option::Option<String>, 17 + } 18 + pub type Parameters = atrium_api::types::Object<ParametersData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(rename_all = "camelCase")] 21 + pub struct OutputData { 22 + pub actors: Vec<crate::app::bsky::actor::defs::ProfileView>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub cursor: core::option::Option<String>, 25 + } 26 + pub type Output = atrium_api::types::Object<OutputData>; 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(tag = "error", content = "message")] 29 + pub enum Error {} 30 + impl std::fmt::Display for Error { 31 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 32 + Ok(()) 33 + } 34 + }
+30
crates/weaver-common/src/lexicons/app/bsky/actor/search_actors_typeahead.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.searchActorsTypeahead` namespace. 3 + pub const NSID: &str = "app.bsky.actor.searchActorsTypeahead"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 9 + ///Search query prefix; not a full query string. 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub q: core::option::Option<String>, 12 + ///DEPRECATED: use 'q' instead. 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub term: core::option::Option<String>, 15 + } 16 + pub type Parameters = atrium_api::types::Object<ParametersData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct OutputData { 20 + pub actors: Vec<crate::app::bsky::actor::defs::ProfileViewBasic>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+30
crates/weaver-common/src/lexicons/app/bsky/actor/status.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.actor.status` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + ///The duration of the status in minutes. Applications can choose to impose minimum and maximum limits. 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub duration_minutes: core::option::Option<core::num::NonZeroU64>, 11 + ///An optional embed associated with the status. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub embed: core::option::Option<atrium_api::types::Union<RecordEmbedRefs>>, 14 + ///The status for the account. 15 + pub status: String, 16 + } 17 + pub type Record = atrium_api::types::Object<RecordData>; 18 + impl From<atrium_api::types::Unknown> for RecordData { 19 + fn from(value: atrium_api::types::Unknown) -> Self { 20 + Self::try_from_unknown(value).unwrap() 21 + } 22 + } 23 + ///Advertises an account as currently offering live content. 24 + pub const LIVE: &str = "app.bsky.actor.status#live"; 25 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 + #[serde(tag = "$type")] 27 + pub enum RecordEmbedRefs { 28 + #[serde(rename = "app.bsky.embed.external")] 29 + AppBskyEmbedExternalMain(Box<crate::app::bsky::embed::external::Main>), 30 + }
+8
crates/weaver-common/src/lexicons/app/bsky/embed.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.embed` namespace. 3 + pub mod defs; 4 + pub mod external; 5 + pub mod images; 6 + pub mod record; 7 + pub mod record_with_media; 8 + pub mod video;
+10
crates/weaver-common/src/lexicons/app/bsky/embed/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.embed.defs` namespace. 3 + ///width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct AspectRatioData { 7 + pub height: core::num::NonZeroU64, 8 + pub width: core::num::NonZeroU64, 9 + } 10 + pub type AspectRatio = atrium_api::types::Object<AspectRatioData>;
+35
crates/weaver-common/src/lexicons/app/bsky/embed/external.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.embed.external` namespace. 3 + ///A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post). 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub external: External, 8 + } 9 + pub type Main = atrium_api::types::Object<MainData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct ExternalData { 13 + pub description: String, 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub thumb: core::option::Option<atrium_api::types::BlobRef>, 16 + pub title: String, 17 + pub uri: String, 18 + } 19 + pub type External = atrium_api::types::Object<ExternalData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(rename_all = "camelCase")] 22 + pub struct ViewData { 23 + pub external: ViewExternal, 24 + } 25 + pub type View = atrium_api::types::Object<ViewData>; 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(rename_all = "camelCase")] 28 + pub struct ViewExternalData { 29 + pub description: String, 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub thumb: core::option::Option<String>, 32 + pub title: String, 33 + pub uri: String, 34 + } 35 + pub type ViewExternal = atrium_api::types::Object<ViewExternalData>;
+38
crates/weaver-common/src/lexicons/app/bsky/embed/images.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.embed.images` namespace. 3 + //!A set of images embedded in a Bluesky record (eg, a post). 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub images: Vec<Image>, 8 + } 9 + pub type Main = atrium_api::types::Object<MainData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct ImageData { 13 + ///Alt text description of the image, for accessibility. 14 + pub alt: String, 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub aspect_ratio: core::option::Option<crate::app::bsky::embed::defs::AspectRatio>, 17 + pub image: atrium_api::types::BlobRef, 18 + } 19 + pub type Image = atrium_api::types::Object<ImageData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(rename_all = "camelCase")] 22 + pub struct ViewData { 23 + pub images: Vec<ViewImage>, 24 + } 25 + pub type View = atrium_api::types::Object<ViewData>; 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(rename_all = "camelCase")] 28 + pub struct ViewImageData { 29 + ///Alt text description of the image, for accessibility. 30 + pub alt: String, 31 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 32 + pub aspect_ratio: core::option::Option<crate::app::bsky::embed::defs::AspectRatio>, 33 + ///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. 34 + pub fullsize: String, 35 + ///Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View. 36 + pub thumb: String, 37 + } 38 + pub type ViewImage = atrium_api::types::Object<ViewImageData>;
+100
crates/weaver-common/src/lexicons/app/bsky/embed/record.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.embed.record` namespace. 3 + //!A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub record: crate::com::atproto::repo::strong_ref::Main, 8 + } 9 + pub type Main = atrium_api::types::Object<MainData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct ViewData { 13 + pub record: atrium_api::types::Union<ViewRecordRefs>, 14 + } 15 + pub type View = atrium_api::types::Object<ViewData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(rename_all = "camelCase")] 18 + pub struct ViewBlockedData { 19 + pub author: crate::app::bsky::feed::defs::BlockedAuthor, 20 + pub blocked: bool, 21 + pub uri: String, 22 + } 23 + pub type ViewBlocked = atrium_api::types::Object<ViewBlockedData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(rename_all = "camelCase")] 26 + pub struct ViewDetachedData { 27 + pub detached: bool, 28 + pub uri: String, 29 + } 30 + pub type ViewDetached = atrium_api::types::Object<ViewDetachedData>; 31 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 32 + #[serde(rename_all = "camelCase")] 33 + pub struct ViewNotFoundData { 34 + pub not_found: bool, 35 + pub uri: String, 36 + } 37 + pub type ViewNotFound = atrium_api::types::Object<ViewNotFoundData>; 38 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 39 + #[serde(rename_all = "camelCase")] 40 + pub struct ViewRecordData { 41 + pub author: crate::app::bsky::actor::defs::ProfileViewBasic, 42 + pub cid: atrium_api::types::string::Cid, 43 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 44 + pub embeds: core::option::Option< 45 + Vec<atrium_api::types::Union<ViewRecordEmbedsItem>>, 46 + >, 47 + pub indexed_at: atrium_api::types::string::Datetime, 48 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 49 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 50 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 51 + pub like_count: core::option::Option<i64>, 52 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 53 + pub quote_count: core::option::Option<i64>, 54 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 55 + pub reply_count: core::option::Option<i64>, 56 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 57 + pub repost_count: core::option::Option<i64>, 58 + pub uri: String, 59 + ///The record data itself. 60 + pub value: atrium_api::types::Unknown, 61 + } 62 + pub type ViewRecord = atrium_api::types::Object<ViewRecordData>; 63 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 64 + #[serde(tag = "$type")] 65 + pub enum ViewRecordEmbedsItem { 66 + #[serde(rename = "app.bsky.embed.images#view")] 67 + AppBskyEmbedImagesView(Box<crate::app::bsky::embed::images::View>), 68 + #[serde(rename = "app.bsky.embed.video#view")] 69 + AppBskyEmbedVideoView(Box<crate::app::bsky::embed::video::View>), 70 + #[serde(rename = "app.bsky.embed.external#view")] 71 + AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>), 72 + #[serde(rename = "app.bsky.embed.record#view")] 73 + AppBskyEmbedRecordView(Box<crate::app::bsky::embed::record::View>), 74 + #[serde(rename = "app.bsky.embed.recordWithMedia#view")] 75 + AppBskyEmbedRecordWithMediaView( 76 + Box<crate::app::bsky::embed::record_with_media::View>, 77 + ), 78 + } 79 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 80 + #[serde(tag = "$type")] 81 + pub enum ViewRecordRefs { 82 + #[serde(rename = "app.bsky.embed.record#viewRecord")] 83 + ViewRecord(Box<ViewRecord>), 84 + #[serde(rename = "app.bsky.embed.record#viewNotFound")] 85 + ViewNotFound(Box<ViewNotFound>), 86 + #[serde(rename = "app.bsky.embed.record#viewBlocked")] 87 + ViewBlocked(Box<ViewBlocked>), 88 + #[serde(rename = "app.bsky.embed.record#viewDetached")] 89 + ViewDetached(Box<ViewDetached>), 90 + #[serde(rename = "app.bsky.feed.defs#generatorView")] 91 + AppBskyFeedDefsGeneratorView(Box<crate::app::bsky::feed::defs::GeneratorView>), 92 + #[serde(rename = "app.bsky.graph.defs#listView")] 93 + AppBskyGraphDefsListView(Box<crate::app::bsky::graph::defs::ListView>), 94 + #[serde(rename = "app.bsky.labeler.defs#labelerView")] 95 + AppBskyLabelerDefsLabelerView(Box<crate::app::bsky::labeler::defs::LabelerView>), 96 + #[serde(rename = "app.bsky.graph.defs#starterPackViewBasic")] 97 + AppBskyGraphDefsStarterPackViewBasic( 98 + Box<crate::app::bsky::graph::defs::StarterPackViewBasic>, 99 + ), 100 + }
+37
crates/weaver-common/src/lexicons/app/bsky/embed/record_with_media.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.embed.recordWithMedia` namespace. 3 + //!A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub media: atrium_api::types::Union<MainMediaRefs>, 8 + pub record: crate::app::bsky::embed::record::Main, 9 + } 10 + pub type Main = atrium_api::types::Object<MainData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct ViewData { 14 + pub media: atrium_api::types::Union<ViewMediaRefs>, 15 + pub record: crate::app::bsky::embed::record::View, 16 + } 17 + pub type View = atrium_api::types::Object<ViewData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "$type")] 20 + pub enum MainMediaRefs { 21 + #[serde(rename = "app.bsky.embed.images")] 22 + AppBskyEmbedImagesMain(Box<crate::app::bsky::embed::images::Main>), 23 + #[serde(rename = "app.bsky.embed.video")] 24 + AppBskyEmbedVideoMain(Box<crate::app::bsky::embed::video::Main>), 25 + #[serde(rename = "app.bsky.embed.external")] 26 + AppBskyEmbedExternalMain(Box<crate::app::bsky::embed::external::Main>), 27 + } 28 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 29 + #[serde(tag = "$type")] 30 + pub enum ViewMediaRefs { 31 + #[serde(rename = "app.bsky.embed.images#view")] 32 + AppBskyEmbedImagesView(Box<crate::app::bsky::embed::images::View>), 33 + #[serde(rename = "app.bsky.embed.video#view")] 34 + AppBskyEmbedVideoView(Box<crate::app::bsky::embed::video::View>), 35 + #[serde(rename = "app.bsky.embed.external#view")] 36 + AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>), 37 + }
+37
crates/weaver-common/src/lexicons/app/bsky/embed/video.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.embed.video` namespace. 3 + //!A video embedded in a Bluesky record (eg, a post). 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + ///Alt text description of the video, for accessibility. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub alt: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub aspect_ratio: core::option::Option<crate::app::bsky::embed::defs::AspectRatio>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub captions: core::option::Option<Vec<Caption>>, 14 + ///The mp4 video file. May be up to 100mb, formerly limited to 50mb. 15 + pub video: atrium_api::types::BlobRef, 16 + } 17 + pub type Main = atrium_api::types::Object<MainData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct CaptionData { 21 + pub file: atrium_api::types::BlobRef, 22 + pub lang: atrium_api::types::string::Language, 23 + } 24 + pub type Caption = atrium_api::types::Object<CaptionData>; 25 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 + #[serde(rename_all = "camelCase")] 27 + pub struct ViewData { 28 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 29 + pub alt: core::option::Option<String>, 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub aspect_ratio: core::option::Option<crate::app::bsky::embed::defs::AspectRatio>, 32 + pub cid: atrium_api::types::string::Cid, 33 + pub playlist: String, 34 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 35 + pub thumbnail: core::option::Option<String>, 36 + } 37 + pub type View = atrium_api::types::Object<ViewData>;
+27
crates/weaver-common/src/lexicons/app/bsky/feed.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed` namespace. 3 + pub mod defs; 4 + pub mod describe_feed_generator; 5 + pub mod generator; 6 + pub mod get_actor_feeds; 7 + pub mod get_actor_likes; 8 + pub mod get_author_feed; 9 + pub mod get_feed; 10 + pub mod get_feed_generator; 11 + pub mod get_feed_generators; 12 + pub mod get_feed_skeleton; 13 + pub mod get_likes; 14 + pub mod get_list_feed; 15 + pub mod get_post_thread; 16 + pub mod get_posts; 17 + pub mod get_quotes; 18 + pub mod get_reposted_by; 19 + pub mod get_suggested_feeds; 20 + pub mod get_timeline; 21 + pub mod like; 22 + pub mod post; 23 + pub mod postgate; 24 + pub mod repost; 25 + pub mod search_posts; 26 + pub mod send_interactions; 27 + pub mod threadgate;
+311
crates/weaver-common/src/lexicons/app/bsky/feed/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct BlockedAuthorData { 6 + pub did: atrium_api::types::string::Did, 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub viewer: core::option::Option<crate::app::bsky::actor::defs::ViewerState>, 9 + } 10 + pub type BlockedAuthor = atrium_api::types::Object<BlockedAuthorData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct BlockedPostData { 14 + pub author: BlockedAuthor, 15 + pub blocked: bool, 16 + pub uri: String, 17 + } 18 + pub type BlockedPost = atrium_api::types::Object<BlockedPostData>; 19 + ///User clicked through to the author of the feed item 20 + pub const CLICKTHROUGH_AUTHOR: &str = "app.bsky.feed.defs#clickthroughAuthor"; 21 + ///User clicked through to the embedded content of the feed item 22 + pub const CLICKTHROUGH_EMBED: &str = "app.bsky.feed.defs#clickthroughEmbed"; 23 + ///User clicked through to the feed item 24 + pub const CLICKTHROUGH_ITEM: &str = "app.bsky.feed.defs#clickthroughItem"; 25 + ///User clicked through to the reposter of the feed item 26 + pub const CLICKTHROUGH_REPOSTER: &str = "app.bsky.feed.defs#clickthroughReposter"; 27 + ///Declares the feed generator returns any types of posts. 28 + pub const CONTENT_MODE_UNSPECIFIED: &str = "app.bsky.feed.defs#contentModeUnspecified"; 29 + ///Declares the feed generator returns posts containing app.bsky.embed.video embeds. 30 + pub const CONTENT_MODE_VIDEO: &str = "app.bsky.feed.defs#contentModeVideo"; 31 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 32 + #[serde(rename_all = "camelCase")] 33 + pub struct FeedViewPostData { 34 + ///Context provided by feed generator that may be passed back alongside interactions. 35 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 36 + pub feed_context: core::option::Option<String>, 37 + pub post: PostView, 38 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 39 + pub reason: core::option::Option<atrium_api::types::Union<FeedViewPostReasonRefs>>, 40 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 41 + pub reply: core::option::Option<ReplyRef>, 42 + } 43 + pub type FeedViewPost = atrium_api::types::Object<FeedViewPostData>; 44 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 45 + #[serde(rename_all = "camelCase")] 46 + pub struct GeneratorViewData { 47 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 48 + pub accepts_interactions: core::option::Option<bool>, 49 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 50 + pub avatar: core::option::Option<String>, 51 + pub cid: atrium_api::types::string::Cid, 52 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 53 + pub content_mode: core::option::Option<String>, 54 + pub creator: crate::app::bsky::actor::defs::ProfileView, 55 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 56 + pub description: core::option::Option<String>, 57 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 58 + pub description_facets: core::option::Option< 59 + Vec<crate::app::bsky::richtext::facet::Main>, 60 + >, 61 + pub did: atrium_api::types::string::Did, 62 + pub display_name: String, 63 + pub indexed_at: atrium_api::types::string::Datetime, 64 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 65 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 66 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 67 + pub like_count: core::option::Option<usize>, 68 + pub uri: String, 69 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 70 + pub viewer: core::option::Option<GeneratorViewerState>, 71 + } 72 + pub type GeneratorView = atrium_api::types::Object<GeneratorViewData>; 73 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 74 + #[serde(rename_all = "camelCase")] 75 + pub struct GeneratorViewerStateData { 76 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 77 + pub like: core::option::Option<String>, 78 + } 79 + pub type GeneratorViewerState = atrium_api::types::Object<GeneratorViewerStateData>; 80 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 81 + #[serde(rename_all = "camelCase")] 82 + pub struct InteractionData { 83 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 84 + pub event: core::option::Option<String>, 85 + ///Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. 86 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 87 + pub feed_context: core::option::Option<String>, 88 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 89 + pub item: core::option::Option<String>, 90 + } 91 + pub type Interaction = atrium_api::types::Object<InteractionData>; 92 + ///User liked the feed item 93 + pub const INTERACTION_LIKE: &str = "app.bsky.feed.defs#interactionLike"; 94 + ///User quoted the feed item 95 + pub const INTERACTION_QUOTE: &str = "app.bsky.feed.defs#interactionQuote"; 96 + ///User replied to the feed item 97 + pub const INTERACTION_REPLY: &str = "app.bsky.feed.defs#interactionReply"; 98 + ///User reposted the feed item 99 + pub const INTERACTION_REPOST: &str = "app.bsky.feed.defs#interactionRepost"; 100 + ///Feed item was seen by user 101 + pub const INTERACTION_SEEN: &str = "app.bsky.feed.defs#interactionSeen"; 102 + ///User shared the feed item 103 + pub const INTERACTION_SHARE: &str = "app.bsky.feed.defs#interactionShare"; 104 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 105 + #[serde(rename_all = "camelCase")] 106 + pub struct NotFoundPostData { 107 + pub not_found: bool, 108 + pub uri: String, 109 + } 110 + pub type NotFoundPost = atrium_api::types::Object<NotFoundPostData>; 111 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 112 + #[serde(rename_all = "camelCase")] 113 + pub struct PostViewData { 114 + pub author: crate::app::bsky::actor::defs::ProfileViewBasic, 115 + pub cid: atrium_api::types::string::Cid, 116 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 117 + pub embed: core::option::Option<atrium_api::types::Union<PostViewEmbedRefs>>, 118 + pub indexed_at: atrium_api::types::string::Datetime, 119 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 120 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 121 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 122 + pub like_count: core::option::Option<i64>, 123 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 124 + pub quote_count: core::option::Option<i64>, 125 + pub record: atrium_api::types::Unknown, 126 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 127 + pub reply_count: core::option::Option<i64>, 128 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 129 + pub repost_count: core::option::Option<i64>, 130 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 131 + pub threadgate: core::option::Option<ThreadgateView>, 132 + pub uri: String, 133 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 134 + pub viewer: core::option::Option<ViewerState>, 135 + } 136 + pub type PostView = atrium_api::types::Object<PostViewData>; 137 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 138 + #[serde(rename_all = "camelCase")] 139 + pub struct ReasonPinData {} 140 + pub type ReasonPin = atrium_api::types::Object<ReasonPinData>; 141 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 142 + #[serde(rename_all = "camelCase")] 143 + pub struct ReasonRepostData { 144 + pub by: crate::app::bsky::actor::defs::ProfileViewBasic, 145 + pub indexed_at: atrium_api::types::string::Datetime, 146 + } 147 + pub type ReasonRepost = atrium_api::types::Object<ReasonRepostData>; 148 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 149 + #[serde(rename_all = "camelCase")] 150 + pub struct ReplyRefData { 151 + ///When parent is a reply to another post, this is the author of that post. 152 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 153 + pub grandparent_author: core::option::Option< 154 + crate::app::bsky::actor::defs::ProfileViewBasic, 155 + >, 156 + pub parent: atrium_api::types::Union<ReplyRefParentRefs>, 157 + pub root: atrium_api::types::Union<ReplyRefRootRefs>, 158 + } 159 + pub type ReplyRef = atrium_api::types::Object<ReplyRefData>; 160 + ///Request that less content like the given feed item be shown in the feed 161 + pub const REQUEST_LESS: &str = "app.bsky.feed.defs#requestLess"; 162 + ///Request that more content like the given feed item be shown in the feed 163 + pub const REQUEST_MORE: &str = "app.bsky.feed.defs#requestMore"; 164 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 165 + #[serde(rename_all = "camelCase")] 166 + pub struct SkeletonFeedPostData { 167 + ///Context that will be passed through to client and may be passed to feed generator back alongside interactions. 168 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 169 + pub feed_context: core::option::Option<String>, 170 + pub post: String, 171 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 172 + pub reason: core::option::Option< 173 + atrium_api::types::Union<SkeletonFeedPostReasonRefs>, 174 + >, 175 + } 176 + pub type SkeletonFeedPost = atrium_api::types::Object<SkeletonFeedPostData>; 177 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 178 + #[serde(rename_all = "camelCase")] 179 + pub struct SkeletonReasonPinData {} 180 + pub type SkeletonReasonPin = atrium_api::types::Object<SkeletonReasonPinData>; 181 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 182 + #[serde(rename_all = "camelCase")] 183 + pub struct SkeletonReasonRepostData { 184 + pub repost: String, 185 + } 186 + pub type SkeletonReasonRepost = atrium_api::types::Object<SkeletonReasonRepostData>; 187 + ///Metadata about this post within the context of the thread it is in. 188 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 189 + #[serde(rename_all = "camelCase")] 190 + pub struct ThreadContextData { 191 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 192 + pub root_author_like: core::option::Option<String>, 193 + } 194 + pub type ThreadContext = atrium_api::types::Object<ThreadContextData>; 195 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 196 + #[serde(rename_all = "camelCase")] 197 + pub struct ThreadViewPostData { 198 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 199 + pub parent: core::option::Option<atrium_api::types::Union<ThreadViewPostParentRefs>>, 200 + pub post: PostView, 201 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 202 + pub replies: core::option::Option< 203 + Vec<atrium_api::types::Union<ThreadViewPostRepliesItem>>, 204 + >, 205 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 206 + pub thread_context: core::option::Option<ThreadContext>, 207 + } 208 + pub type ThreadViewPost = atrium_api::types::Object<ThreadViewPostData>; 209 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 210 + #[serde(rename_all = "camelCase")] 211 + pub struct ThreadgateViewData { 212 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 213 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 214 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 215 + pub lists: core::option::Option<Vec<crate::app::bsky::graph::defs::ListViewBasic>>, 216 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 217 + pub record: core::option::Option<atrium_api::types::Unknown>, 218 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 219 + pub uri: core::option::Option<String>, 220 + } 221 + pub type ThreadgateView = atrium_api::types::Object<ThreadgateViewData>; 222 + ///Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests. 223 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 224 + #[serde(rename_all = "camelCase")] 225 + pub struct ViewerStateData { 226 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 227 + pub embedding_disabled: core::option::Option<bool>, 228 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 229 + pub like: core::option::Option<String>, 230 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 231 + pub pinned: core::option::Option<bool>, 232 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 233 + pub reply_disabled: core::option::Option<bool>, 234 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 235 + pub repost: core::option::Option<String>, 236 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 237 + pub thread_muted: core::option::Option<bool>, 238 + } 239 + pub type ViewerState = atrium_api::types::Object<ViewerStateData>; 240 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 241 + #[serde(tag = "$type")] 242 + pub enum FeedViewPostReasonRefs { 243 + #[serde(rename = "app.bsky.feed.defs#reasonRepost")] 244 + ReasonRepost(Box<ReasonRepost>), 245 + #[serde(rename = "app.bsky.feed.defs#reasonPin")] 246 + ReasonPin(Box<ReasonPin>), 247 + } 248 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 249 + #[serde(tag = "$type")] 250 + pub enum PostViewEmbedRefs { 251 + #[serde(rename = "app.bsky.embed.images#view")] 252 + AppBskyEmbedImagesView(Box<crate::app::bsky::embed::images::View>), 253 + #[serde(rename = "app.bsky.embed.video#view")] 254 + AppBskyEmbedVideoView(Box<crate::app::bsky::embed::video::View>), 255 + #[serde(rename = "app.bsky.embed.external#view")] 256 + AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>), 257 + #[serde(rename = "app.bsky.embed.record#view")] 258 + AppBskyEmbedRecordView(Box<crate::app::bsky::embed::record::View>), 259 + #[serde(rename = "app.bsky.embed.recordWithMedia#view")] 260 + AppBskyEmbedRecordWithMediaView( 261 + Box<crate::app::bsky::embed::record_with_media::View>, 262 + ), 263 + } 264 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 265 + #[serde(tag = "$type")] 266 + pub enum ReplyRefParentRefs { 267 + #[serde(rename = "app.bsky.feed.defs#postView")] 268 + PostView(Box<PostView>), 269 + #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 270 + NotFoundPost(Box<NotFoundPost>), 271 + #[serde(rename = "app.bsky.feed.defs#blockedPost")] 272 + BlockedPost(Box<BlockedPost>), 273 + } 274 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 275 + #[serde(tag = "$type")] 276 + pub enum ReplyRefRootRefs { 277 + #[serde(rename = "app.bsky.feed.defs#postView")] 278 + PostView(Box<PostView>), 279 + #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 280 + NotFoundPost(Box<NotFoundPost>), 281 + #[serde(rename = "app.bsky.feed.defs#blockedPost")] 282 + BlockedPost(Box<BlockedPost>), 283 + } 284 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 285 + #[serde(tag = "$type")] 286 + pub enum SkeletonFeedPostReasonRefs { 287 + #[serde(rename = "app.bsky.feed.defs#skeletonReasonRepost")] 288 + SkeletonReasonRepost(Box<SkeletonReasonRepost>), 289 + #[serde(rename = "app.bsky.feed.defs#skeletonReasonPin")] 290 + SkeletonReasonPin(Box<SkeletonReasonPin>), 291 + } 292 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 293 + #[serde(tag = "$type")] 294 + pub enum ThreadViewPostParentRefs { 295 + #[serde(rename = "app.bsky.feed.defs#threadViewPost")] 296 + ThreadViewPost(Box<ThreadViewPost>), 297 + #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 298 + NotFoundPost(Box<NotFoundPost>), 299 + #[serde(rename = "app.bsky.feed.defs#blockedPost")] 300 + BlockedPost(Box<BlockedPost>), 301 + } 302 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 303 + #[serde(tag = "$type")] 304 + pub enum ThreadViewPostRepliesItem { 305 + #[serde(rename = "app.bsky.feed.defs#threadViewPost")] 306 + ThreadViewPost(Box<ThreadViewPost>), 307 + #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 308 + NotFoundPost(Box<NotFoundPost>), 309 + #[serde(rename = "app.bsky.feed.defs#blockedPost")] 310 + BlockedPost(Box<BlockedPost>), 311 + }
+35
crates/weaver-common/src/lexicons/app/bsky/feed/describe_feed_generator.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.describeFeedGenerator` namespace. 3 + pub const NSID: &str = "app.bsky.feed.describeFeedGenerator"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub did: atrium_api::types::string::Did, 8 + pub feeds: Vec<Feed>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub links: core::option::Option<Links>, 11 + } 12 + pub type Output = atrium_api::types::Object<OutputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error {} 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + Ok(()) 19 + } 20 + } 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(rename_all = "camelCase")] 23 + pub struct FeedData { 24 + pub uri: String, 25 + } 26 + pub type Feed = atrium_api::types::Object<FeedData>; 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(rename_all = "camelCase")] 29 + pub struct LinksData { 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub privacy_policy: core::option::Option<String>, 32 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 33 + pub terms_of_service: core::option::Option<String>, 34 + } 35 + pub type Links = atrium_api::types::Object<LinksData>;
+38
crates/weaver-common/src/lexicons/app/bsky/feed/generator.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.generator` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub accepts_interactions: core::option::Option<bool>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub avatar: core::option::Option<atrium_api::types::BlobRef>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub content_mode: core::option::Option<String>, 14 + pub created_at: atrium_api::types::string::Datetime, 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub description: core::option::Option<String>, 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub description_facets: core::option::Option< 19 + Vec<crate::app::bsky::richtext::facet::Main>, 20 + >, 21 + pub did: atrium_api::types::string::Did, 22 + pub display_name: String, 23 + ///Self-label values 24 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 25 + pub labels: core::option::Option<atrium_api::types::Union<RecordLabelsRefs>>, 26 + } 27 + pub type Record = atrium_api::types::Object<RecordData>; 28 + impl From<atrium_api::types::Unknown> for RecordData { 29 + fn from(value: atrium_api::types::Unknown) -> Self { 30 + Self::try_from_unknown(value).unwrap() 31 + } 32 + } 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(tag = "$type")] 35 + pub enum RecordLabelsRefs { 36 + #[serde(rename = "com.atproto.label.defs#selfLabels")] 37 + ComAtprotoLabelDefsSelfLabels(Box<crate::com::atproto::label::defs::SelfLabels>), 38 + }
+29
crates/weaver-common/src/lexicons/app/bsky/feed/get_actor_feeds.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getActorFeeds` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getActorFeeds"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub feeds: Vec<crate::app::bsky::feed::defs::GeneratorView>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + }
+46
crates/weaver-common/src/lexicons/app/bsky/feed/get_actor_likes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getActorLikes` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getActorLikes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub feed: Vec<crate::app::bsky::feed::defs::FeedViewPost>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error { 25 + BlockedActor(Option<String>), 26 + BlockedByActor(Option<String>), 27 + } 28 + impl std::fmt::Display for Error { 29 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 30 + match self { 31 + Error::BlockedActor(msg) => { 32 + write!(_f, "BlockedActor")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + Error::BlockedByActor(msg) => { 38 + write!(_f, "BlockedByActor")?; 39 + if let Some(msg) = msg { 40 + write!(_f, ": {msg}")?; 41 + } 42 + } 43 + } 44 + Ok(()) 45 + } 46 + }
+51
crates/weaver-common/src/lexicons/app/bsky/feed/get_author_feed.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getAuthorFeed` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getAuthorFeed"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + ///Combinations of post/repost types to include in response. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub filter: core::option::Option<String>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub include_pins: core::option::Option<bool>, 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 17 + } 18 + pub type Parameters = atrium_api::types::Object<ParametersData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(rename_all = "camelCase")] 21 + pub struct OutputData { 22 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 23 + pub cursor: core::option::Option<String>, 24 + pub feed: Vec<crate::app::bsky::feed::defs::FeedViewPost>, 25 + } 26 + pub type Output = atrium_api::types::Object<OutputData>; 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(tag = "error", content = "message")] 29 + pub enum Error { 30 + BlockedActor(Option<String>), 31 + BlockedByActor(Option<String>), 32 + } 33 + impl std::fmt::Display for Error { 34 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 35 + match self { 36 + Error::BlockedActor(msg) => { 37 + write!(_f, "BlockedActor")?; 38 + if let Some(msg) = msg { 39 + write!(_f, ": {msg}")?; 40 + } 41 + } 42 + Error::BlockedByActor(msg) => { 43 + write!(_f, "BlockedByActor")?; 44 + if let Some(msg) = msg { 45 + write!(_f, ": {msg}")?; 46 + } 47 + } 48 + } 49 + Ok(()) 50 + } 51 + }
+39
crates/weaver-common/src/lexicons/app/bsky/feed/get_feed.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getFeed` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getFeed"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + pub feed: String, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub feed: Vec<crate::app::bsky::feed::defs::FeedViewPost>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error { 25 + UnknownFeed(Option<String>), 26 + } 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + match self { 30 + Error::UnknownFeed(msg) => { 31 + write!(_f, "UnknownFeed")?; 32 + if let Some(msg) = msg { 33 + write!(_f, ": {msg}")?; 34 + } 35 + } 36 + } 37 + Ok(()) 38 + } 39 + }
+28
crates/weaver-common/src/lexicons/app/bsky/feed/get_feed_generator.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getFeedGenerator` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getFeedGenerator"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///AT-URI of the feed generator record. 8 + pub feed: String, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + ///Indicates whether the feed generator service has been online recently, or else seems to be inactive. 15 + pub is_online: bool, 16 + ///Indicates whether the feed generator service is compatible with the record declaration. 17 + pub is_valid: bool, 18 + pub view: crate::app::bsky::feed::defs::GeneratorView, 19 + } 20 + pub type Output = atrium_api::types::Object<OutputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(tag = "error", content = "message")] 23 + pub enum Error {} 24 + impl std::fmt::Display for Error { 25 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 26 + Ok(()) 27 + } 28 + }
+23
crates/weaver-common/src/lexicons/app/bsky/feed/get_feed_generators.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getFeedGenerators` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getFeedGenerators"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub feeds: Vec<String>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub feeds: Vec<crate::app::bsky::feed::defs::GeneratorView>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+40
crates/weaver-common/src/lexicons/app/bsky/feed/get_feed_skeleton.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getFeedSkeleton` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getFeedSkeleton"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + ///Reference to feed generator record describing the specific feed being requested. 10 + pub feed: String, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub cursor: core::option::Option<String>, 20 + pub feed: Vec<crate::app::bsky::feed::defs::SkeletonFeedPost>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error { 26 + UnknownFeed(Option<String>), 27 + } 28 + impl std::fmt::Display for Error { 29 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 30 + match self { 31 + Error::UnknownFeed(msg) => { 32 + write!(_f, "UnknownFeed")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + } 38 + Ok(()) 39 + } 40 + }
+44
crates/weaver-common/src/lexicons/app/bsky/feed/get_likes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getLikes` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getLikes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///CID of the subject record (aka, specific version of record), to filter likes. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub cursor: core::option::Option<String>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 14 + ///AT-URI of the subject (eg, a post record). 15 + pub uri: String, 16 + } 17 + pub type Parameters = atrium_api::types::Object<ParametersData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct OutputData { 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub cursor: core::option::Option<String>, 25 + pub likes: Vec<Like>, 26 + pub uri: String, 27 + } 28 + pub type Output = atrium_api::types::Object<OutputData>; 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(tag = "error", content = "message")] 31 + pub enum Error {} 32 + impl std::fmt::Display for Error { 33 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 34 + Ok(()) 35 + } 36 + } 37 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 38 + #[serde(rename_all = "camelCase")] 39 + pub struct LikeData { 40 + pub actor: crate::app::bsky::actor::defs::ProfileView, 41 + pub created_at: atrium_api::types::string::Datetime, 42 + pub indexed_at: atrium_api::types::string::Datetime, 43 + } 44 + pub type Like = atrium_api::types::Object<LikeData>;
+40
crates/weaver-common/src/lexicons/app/bsky/feed/get_list_feed.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getListFeed` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getListFeed"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + ///Reference (AT-URI) to the list record. 12 + pub list: String, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub cursor: core::option::Option<String>, 20 + pub feed: Vec<crate::app::bsky::feed::defs::FeedViewPost>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error { 26 + UnknownList(Option<String>), 27 + } 28 + impl std::fmt::Display for Error { 29 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 30 + match self { 31 + Error::UnknownList(msg) => { 32 + write!(_f, "UnknownList")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + } 38 + Ok(()) 39 + } 40 + }
+52
crates/weaver-common/src/lexicons/app/bsky/feed/get_post_thread.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getPostThread` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getPostThread"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///How many levels of reply depth should be included in response. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub depth: core::option::Option<atrium_api::types::LimitedU16<1000u16>>, 10 + ///How many levels of parent (and grandparent, etc) post to include. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub parent_height: core::option::Option<atrium_api::types::LimitedU16<1000u16>>, 13 + ///Reference (AT-URI) to post record. 14 + pub uri: String, 15 + } 16 + pub type Parameters = atrium_api::types::Object<ParametersData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct OutputData { 20 + pub thread: atrium_api::types::Union<OutputThreadRefs>, 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub threadgate: core::option::Option<crate::app::bsky::feed::defs::ThreadgateView>, 23 + } 24 + pub type Output = atrium_api::types::Object<OutputData>; 25 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 + #[serde(tag = "error", content = "message")] 27 + pub enum Error { 28 + NotFound(Option<String>), 29 + } 30 + impl std::fmt::Display for Error { 31 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 32 + match self { 33 + Error::NotFound(msg) => { 34 + write!(_f, "NotFound")?; 35 + if let Some(msg) = msg { 36 + write!(_f, ": {msg}")?; 37 + } 38 + } 39 + } 40 + Ok(()) 41 + } 42 + } 43 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 44 + #[serde(tag = "$type")] 45 + pub enum OutputThreadRefs { 46 + #[serde(rename = "app.bsky.feed.defs#threadViewPost")] 47 + AppBskyFeedDefsThreadViewPost(Box<crate::app::bsky::feed::defs::ThreadViewPost>), 48 + #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 49 + AppBskyFeedDefsNotFoundPost(Box<crate::app::bsky::feed::defs::NotFoundPost>), 50 + #[serde(rename = "app.bsky.feed.defs#blockedPost")] 51 + AppBskyFeedDefsBlockedPost(Box<crate::app::bsky::feed::defs::BlockedPost>), 52 + }
+24
crates/weaver-common/src/lexicons/app/bsky/feed/get_posts.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getPosts` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getPosts"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///List of post AT-URIs to return hydrated views for. 8 + pub uris: Vec<String>, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub posts: Vec<crate::app::bsky::feed::defs::PostView>, 15 + } 16 + pub type Output = atrium_api::types::Object<OutputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(tag = "error", content = "message")] 19 + pub enum Error {} 20 + impl std::fmt::Display for Error { 21 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 22 + Ok(()) 23 + } 24 + }
+36
crates/weaver-common/src/lexicons/app/bsky/feed/get_quotes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getQuotes` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getQuotes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///If supplied, filters to quotes of specific version (by CID) of the post record. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub cursor: core::option::Option<String>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 14 + ///Reference (AT-URI) of post record 15 + pub uri: String, 16 + } 17 + pub type Parameters = atrium_api::types::Object<ParametersData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct OutputData { 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub cursor: core::option::Option<String>, 25 + pub posts: Vec<crate::app::bsky::feed::defs::PostView>, 26 + pub uri: String, 27 + } 28 + pub type Output = atrium_api::types::Object<OutputData>; 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(tag = "error", content = "message")] 31 + pub enum Error {} 32 + impl std::fmt::Display for Error { 33 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 34 + Ok(()) 35 + } 36 + }
+36
crates/weaver-common/src/lexicons/app/bsky/feed/get_reposted_by.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getRepostedBy` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getRepostedBy"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///If supplied, filters to reposts of specific version (by CID) of the post record. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub cursor: core::option::Option<String>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 14 + ///Reference (AT-URI) of post record 15 + pub uri: String, 16 + } 17 + pub type Parameters = atrium_api::types::Object<ParametersData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct OutputData { 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub cursor: core::option::Option<String>, 25 + pub reposted_by: Vec<crate::app::bsky::actor::defs::ProfileView>, 26 + pub uri: String, 27 + } 28 + pub type Output = atrium_api::types::Object<OutputData>; 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(tag = "error", content = "message")] 31 + pub enum Error {} 32 + impl std::fmt::Display for Error { 33 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 34 + Ok(()) 35 + } 36 + }
+28
crates/weaver-common/src/lexicons/app/bsky/feed/get_suggested_feeds.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getSuggestedFeeds` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getSuggestedFeeds"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub cursor: core::option::Option<String>, 18 + pub feeds: Vec<crate::app::bsky::feed::defs::GeneratorView>, 19 + } 20 + pub type Output = atrium_api::types::Object<OutputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(tag = "error", content = "message")] 23 + pub enum Error {} 24 + impl std::fmt::Display for Error { 25 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 26 + Ok(()) 27 + } 28 + }
+31
crates/weaver-common/src/lexicons/app/bsky/feed/get_timeline.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.getTimeline` namespace. 3 + pub const NSID: &str = "app.bsky.feed.getTimeline"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub algorithm: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub cursor: core::option::Option<String>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 14 + } 15 + pub type Parameters = atrium_api::types::Object<ParametersData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(rename_all = "camelCase")] 18 + pub struct OutputData { 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub cursor: core::option::Option<String>, 21 + pub feed: Vec<crate::app::bsky::feed::defs::FeedViewPost>, 22 + } 23 + pub type Output = atrium_api::types::Object<OutputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "error", content = "message")] 26 + pub enum Error {} 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + Ok(()) 30 + } 31 + }
+15
crates/weaver-common/src/lexicons/app/bsky/feed/like.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.like` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + pub subject: crate::com::atproto::repo::strong_ref::Main, 9 + } 10 + pub type Record = atrium_api::types::Object<RecordData>; 11 + impl From<atrium_api::types::Unknown> for RecordData { 12 + fn from(value: atrium_api::types::Unknown) -> Self { 13 + Self::try_from_unknown(value).unwrap() 14 + } 15 + }
+83
crates/weaver-common/src/lexicons/app/bsky/feed/post.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.post` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///Client-declared timestamp when this post was originally created. 8 + pub created_at: atrium_api::types::string::Datetime, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub embed: core::option::Option<atrium_api::types::Union<RecordEmbedRefs>>, 11 + ///DEPRECATED: replaced by app.bsky.richtext.facet. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub entities: core::option::Option<Vec<Entity>>, 14 + ///Annotations of text (mentions, URLs, hashtags, etc) 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub facets: core::option::Option<Vec<crate::app::bsky::richtext::facet::Main>>, 17 + ///Self-label values for this post. Effectively content warnings. 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub labels: core::option::Option<atrium_api::types::Union<RecordLabelsRefs>>, 20 + ///Indicates human language of post primary text content. 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub langs: core::option::Option<Vec<atrium_api::types::string::Language>>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub reply: core::option::Option<ReplyRef>, 25 + ///Additional hashtags, in addition to any included in post text and facets. 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub tags: core::option::Option<Vec<String>>, 28 + ///The primary post content. May be an empty string, if there are embeds. 29 + pub text: String, 30 + } 31 + pub type Record = atrium_api::types::Object<RecordData>; 32 + impl From<atrium_api::types::Unknown> for RecordData { 33 + fn from(value: atrium_api::types::Unknown) -> Self { 34 + Self::try_from_unknown(value).unwrap() 35 + } 36 + } 37 + ///Deprecated: use facets instead. 38 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 39 + #[serde(rename_all = "camelCase")] 40 + pub struct EntityData { 41 + pub index: TextSlice, 42 + ///Expected values are 'mention' and 'link'. 43 + pub r#type: String, 44 + pub value: String, 45 + } 46 + pub type Entity = atrium_api::types::Object<EntityData>; 47 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 48 + #[serde(rename_all = "camelCase")] 49 + pub struct ReplyRefData { 50 + pub parent: crate::com::atproto::repo::strong_ref::Main, 51 + pub root: crate::com::atproto::repo::strong_ref::Main, 52 + } 53 + pub type ReplyRef = atrium_api::types::Object<ReplyRefData>; 54 + ///Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings. 55 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 56 + #[serde(rename_all = "camelCase")] 57 + pub struct TextSliceData { 58 + pub end: usize, 59 + pub start: usize, 60 + } 61 + pub type TextSlice = atrium_api::types::Object<TextSliceData>; 62 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 63 + #[serde(tag = "$type")] 64 + pub enum RecordEmbedRefs { 65 + #[serde(rename = "app.bsky.embed.images")] 66 + AppBskyEmbedImagesMain(Box<crate::app::bsky::embed::images::Main>), 67 + #[serde(rename = "app.bsky.embed.video")] 68 + AppBskyEmbedVideoMain(Box<crate::app::bsky::embed::video::Main>), 69 + #[serde(rename = "app.bsky.embed.external")] 70 + AppBskyEmbedExternalMain(Box<crate::app::bsky::embed::external::Main>), 71 + #[serde(rename = "app.bsky.embed.record")] 72 + AppBskyEmbedRecordMain(Box<crate::app::bsky::embed::record::Main>), 73 + #[serde(rename = "app.bsky.embed.recordWithMedia")] 74 + AppBskyEmbedRecordWithMediaMain( 75 + Box<crate::app::bsky::embed::record_with_media::Main>, 76 + ), 77 + } 78 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 79 + #[serde(tag = "$type")] 80 + pub enum RecordLabelsRefs { 81 + #[serde(rename = "com.atproto.label.defs#selfLabels")] 82 + ComAtprotoLabelDefsSelfLabels(Box<crate::com::atproto::label::defs::SelfLabels>), 83 + }
+35
crates/weaver-common/src/lexicons/app/bsky/feed/postgate.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.postgate` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + ///List of AT-URIs embedding this post that the author has detached from. 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub detached_embedding_uris: core::option::Option<Vec<String>>, 11 + ///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. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub embedding_rules: core::option::Option< 14 + Vec<atrium_api::types::Union<RecordEmbeddingRulesItem>>, 15 + >, 16 + ///Reference (AT-URI) to the post record. 17 + pub post: String, 18 + } 19 + pub type Record = atrium_api::types::Object<RecordData>; 20 + impl From<atrium_api::types::Unknown> for RecordData { 21 + fn from(value: atrium_api::types::Unknown) -> Self { 22 + Self::try_from_unknown(value).unwrap() 23 + } 24 + } 25 + ///Disables embedding of this post. 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(rename_all = "camelCase")] 28 + pub struct DisableRuleData {} 29 + pub type DisableRule = atrium_api::types::Object<DisableRuleData>; 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(tag = "$type")] 32 + pub enum RecordEmbeddingRulesItem { 33 + #[serde(rename = "app.bsky.feed.postgate#disableRule")] 34 + DisableRule(Box<DisableRule>), 35 + }
+15
crates/weaver-common/src/lexicons/app/bsky/feed/repost.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.repost` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + pub subject: crate::com::atproto::repo::strong_ref::Main, 9 + } 10 + pub type Record = atrium_api::types::Object<RecordData>; 11 + impl From<atrium_api::types::Unknown> for RecordData { 12 + fn from(value: atrium_api::types::Unknown) -> Self { 13 + Self::try_from_unknown(value).unwrap() 14 + } 15 + }
+71
crates/weaver-common/src/lexicons/app/bsky/feed/search_posts.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.searchPosts` namespace. 3 + pub const NSID: &str = "app.bsky.feed.searchPosts"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Filter to posts by the given account. Handles are resolved to DID before query-time. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub author: core::option::Option<atrium_api::types::string::AtIdentifier>, 10 + ///Optional pagination mechanism; may not necessarily allow scrolling through entire result set. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub cursor: core::option::Option<String>, 13 + ///Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub domain: core::option::Option<String>, 16 + ///Filter to posts in the given language. Expected to be based on post language field, though server may override language detection. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub lang: core::option::Option<atrium_api::types::string::Language>, 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 21 + ///Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions. 22 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 23 + pub mentions: core::option::Option<atrium_api::types::string::AtIdentifier>, 24 + ///Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. 25 + pub q: String, 26 + ///Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD). 27 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 28 + pub since: core::option::Option<String>, 29 + ///Specifies the ranking order of results. 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub sort: core::option::Option<String>, 32 + ///Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching. 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub tag: core::option::Option<Vec<String>>, 35 + ///Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD). 36 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 37 + pub until: core::option::Option<String>, 38 + ///Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching. 39 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 40 + pub url: core::option::Option<String>, 41 + } 42 + pub type Parameters = atrium_api::types::Object<ParametersData>; 43 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 44 + #[serde(rename_all = "camelCase")] 45 + pub struct OutputData { 46 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 47 + pub cursor: core::option::Option<String>, 48 + ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 49 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 50 + pub hits_total: core::option::Option<i64>, 51 + pub posts: Vec<crate::app::bsky::feed::defs::PostView>, 52 + } 53 + pub type Output = atrium_api::types::Object<OutputData>; 54 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 55 + #[serde(tag = "error", content = "message")] 56 + pub enum Error { 57 + BadQueryString(Option<String>), 58 + } 59 + impl std::fmt::Display for Error { 60 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 61 + match self { 62 + Error::BadQueryString(msg) => { 63 + write!(_f, "BadQueryString")?; 64 + if let Some(msg) = msg { 65 + write!(_f, ": {msg}")?; 66 + } 67 + } 68 + } 69 + Ok(()) 70 + } 71 + }
+21
crates/weaver-common/src/lexicons/app/bsky/feed/send_interactions.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.sendInteractions` namespace. 3 + pub const NSID: &str = "app.bsky.feed.sendInteractions"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub interactions: Vec<crate::app::bsky::feed::defs::Interaction>, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData {} 13 + pub type Output = atrium_api::types::Object<OutputData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(tag = "error", content = "message")] 16 + pub enum Error {} 17 + impl std::fmt::Display for Error { 18 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 19 + Ok(()) 20 + } 21 + }
+56
crates/weaver-common/src/lexicons/app/bsky/feed/threadgate.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.feed.threadgate` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///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. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub allow: core::option::Option<Vec<atrium_api::types::Union<RecordAllowItem>>>, 10 + pub created_at: atrium_api::types::string::Datetime, 11 + ///List of hidden reply URIs. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub hidden_replies: core::option::Option<Vec<String>>, 14 + ///Reference (AT-URI) to the post record. 15 + pub post: String, 16 + } 17 + pub type Record = atrium_api::types::Object<RecordData>; 18 + impl From<atrium_api::types::Unknown> for RecordData { 19 + fn from(value: atrium_api::types::Unknown) -> Self { 20 + Self::try_from_unknown(value).unwrap() 21 + } 22 + } 23 + ///Allow replies from actors who follow you. 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(rename_all = "camelCase")] 26 + pub struct FollowerRuleData {} 27 + pub type FollowerRule = atrium_api::types::Object<FollowerRuleData>; 28 + ///Allow replies from actors you follow. 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(rename_all = "camelCase")] 31 + pub struct FollowingRuleData {} 32 + pub type FollowingRule = atrium_api::types::Object<FollowingRuleData>; 33 + ///Allow replies from actors on a list. 34 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 35 + #[serde(rename_all = "camelCase")] 36 + pub struct ListRuleData { 37 + pub list: String, 38 + } 39 + pub type ListRule = atrium_api::types::Object<ListRuleData>; 40 + ///Allow replies from actors mentioned in your post. 41 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 42 + #[serde(rename_all = "camelCase")] 43 + pub struct MentionRuleData {} 44 + pub type MentionRule = atrium_api::types::Object<MentionRuleData>; 45 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 46 + #[serde(tag = "$type")] 47 + pub enum RecordAllowItem { 48 + #[serde(rename = "app.bsky.feed.threadgate#mentionRule")] 49 + MentionRule(Box<MentionRule>), 50 + #[serde(rename = "app.bsky.feed.threadgate#followerRule")] 51 + FollowerRule(Box<FollowerRule>), 52 + #[serde(rename = "app.bsky.feed.threadgate#followingRule")] 53 + FollowingRule(Box<FollowingRule>), 54 + #[serde(rename = "app.bsky.feed.threadgate#listRule")] 55 + ListRule(Box<ListRule>), 56 + }
+31
crates/weaver-common/src/lexicons/app/bsky/graph.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph` namespace. 3 + pub mod block; 4 + pub mod defs; 5 + pub mod follow; 6 + pub mod get_actor_starter_packs; 7 + pub mod get_blocks; 8 + pub mod get_followers; 9 + pub mod get_follows; 10 + pub mod get_known_followers; 11 + pub mod get_list; 12 + pub mod get_list_blocks; 13 + pub mod get_list_mutes; 14 + pub mod get_lists; 15 + pub mod get_mutes; 16 + pub mod get_relationships; 17 + pub mod get_starter_pack; 18 + pub mod get_starter_packs; 19 + pub mod get_suggested_follows_by_actor; 20 + pub mod list; 21 + pub mod listblock; 22 + pub mod listitem; 23 + pub mod mute_actor; 24 + pub mod mute_actor_list; 25 + pub mod mute_thread; 26 + pub mod search_starter_packs; 27 + pub mod starterpack; 28 + pub mod unmute_actor; 29 + pub mod unmute_actor_list; 30 + pub mod unmute_thread; 31 + pub mod verification;
+16
crates/weaver-common/src/lexicons/app/bsky/graph/block.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.block` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + ///DID of the account to be blocked. 9 + pub subject: atrium_api::types::string::Did, 10 + } 11 + pub type Record = atrium_api::types::Object<RecordData>; 12 + impl From<atrium_api::types::Unknown> for RecordData { 13 + fn from(value: atrium_api::types::Unknown) -> Self { 14 + Self::try_from_unknown(value).unwrap() 15 + } 16 + }
+130
crates/weaver-common/src/lexicons/app/bsky/graph/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.defs` namespace. 3 + ///A list of actors used for curation purposes such as list feeds or interaction gating. 4 + pub const CURATELIST: &str = "app.bsky.graph.defs#curatelist"; 5 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 6 + #[serde(rename_all = "camelCase")] 7 + pub struct ListItemViewData { 8 + pub subject: crate::app::bsky::actor::defs::ProfileView, 9 + pub uri: String, 10 + } 11 + pub type ListItemView = atrium_api::types::Object<ListItemViewData>; 12 + pub type ListPurpose = String; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct ListViewData { 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub avatar: core::option::Option<String>, 18 + pub cid: atrium_api::types::string::Cid, 19 + pub creator: crate::app::bsky::actor::defs::ProfileView, 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub description: core::option::Option<String>, 22 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 23 + pub description_facets: core::option::Option< 24 + Vec<crate::app::bsky::richtext::facet::Main>, 25 + >, 26 + pub indexed_at: atrium_api::types::string::Datetime, 27 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 28 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 29 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 30 + pub list_item_count: core::option::Option<usize>, 31 + pub name: String, 32 + pub purpose: ListPurpose, 33 + pub uri: String, 34 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 35 + pub viewer: core::option::Option<ListViewerState>, 36 + } 37 + pub type ListView = atrium_api::types::Object<ListViewData>; 38 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 39 + #[serde(rename_all = "camelCase")] 40 + pub struct ListViewBasicData { 41 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 42 + pub avatar: core::option::Option<String>, 43 + pub cid: atrium_api::types::string::Cid, 44 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 45 + pub indexed_at: core::option::Option<atrium_api::types::string::Datetime>, 46 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 47 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 48 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 49 + pub list_item_count: core::option::Option<usize>, 50 + pub name: String, 51 + pub purpose: ListPurpose, 52 + pub uri: String, 53 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 54 + pub viewer: core::option::Option<ListViewerState>, 55 + } 56 + pub type ListViewBasic = atrium_api::types::Object<ListViewBasicData>; 57 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 58 + #[serde(rename_all = "camelCase")] 59 + pub struct ListViewerStateData { 60 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 61 + pub blocked: core::option::Option<String>, 62 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 63 + pub muted: core::option::Option<bool>, 64 + } 65 + pub type ListViewerState = atrium_api::types::Object<ListViewerStateData>; 66 + ///A list of actors to apply an aggregate moderation action (mute/block) on. 67 + pub const MODLIST: &str = "app.bsky.graph.defs#modlist"; 68 + ///indicates that a handle or DID could not be resolved 69 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 70 + #[serde(rename_all = "camelCase")] 71 + pub struct NotFoundActorData { 72 + pub actor: atrium_api::types::string::AtIdentifier, 73 + pub not_found: bool, 74 + } 75 + pub type NotFoundActor = atrium_api::types::Object<NotFoundActorData>; 76 + ///A list of actors used for only for reference purposes such as within a starter pack. 77 + pub const REFERENCELIST: &str = "app.bsky.graph.defs#referencelist"; 78 + ///lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object) 79 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 80 + #[serde(rename_all = "camelCase")] 81 + pub struct RelationshipData { 82 + pub did: atrium_api::types::string::Did, 83 + ///if the actor is followed by this DID, contains the AT-URI of the follow record 84 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 85 + pub followed_by: core::option::Option<String>, 86 + ///if the actor follows this DID, this is the AT-URI of the follow record 87 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 88 + pub following: core::option::Option<String>, 89 + } 90 + pub type Relationship = atrium_api::types::Object<RelationshipData>; 91 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 92 + #[serde(rename_all = "camelCase")] 93 + pub struct StarterPackViewData { 94 + pub cid: atrium_api::types::string::Cid, 95 + pub creator: crate::app::bsky::actor::defs::ProfileViewBasic, 96 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 97 + pub feeds: core::option::Option<Vec<crate::app::bsky::feed::defs::GeneratorView>>, 98 + pub indexed_at: atrium_api::types::string::Datetime, 99 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 100 + pub joined_all_time_count: core::option::Option<usize>, 101 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 102 + pub joined_week_count: core::option::Option<usize>, 103 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 104 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 105 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 106 + pub list: core::option::Option<ListViewBasic>, 107 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 108 + pub list_items_sample: core::option::Option<Vec<ListItemView>>, 109 + pub record: atrium_api::types::Unknown, 110 + pub uri: String, 111 + } 112 + pub type StarterPackView = atrium_api::types::Object<StarterPackViewData>; 113 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 114 + #[serde(rename_all = "camelCase")] 115 + pub struct StarterPackViewBasicData { 116 + pub cid: atrium_api::types::string::Cid, 117 + pub creator: crate::app::bsky::actor::defs::ProfileViewBasic, 118 + pub indexed_at: atrium_api::types::string::Datetime, 119 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 120 + pub joined_all_time_count: core::option::Option<usize>, 121 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 122 + pub joined_week_count: core::option::Option<usize>, 123 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 124 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 125 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 126 + pub list_item_count: core::option::Option<usize>, 127 + pub record: atrium_api::types::Unknown, 128 + pub uri: String, 129 + } 130 + pub type StarterPackViewBasic = atrium_api::types::Object<StarterPackViewBasicData>;
+15
crates/weaver-common/src/lexicons/app/bsky/graph/follow.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.follow` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + pub subject: atrium_api::types::string::Did, 9 + } 10 + pub type Record = atrium_api::types::Object<RecordData>; 11 + impl From<atrium_api::types::Unknown> for RecordData { 12 + fn from(value: atrium_api::types::Unknown) -> Self { 13 + Self::try_from_unknown(value).unwrap() 14 + } 15 + }
+29
crates/weaver-common/src/lexicons/app/bsky/graph/get_actor_starter_packs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getActorStarterPacks` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getActorStarterPacks"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub starter_packs: Vec<crate::app::bsky::graph::defs::StarterPackViewBasic>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + }
+28
crates/weaver-common/src/lexicons/app/bsky/graph/get_blocks.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getBlocks` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getBlocks"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + pub blocks: Vec<crate::app::bsky::actor::defs::ProfileView>, 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + } 20 + pub type Output = atrium_api::types::Object<OutputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(tag = "error", content = "message")] 23 + pub enum Error {} 24 + impl std::fmt::Display for Error { 25 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 26 + Ok(()) 27 + } 28 + }
+30
crates/weaver-common/src/lexicons/app/bsky/graph/get_followers.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getFollowers` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getFollowers"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub followers: Vec<crate::app::bsky::actor::defs::ProfileView>, 20 + pub subject: crate::app::bsky::actor::defs::ProfileView, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+30
crates/weaver-common/src/lexicons/app/bsky/graph/get_follows.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getFollows` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getFollows"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub follows: Vec<crate::app::bsky::actor::defs::ProfileView>, 20 + pub subject: crate::app::bsky::actor::defs::ProfileView, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+30
crates/weaver-common/src/lexicons/app/bsky/graph/get_known_followers.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getKnownFollowers` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getKnownFollowers"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub followers: Vec<crate::app::bsky::actor::defs::ProfileView>, 20 + pub subject: crate::app::bsky::actor::defs::ProfileView, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+31
crates/weaver-common/src/lexicons/app/bsky/graph/get_list.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getList` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getList"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + ///Reference (AT-URI) of the list record to hydrate. 12 + pub list: String, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub cursor: core::option::Option<String>, 20 + pub items: Vec<crate::app::bsky::graph::defs::ListItemView>, 21 + pub list: crate::app::bsky::graph::defs::ListView, 22 + } 23 + pub type Output = atrium_api::types::Object<OutputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "error", content = "message")] 26 + pub enum Error {} 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + Ok(()) 30 + } 31 + }
+28
crates/weaver-common/src/lexicons/app/bsky/graph/get_list_blocks.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getListBlocks` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getListBlocks"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub cursor: core::option::Option<String>, 18 + pub lists: Vec<crate::app::bsky::graph::defs::ListView>, 19 + } 20 + pub type Output = atrium_api::types::Object<OutputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(tag = "error", content = "message")] 23 + pub enum Error {} 24 + impl std::fmt::Display for Error { 25 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 26 + Ok(()) 27 + } 28 + }
+28
crates/weaver-common/src/lexicons/app/bsky/graph/get_list_mutes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getListMutes` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getListMutes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub cursor: core::option::Option<String>, 18 + pub lists: Vec<crate::app::bsky::graph::defs::ListView>, 19 + } 20 + pub type Output = atrium_api::types::Object<OutputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(tag = "error", content = "message")] 23 + pub enum Error {} 24 + impl std::fmt::Display for Error { 25 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 26 + Ok(()) 27 + } 28 + }
+30
crates/weaver-common/src/lexicons/app/bsky/graph/get_lists.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getLists` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getLists"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The account (actor) to enumerate lists from. 8 + pub actor: atrium_api::types::string::AtIdentifier, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub cursor: core::option::Option<String>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub cursor: core::option::Option<String>, 20 + pub lists: Vec<crate::app::bsky::graph::defs::ListView>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+28
crates/weaver-common/src/lexicons/app/bsky/graph/get_mutes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getMutes` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getMutes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub cursor: core::option::Option<String>, 18 + pub mutes: Vec<crate::app::bsky::actor::defs::ProfileView>, 19 + } 20 + pub type Output = atrium_api::types::Object<OutputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(tag = "error", content = "message")] 23 + pub enum Error {} 24 + impl std::fmt::Display for Error { 25 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 26 + Ok(()) 27 + } 28 + }
+48
crates/weaver-common/src/lexicons/app/bsky/graph/get_relationships.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getRelationships` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getRelationships"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Primary account requesting relationships for. 8 + pub actor: atrium_api::types::string::AtIdentifier, 9 + ///List of 'other' accounts to be related back to the primary. 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub others: core::option::Option<Vec<atrium_api::types::string::AtIdentifier>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub actor: core::option::Option<atrium_api::types::string::Did>, 19 + pub relationships: Vec<atrium_api::types::Union<OutputRelationshipsItem>>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error { 25 + ///the primary actor at-identifier could not be resolved 26 + ActorNotFound(Option<String>), 27 + } 28 + impl std::fmt::Display for Error { 29 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 30 + match self { 31 + Error::ActorNotFound(msg) => { 32 + write!(_f, "ActorNotFound")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + } 38 + Ok(()) 39 + } 40 + } 41 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 42 + #[serde(tag = "$type")] 43 + pub enum OutputRelationshipsItem { 44 + #[serde(rename = "app.bsky.graph.defs#relationship")] 45 + AppBskyGraphDefsRelationship(Box<crate::app::bsky::graph::defs::Relationship>), 46 + #[serde(rename = "app.bsky.graph.defs#notFoundActor")] 47 + AppBskyGraphDefsNotFoundActor(Box<crate::app::bsky::graph::defs::NotFoundActor>), 48 + }
+24
crates/weaver-common/src/lexicons/app/bsky/graph/get_starter_pack.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getStarterPack` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getStarterPack"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Reference (AT-URI) of the starter pack record. 8 + pub starter_pack: String, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub starter_pack: crate::app::bsky::graph::defs::StarterPackView, 15 + } 16 + pub type Output = atrium_api::types::Object<OutputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(tag = "error", content = "message")] 19 + pub enum Error {} 20 + impl std::fmt::Display for Error { 21 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 22 + Ok(()) 23 + } 24 + }
+23
crates/weaver-common/src/lexicons/app/bsky/graph/get_starter_packs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getStarterPacks` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getStarterPacks"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub uris: Vec<String>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub starter_packs: Vec<crate::app::bsky::graph::defs::StarterPackViewBasic>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+29
crates/weaver-common/src/lexicons/app/bsky/graph/get_suggested_follows_by_actor.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.getSuggestedFollowsByActor` namespace. 3 + pub const NSID: &str = "app.bsky.graph.getSuggestedFollowsByActor"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + ///If true, response has fallen-back to generic results, and is not scoped using relativeToDid 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub is_fallback: core::option::Option<bool>, 16 + ///Snowflake for this recommendation, use when submitting recommendation events. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub rec_id: core::option::Option<i64>, 19 + pub suggestions: Vec<crate::app::bsky::actor::defs::ProfileView>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + }
+34
crates/weaver-common/src/lexicons/app/bsky/graph/list.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.list` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub avatar: core::option::Option<atrium_api::types::BlobRef>, 9 + pub created_at: atrium_api::types::string::Datetime, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub description: core::option::Option<String>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub description_facets: core::option::Option< 14 + Vec<crate::app::bsky::richtext::facet::Main>, 15 + >, 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub labels: core::option::Option<atrium_api::types::Union<RecordLabelsRefs>>, 18 + ///Display name for list; can not be empty. 19 + pub name: String, 20 + ///Defines the purpose of the list (aka, moderation-oriented or curration-oriented) 21 + pub purpose: crate::app::bsky::graph::defs::ListPurpose, 22 + } 23 + pub type Record = atrium_api::types::Object<RecordData>; 24 + impl From<atrium_api::types::Unknown> for RecordData { 25 + fn from(value: atrium_api::types::Unknown) -> Self { 26 + Self::try_from_unknown(value).unwrap() 27 + } 28 + } 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(tag = "$type")] 31 + pub enum RecordLabelsRefs { 32 + #[serde(rename = "com.atproto.label.defs#selfLabels")] 33 + ComAtprotoLabelDefsSelfLabels(Box<crate::com::atproto::label::defs::SelfLabels>), 34 + }
+16
crates/weaver-common/src/lexicons/app/bsky/graph/listblock.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.listblock` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + ///Reference (AT-URI) to the mod list record. 9 + pub subject: String, 10 + } 11 + pub type Record = atrium_api::types::Object<RecordData>; 12 + impl From<atrium_api::types::Unknown> for RecordData { 13 + fn from(value: atrium_api::types::Unknown) -> Self { 14 + Self::try_from_unknown(value).unwrap() 15 + } 16 + }
+18
crates/weaver-common/src/lexicons/app/bsky/graph/listitem.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.listitem` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + ///Reference (AT-URI) to the list record (app.bsky.graph.list). 9 + pub list: String, 10 + ///The account which is included on the list. 11 + pub subject: atrium_api::types::string::Did, 12 + } 13 + pub type Record = atrium_api::types::Object<RecordData>; 14 + impl From<atrium_api::types::Unknown> for RecordData { 15 + fn from(value: atrium_api::types::Unknown) -> Self { 16 + Self::try_from_unknown(value).unwrap() 17 + } 18 + }
+17
crates/weaver-common/src/lexicons/app/bsky/graph/mute_actor.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.muteActor` namespace. 3 + pub const NSID: &str = "app.bsky.graph.muteActor"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+17
crates/weaver-common/src/lexicons/app/bsky/graph/mute_actor_list.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.muteActorList` namespace. 3 + pub const NSID: &str = "app.bsky.graph.muteActorList"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub list: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+17
crates/weaver-common/src/lexicons/app/bsky/graph/mute_thread.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.muteThread` namespace. 3 + pub const NSID: &str = "app.bsky.graph.muteThread"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub root: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+30
crates/weaver-common/src/lexicons/app/bsky/graph/search_starter_packs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.searchStarterPacks` namespace. 3 + pub const NSID: &str = "app.bsky.graph.searchStarterPacks"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + ///Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. 12 + pub q: String, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub cursor: core::option::Option<String>, 20 + pub starter_packs: Vec<crate::app::bsky::graph::defs::StarterPackViewBasic>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+32
crates/weaver-common/src/lexicons/app/bsky/graph/starterpack.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.starterpack` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub description: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub description_facets: core::option::Option< 12 + Vec<crate::app::bsky::richtext::facet::Main>, 13 + >, 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub feeds: core::option::Option<Vec<FeedItem>>, 16 + ///Reference (AT-URI) to the list record. 17 + pub list: String, 18 + ///Display name for starter pack; can not be empty. 19 + pub name: String, 20 + } 21 + pub type Record = atrium_api::types::Object<RecordData>; 22 + impl From<atrium_api::types::Unknown> for RecordData { 23 + fn from(value: atrium_api::types::Unknown) -> Self { 24 + Self::try_from_unknown(value).unwrap() 25 + } 26 + } 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(rename_all = "camelCase")] 29 + pub struct FeedItemData { 30 + pub uri: String, 31 + } 32 + pub type FeedItem = atrium_api::types::Object<FeedItemData>;
+17
crates/weaver-common/src/lexicons/app/bsky/graph/unmute_actor.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.unmuteActor` namespace. 3 + pub const NSID: &str = "app.bsky.graph.unmuteActor"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub actor: atrium_api::types::string::AtIdentifier, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+17
crates/weaver-common/src/lexicons/app/bsky/graph/unmute_actor_list.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.unmuteActorList` namespace. 3 + pub const NSID: &str = "app.bsky.graph.unmuteActorList"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub list: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+17
crates/weaver-common/src/lexicons/app/bsky/graph/unmute_thread.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.unmuteThread` namespace. 3 + pub const NSID: &str = "app.bsky.graph.unmuteThread"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub root: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+21
crates/weaver-common/src/lexicons/app/bsky/graph/verification.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.graph.verification` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///Date of when the verification was created. 8 + pub created_at: atrium_api::types::string::Datetime, 9 + ///Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. 10 + pub display_name: String, 11 + ///Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. 12 + pub handle: atrium_api::types::string::Handle, 13 + ///DID of the subject the verification applies to. 14 + pub subject: atrium_api::types::string::Did, 15 + } 16 + pub type Record = atrium_api::types::Object<RecordData>; 17 + impl From<atrium_api::types::Unknown> for RecordData { 18 + fn from(value: atrium_api::types::Unknown) -> Self { 19 + Self::try_from_unknown(value).unwrap() 20 + } 21 + }
+5
crates/weaver-common/src/lexicons/app/bsky/labeler.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.labeler` namespace. 3 + pub mod defs; 4 + pub mod get_services; 5 + pub mod service;
+65
crates/weaver-common/src/lexicons/app/bsky/labeler/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.labeler.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct LabelerPoliciesData { 6 + ///Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler. 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub label_value_definitions: core::option::Option< 9 + Vec<crate::com::atproto::label::defs::LabelValueDefinition>, 10 + >, 11 + ///The label values which this labeler publishes. May include global or custom labels. 12 + pub label_values: Vec<crate::com::atproto::label::defs::LabelValue>, 13 + } 14 + pub type LabelerPolicies = atrium_api::types::Object<LabelerPoliciesData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct LabelerViewData { 18 + pub cid: atrium_api::types::string::Cid, 19 + pub creator: crate::app::bsky::actor::defs::ProfileView, 20 + pub indexed_at: atrium_api::types::string::Datetime, 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub like_count: core::option::Option<usize>, 25 + pub uri: String, 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub viewer: core::option::Option<LabelerViewerState>, 28 + } 29 + pub type LabelerView = atrium_api::types::Object<LabelerViewData>; 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(rename_all = "camelCase")] 32 + pub struct LabelerViewDetailedData { 33 + pub cid: atrium_api::types::string::Cid, 34 + pub creator: crate::app::bsky::actor::defs::ProfileView, 35 + pub indexed_at: atrium_api::types::string::Datetime, 36 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 37 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 38 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 39 + pub like_count: core::option::Option<usize>, 40 + pub policies: crate::app::bsky::labeler::defs::LabelerPolicies, 41 + ///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. 42 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 43 + pub reason_types: core::option::Option< 44 + Vec<crate::com::atproto::moderation::defs::ReasonType>, 45 + >, 46 + ///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. 47 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 48 + pub subject_collections: core::option::Option<Vec<atrium_api::types::string::Nsid>>, 49 + ///The set of subject types (account, record, etc) this service accepts reports on. 50 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 51 + pub subject_types: core::option::Option< 52 + Vec<crate::com::atproto::moderation::defs::SubjectType>, 53 + >, 54 + pub uri: String, 55 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 56 + pub viewer: core::option::Option<LabelerViewerState>, 57 + } 58 + pub type LabelerViewDetailed = atrium_api::types::Object<LabelerViewDetailedData>; 59 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 60 + #[serde(rename_all = "camelCase")] 61 + pub struct LabelerViewerStateData { 62 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 63 + pub like: core::option::Option<String>, 64 + } 65 + pub type LabelerViewerState = atrium_api::types::Object<LabelerViewerStateData>;
+35
crates/weaver-common/src/lexicons/app/bsky/labeler/get_services.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.labeler.getServices` namespace. 3 + pub const NSID: &str = "app.bsky.labeler.getServices"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub detailed: core::option::Option<bool>, 9 + pub dids: Vec<atrium_api::types::string::Did>, 10 + } 11 + pub type Parameters = atrium_api::types::Object<ParametersData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(rename_all = "camelCase")] 14 + pub struct OutputData { 15 + pub views: Vec<atrium_api::types::Union<OutputViewsItem>>, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + } 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(tag = "$type")] 28 + pub enum OutputViewsItem { 29 + #[serde(rename = "app.bsky.labeler.defs#labelerView")] 30 + AppBskyLabelerDefsLabelerView(Box<crate::app::bsky::labeler::defs::LabelerView>), 31 + #[serde(rename = "app.bsky.labeler.defs#labelerViewDetailed")] 32 + AppBskyLabelerDefsLabelerViewDetailed( 33 + Box<crate::app::bsky::labeler::defs::LabelerViewDetailed>, 34 + ), 35 + }
+36
crates/weaver-common/src/lexicons/app/bsky/labeler/service.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.labeler.service` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub created_at: atrium_api::types::string::Datetime, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub labels: core::option::Option<atrium_api::types::Union<RecordLabelsRefs>>, 10 + pub policies: crate::app::bsky::labeler::defs::LabelerPolicies, 11 + ///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. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub reason_types: core::option::Option< 14 + Vec<crate::com::atproto::moderation::defs::ReasonType>, 15 + >, 16 + ///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. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub subject_collections: core::option::Option<Vec<atrium_api::types::string::Nsid>>, 19 + ///The set of subject types (account, record, etc) this service accepts reports on. 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub subject_types: core::option::Option< 22 + Vec<crate::com::atproto::moderation::defs::SubjectType>, 23 + >, 24 + } 25 + pub type Record = atrium_api::types::Object<RecordData>; 26 + impl From<atrium_api::types::Unknown> for RecordData { 27 + fn from(value: atrium_api::types::Unknown) -> Self { 28 + Self::try_from_unknown(value).unwrap() 29 + } 30 + } 31 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 32 + #[serde(tag = "$type")] 33 + pub enum RecordLabelsRefs { 34 + #[serde(rename = "com.atproto.label.defs#selfLabels")] 35 + ComAtprotoLabelDefsSelfLabels(Box<crate::com::atproto::label::defs::SelfLabels>), 36 + }
+8
crates/weaver-common/src/lexicons/app/bsky/notification.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.notification` namespace. 3 + pub mod defs; 4 + pub mod get_unread_count; 5 + pub mod list_notifications; 6 + pub mod put_preferences; 7 + pub mod register_push; 8 + pub mod update_seen;
+6
crates/weaver-common/src/lexicons/app/bsky/notification/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.notification.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct RecordDeletedData {} 6 + pub type RecordDeleted = atrium_api::types::Object<RecordDeletedData>;
+26
crates/weaver-common/src/lexicons/app/bsky/notification/get_unread_count.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.notification.getUnreadCount` namespace. 3 + pub const NSID: &str = "app.bsky.notification.getUnreadCount"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub priority: core::option::Option<bool>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub seen_at: core::option::Option<atrium_api::types::string::Datetime>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + pub count: i64, 17 + } 18 + pub type Output = atrium_api::types::Object<OutputData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(tag = "error", content = "message")] 21 + pub enum Error {} 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + Ok(()) 25 + } 26 + }
+56
crates/weaver-common/src/lexicons/app/bsky/notification/list_notifications.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.notification.listNotifications` namespace. 3 + pub const NSID: &str = "app.bsky.notification.listNotifications"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub priority: core::option::Option<bool>, 13 + ///Notification reasons to include in response. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub reasons: core::option::Option<Vec<String>>, 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub seen_at: core::option::Option<atrium_api::types::string::Datetime>, 18 + } 19 + pub type Parameters = atrium_api::types::Object<ParametersData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(rename_all = "camelCase")] 22 + pub struct OutputData { 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub cursor: core::option::Option<String>, 25 + pub notifications: Vec<Notification>, 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub priority: core::option::Option<bool>, 28 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 29 + pub seen_at: core::option::Option<atrium_api::types::string::Datetime>, 30 + } 31 + pub type Output = atrium_api::types::Object<OutputData>; 32 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 + #[serde(tag = "error", content = "message")] 34 + pub enum Error {} 35 + impl std::fmt::Display for Error { 36 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 37 + Ok(()) 38 + } 39 + } 40 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 + #[serde(rename_all = "camelCase")] 42 + pub struct NotificationData { 43 + pub author: crate::app::bsky::actor::defs::ProfileView, 44 + pub cid: atrium_api::types::string::Cid, 45 + pub indexed_at: atrium_api::types::string::Datetime, 46 + pub is_read: bool, 47 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 48 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 49 + ///Expected values are 'like', 'repost', 'follow', 'mention', 'reply', 'quote', 'starterpack-joined', 'verified', and 'unverified'. 50 + pub reason: String, 51 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 52 + pub reason_subject: core::option::Option<String>, 53 + pub record: atrium_api::types::Unknown, 54 + pub uri: String, 55 + } 56 + pub type Notification = atrium_api::types::Object<NotificationData>;
+17
crates/weaver-common/src/lexicons/app/bsky/notification/put_preferences.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.notification.putPreferences` namespace. 3 + pub const NSID: &str = "app.bsky.notification.putPreferences"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub priority: bool, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+20
crates/weaver-common/src/lexicons/app/bsky/notification/register_push.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.notification.registerPush` namespace. 3 + pub const NSID: &str = "app.bsky.notification.registerPush"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub app_id: String, 8 + pub platform: String, 9 + pub service_did: atrium_api::types::string::Did, 10 + pub token: String, 11 + } 12 + pub type Input = atrium_api::types::Object<InputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error {} 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + Ok(()) 19 + } 20 + }
+17
crates/weaver-common/src/lexicons/app/bsky/notification/update_seen.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.notification.updateSeen` namespace. 3 + pub const NSID: &str = "app.bsky.notification.updateSeen"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub seen_at: atrium_api::types::string::Datetime, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+3
crates/weaver-common/src/lexicons/app/bsky/richtext.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.richtext` namespace. 3 + pub mod facet;
+49
crates/weaver-common/src/lexicons/app/bsky/richtext/facet.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.richtext.facet` namespace. 3 + ///Annotation of a sub-string within rich text. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub features: Vec<atrium_api::types::Union<MainFeaturesItem>>, 8 + pub index: ByteSlice, 9 + } 10 + pub type Main = atrium_api::types::Object<MainData>; 11 + ///Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets. 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(rename_all = "camelCase")] 14 + pub struct ByteSliceData { 15 + pub byte_end: usize, 16 + pub byte_start: usize, 17 + } 18 + pub type ByteSlice = atrium_api::types::Object<ByteSliceData>; 19 + ///Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL. 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(rename_all = "camelCase")] 22 + pub struct LinkData { 23 + pub uri: String, 24 + } 25 + pub type Link = atrium_api::types::Object<LinkData>; 26 + ///Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID. 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(rename_all = "camelCase")] 29 + pub struct MentionData { 30 + pub did: atrium_api::types::string::Did, 31 + } 32 + pub type Mention = atrium_api::types::Object<MentionData>; 33 + ///Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags'). 34 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 35 + #[serde(rename_all = "camelCase")] 36 + pub struct TagData { 37 + pub tag: String, 38 + } 39 + pub type Tag = atrium_api::types::Object<TagData>; 40 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 + #[serde(tag = "$type")] 42 + pub enum MainFeaturesItem { 43 + #[serde(rename = "app.bsky.richtext.facet#mention")] 44 + Mention(Box<Mention>), 45 + #[serde(rename = "app.bsky.richtext.facet#link")] 46 + Link(Box<Link>), 47 + #[serde(rename = "app.bsky.richtext.facet#tag")] 48 + Tag(Box<Tag>), 49 + }
+19
crates/weaver-common/src/lexicons/app/bsky/unspecced.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced` namespace. 3 + pub mod defs; 4 + pub mod get_config; 5 + pub mod get_popular_feed_generators; 6 + pub mod get_suggested_feeds; 7 + pub mod get_suggested_feeds_skeleton; 8 + pub mod get_suggested_starter_packs; 9 + pub mod get_suggested_starter_packs_skeleton; 10 + pub mod get_suggested_users; 11 + pub mod get_suggested_users_skeleton; 12 + pub mod get_suggestions_skeleton; 13 + pub mod get_tagged_suggestions; 14 + pub mod get_trending_topics; 15 + pub mod get_trends; 16 + pub mod get_trends_skeleton; 17 + pub mod search_actors_skeleton; 18 + pub mod search_posts_skeleton; 19 + pub mod search_starter_packs_skeleton;
+63
crates/weaver-common/src/lexicons/app/bsky/unspecced/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct SkeletonSearchActorData { 6 + pub did: atrium_api::types::string::Did, 7 + } 8 + pub type SkeletonSearchActor = atrium_api::types::Object<SkeletonSearchActorData>; 9 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 + #[serde(rename_all = "camelCase")] 11 + pub struct SkeletonSearchPostData { 12 + pub uri: String, 13 + } 14 + pub type SkeletonSearchPost = atrium_api::types::Object<SkeletonSearchPostData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct SkeletonSearchStarterPackData { 18 + pub uri: String, 19 + } 20 + pub type SkeletonSearchStarterPack = atrium_api::types::Object< 21 + SkeletonSearchStarterPackData, 22 + >; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(rename_all = "camelCase")] 25 + pub struct SkeletonTrendData { 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub category: core::option::Option<String>, 28 + pub dids: Vec<atrium_api::types::string::Did>, 29 + pub display_name: String, 30 + pub link: String, 31 + pub post_count: i64, 32 + pub started_at: atrium_api::types::string::Datetime, 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub status: core::option::Option<String>, 35 + pub topic: String, 36 + } 37 + pub type SkeletonTrend = atrium_api::types::Object<SkeletonTrendData>; 38 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 39 + #[serde(rename_all = "camelCase")] 40 + pub struct TrendViewData { 41 + pub actors: Vec<crate::app::bsky::actor::defs::ProfileViewBasic>, 42 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 43 + pub category: core::option::Option<String>, 44 + pub display_name: String, 45 + pub link: String, 46 + pub post_count: i64, 47 + pub started_at: atrium_api::types::string::Datetime, 48 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 49 + pub status: core::option::Option<String>, 50 + pub topic: String, 51 + } 52 + pub type TrendView = atrium_api::types::Object<TrendViewData>; 53 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 54 + #[serde(rename_all = "camelCase")] 55 + pub struct TrendingTopicData { 56 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 57 + pub description: core::option::Option<String>, 58 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 59 + pub display_name: core::option::Option<String>, 60 + pub link: String, 61 + pub topic: String, 62 + } 63 + pub type TrendingTopic = atrium_api::types::Object<TrendingTopicData>;
+18
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_config.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getConfig` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getConfig"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub check_email_confirmed: core::option::Option<bool>, 9 + } 10 + pub type Output = atrium_api::types::Object<OutputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error {} 14 + impl std::fmt::Display for Error { 15 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 16 + Ok(()) 17 + } 18 + }
+24
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_suggested_feeds.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getSuggestedFeeds` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getSuggestedFeeds"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<25u8>>, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub feeds: Vec<crate::app::bsky::feed::defs::GeneratorView>, 15 + } 16 + pub type Output = atrium_api::types::Object<OutputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(tag = "error", content = "message")] 19 + pub enum Error {} 20 + impl std::fmt::Display for Error { 21 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 22 + Ok(()) 23 + } 24 + }
+27
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_suggested_feeds_skeleton.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getSuggestedFeedsSkeleton` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getSuggestedFeedsSkeleton"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<25u8>>, 9 + ///DID of the account making the request (not included for public/unauthenticated queries). 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub viewer: core::option::Option<atrium_api::types::string::Did>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + pub feeds: Vec<String>, 18 + } 19 + pub type Output = atrium_api::types::Object<OutputData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(tag = "error", content = "message")] 22 + pub enum Error {} 23 + impl std::fmt::Display for Error { 24 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 25 + Ok(()) 26 + } 27 + }
+24
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_suggested_starter_packs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getSuggestedStarterPacks` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getSuggestedStarterPacks"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<25u8>>, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub starter_packs: Vec<crate::app::bsky::graph::defs::StarterPackView>, 15 + } 16 + pub type Output = atrium_api::types::Object<OutputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(tag = "error", content = "message")] 19 + pub enum Error {} 20 + impl std::fmt::Display for Error { 21 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 22 + Ok(()) 23 + } 24 + }
+27
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_suggested_starter_packs_skeleton.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getSuggestedStarterPacksSkeleton` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getSuggestedStarterPacksSkeleton"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<25u8>>, 9 + ///DID of the account making the request (not included for public/unauthenticated queries). 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub viewer: core::option::Option<atrium_api::types::string::Did>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + pub starter_packs: Vec<String>, 18 + } 19 + pub type Output = atrium_api::types::Object<OutputData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(tag = "error", content = "message")] 22 + pub enum Error {} 23 + impl std::fmt::Display for Error { 24 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 25 + Ok(()) 26 + } 27 + }
+27
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_suggested_users.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getSuggestedUsers` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getSuggestedUsers"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Category of users to get suggestions for. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub category: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<50u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + pub actors: Vec<crate::app::bsky::actor::defs::ProfileView>, 18 + } 19 + pub type Output = atrium_api::types::Object<OutputData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(tag = "error", content = "message")] 22 + pub enum Error {} 23 + impl std::fmt::Display for Error { 24 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 25 + Ok(()) 26 + } 27 + }
+30
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_suggested_users_skeleton.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getSuggestedUsersSkeleton` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getSuggestedUsersSkeleton"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Category of users to get suggestions for. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub category: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<50u8>>, 12 + ///DID of the account making the request (not included for public/unauthenticated queries). 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub viewer: core::option::Option<atrium_api::types::string::Did>, 15 + } 16 + pub type Parameters = atrium_api::types::Object<ParametersData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct OutputData { 20 + pub dids: Vec<atrium_api::types::string::Did>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+40
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_suggestions_skeleton.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getSuggestionsSkeleton` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getSuggestionsSkeleton"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + ///DID of the account to get suggestions relative to. If not provided, suggestions will be based on the viewer. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub relative_to_did: core::option::Option<atrium_api::types::string::Did>, 14 + ///DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking. 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub viewer: core::option::Option<atrium_api::types::string::Did>, 17 + } 18 + pub type Parameters = atrium_api::types::Object<ParametersData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(rename_all = "camelCase")] 21 + pub struct OutputData { 22 + pub actors: Vec<crate::app::bsky::unspecced::defs::SkeletonSearchActor>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub cursor: core::option::Option<String>, 25 + ///Snowflake for this recommendation, use when submitting recommendation events. 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub rec_id: core::option::Option<i64>, 28 + ///DID of the account these suggestions are relative to. If this is returned undefined, suggestions are based on the viewer. 29 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 30 + pub relative_to_did: core::option::Option<atrium_api::types::string::Did>, 31 + } 32 + pub type Output = atrium_api::types::Object<OutputData>; 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(tag = "error", content = "message")] 35 + pub enum Error {} 36 + impl std::fmt::Display for Error { 37 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 38 + Ok(()) 39 + } 40 + }
+29
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_tagged_suggestions.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getTaggedSuggestions` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getTaggedSuggestions"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData {} 7 + pub type Parameters = atrium_api::types::Object<ParametersData>; 8 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 + #[serde(rename_all = "camelCase")] 10 + pub struct OutputData { 11 + pub suggestions: Vec<Suggestion>, 12 + } 13 + pub type Output = atrium_api::types::Object<OutputData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(tag = "error", content = "message")] 16 + pub enum Error {} 17 + impl std::fmt::Display for Error { 18 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 19 + Ok(()) 20 + } 21 + } 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(rename_all = "camelCase")] 24 + pub struct SuggestionData { 25 + pub subject: String, 26 + pub subject_type: String, 27 + pub tag: String, 28 + } 29 + pub type Suggestion = atrium_api::types::Object<SuggestionData>;
+24
crates/weaver-common/src/lexicons/app/bsky/unspecced/get_trends.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.getTrends` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.getTrends"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<25u8>>, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub trends: Vec<crate::app::bsky::unspecced::defs::TrendView>, 15 + } 16 + pub type Output = atrium_api::types::Object<OutputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(tag = "error", content = "message")] 19 + pub enum Error {} 20 + impl std::fmt::Display for Error { 21 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 22 + Ok(()) 23 + } 24 + }
+50
crates/weaver-common/src/lexicons/app/bsky/unspecced/search_actors_skeleton.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.searchActorsSkeleton` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.searchActorsSkeleton"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Optional pagination mechanism; may not necessarily allow scrolling through entire result set. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + ///Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. For typeahead search, only simple term match is supported, not full syntax. 13 + pub q: String, 14 + ///If true, acts as fast/simple 'typeahead' query. 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub typeahead: core::option::Option<bool>, 17 + ///DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking. 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub viewer: core::option::Option<atrium_api::types::string::Did>, 20 + } 21 + pub type Parameters = atrium_api::types::Object<ParametersData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(rename_all = "camelCase")] 24 + pub struct OutputData { 25 + pub actors: Vec<crate::app::bsky::unspecced::defs::SkeletonSearchActor>, 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub cursor: core::option::Option<String>, 28 + ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 29 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 30 + pub hits_total: core::option::Option<i64>, 31 + } 32 + pub type Output = atrium_api::types::Object<OutputData>; 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(tag = "error", content = "message")] 35 + pub enum Error { 36 + BadQueryString(Option<String>), 37 + } 38 + impl std::fmt::Display for Error { 39 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 40 + match self { 41 + Error::BadQueryString(msg) => { 42 + write!(_f, "BadQueryString")?; 43 + if let Some(msg) = msg { 44 + write!(_f, ": {msg}")?; 45 + } 46 + } 47 + } 48 + Ok(()) 49 + } 50 + }
+74
crates/weaver-common/src/lexicons/app/bsky/unspecced/search_posts_skeleton.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.searchPostsSkeleton` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.searchPostsSkeleton"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Filter to posts by the given account. Handles are resolved to DID before query-time. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub author: core::option::Option<atrium_api::types::string::AtIdentifier>, 10 + ///Optional pagination mechanism; may not necessarily allow scrolling through entire result set. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub cursor: core::option::Option<String>, 13 + ///Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub domain: core::option::Option<String>, 16 + ///Filter to posts in the given language. Expected to be based on post language field, though server may override language detection. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub lang: core::option::Option<atrium_api::types::string::Language>, 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 21 + ///Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions. 22 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 23 + pub mentions: core::option::Option<atrium_api::types::string::AtIdentifier>, 24 + ///Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. 25 + pub q: String, 26 + ///Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD). 27 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 28 + pub since: core::option::Option<String>, 29 + ///Specifies the ranking order of results. 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub sort: core::option::Option<String>, 32 + ///Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching. 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub tag: core::option::Option<Vec<String>>, 35 + ///Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD). 36 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 37 + pub until: core::option::Option<String>, 38 + ///Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching. 39 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 40 + pub url: core::option::Option<String>, 41 + ///DID of the account making the request (not included for public/unauthenticated queries). Used for 'from:me' queries. 42 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 43 + pub viewer: core::option::Option<atrium_api::types::string::Did>, 44 + } 45 + pub type Parameters = atrium_api::types::Object<ParametersData>; 46 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 47 + #[serde(rename_all = "camelCase")] 48 + pub struct OutputData { 49 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 50 + pub cursor: core::option::Option<String>, 51 + ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 52 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 53 + pub hits_total: core::option::Option<i64>, 54 + pub posts: Vec<crate::app::bsky::unspecced::defs::SkeletonSearchPost>, 55 + } 56 + pub type Output = atrium_api::types::Object<OutputData>; 57 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 58 + #[serde(tag = "error", content = "message")] 59 + pub enum Error { 60 + BadQueryString(Option<String>), 61 + } 62 + impl std::fmt::Display for Error { 63 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 64 + match self { 65 + Error::BadQueryString(msg) => { 66 + write!(_f, "BadQueryString")?; 67 + if let Some(msg) = msg { 68 + write!(_f, ": {msg}")?; 69 + } 70 + } 71 + } 72 + Ok(()) 73 + } 74 + }
+47
crates/weaver-common/src/lexicons/app/bsky/unspecced/search_starter_packs_skeleton.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.unspecced.searchStarterPacksSkeleton` namespace. 3 + pub const NSID: &str = "app.bsky.unspecced.searchStarterPacksSkeleton"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Optional pagination mechanism; may not necessarily allow scrolling through entire result set. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + ///Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. 13 + pub q: String, 14 + ///DID of the account making the request (not included for public/unauthenticated queries). 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub viewer: core::option::Option<atrium_api::types::string::Did>, 17 + } 18 + pub type Parameters = atrium_api::types::Object<ParametersData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(rename_all = "camelCase")] 21 + pub struct OutputData { 22 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 23 + pub cursor: core::option::Option<String>, 24 + ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 25 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 26 + pub hits_total: core::option::Option<i64>, 27 + pub starter_packs: Vec<crate::app::bsky::unspecced::defs::SkeletonSearchStarterPack>, 28 + } 29 + pub type Output = atrium_api::types::Object<OutputData>; 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(tag = "error", content = "message")] 32 + pub enum Error { 33 + BadQueryString(Option<String>), 34 + } 35 + impl std::fmt::Display for Error { 36 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 37 + match self { 38 + Error::BadQueryString(msg) => { 39 + write!(_f, "BadQueryString")?; 40 + if let Some(msg) = msg { 41 + write!(_f, ": {msg}")?; 42 + } 43 + } 44 + } 45 + Ok(()) 46 + } 47 + }
+6
crates/weaver-common/src/lexicons/app/bsky/video.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.video` namespace. 3 + pub mod defs; 4 + pub mod get_job_status; 5 + pub mod get_upload_limits; 6 + pub mod upload_video;
+20
crates/weaver-common/src/lexicons/app/bsky/video/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.video.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct JobStatusData { 6 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 7 + pub blob: core::option::Option<atrium_api::types::BlobRef>, 8 + pub did: atrium_api::types::string::Did, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub error: core::option::Option<String>, 11 + pub job_id: String, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub message: core::option::Option<String>, 14 + ///Progress within the current processing state. 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub progress: core::option::Option<atrium_api::types::LimitedU8<100u8>>, 17 + ///The state of the video processing job. All values not listed as a known value indicate that the job is in process. 18 + pub state: String, 19 + } 20 + pub type JobStatus = atrium_api::types::Object<JobStatusData>;
+23
crates/weaver-common/src/lexicons/app/bsky/video/get_job_status.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.video.getJobStatus` namespace. 3 + pub const NSID: &str = "app.bsky.video.getJobStatus"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub job_id: String, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub job_status: crate::app::bsky::video::defs::JobStatus, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+25
crates/weaver-common/src/lexicons/app/bsky/video/get_upload_limits.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.video.getUploadLimits` namespace. 3 + pub const NSID: &str = "app.bsky.video.getUploadLimits"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub can_upload: bool, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub error: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub message: core::option::Option<String>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub remaining_daily_bytes: core::option::Option<i64>, 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub remaining_daily_videos: core::option::Option<i64>, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + }
+17
crates/weaver-common/src/lexicons/app/bsky/video/upload_video.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `app.bsky.video.uploadVideo` namespace. 3 + pub const NSID: &str = "app.bsky.video.uploadVideo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub job_status: crate::app::bsky::video::defs::JobStatus, 8 + } 9 + pub type Output = atrium_api::types::Object<OutputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+3
crates/weaver-common/src/lexicons/chat.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat` namespace. 3 + pub mod bsky;
+5
crates/weaver-common/src/lexicons/chat/bsky.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky` namespace. 3 + pub mod actor; 4 + pub mod convo; 5 + pub mod moderation;
+6
crates/weaver-common/src/lexicons/chat/bsky/actor.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.actor` namespace. 3 + pub mod declaration; 4 + pub mod defs; 5 + pub mod delete_account; 6 + pub mod export_account_data;
+14
crates/weaver-common/src/lexicons/chat/bsky/actor/declaration.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.actor.declaration` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub allow_incoming: String, 8 + } 9 + pub type Record = atrium_api::types::Object<RecordData>; 10 + impl From<atrium_api::types::Unknown> for RecordData { 11 + fn from(value: atrium_api::types::Unknown) -> Self { 12 + Self::try_from_unknown(value).unwrap() 13 + } 14 + }
+28
crates/weaver-common/src/lexicons/chat/bsky/actor/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.actor.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct ProfileViewBasicData { 6 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 7 + pub associated: core::option::Option< 8 + crate::app::bsky::actor::defs::ProfileAssociated, 9 + >, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub avatar: core::option::Option<String>, 12 + ///Set to true when the actor cannot actively participate in conversations 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub chat_disabled: core::option::Option<bool>, 15 + pub did: atrium_api::types::string::Did, 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub display_name: core::option::Option<String>, 18 + pub handle: atrium_api::types::string::Handle, 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub verification: core::option::Option< 23 + crate::app::bsky::actor::defs::VerificationState, 24 + >, 25 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 26 + pub viewer: core::option::Option<crate::app::bsky::actor::defs::ViewerState>, 27 + } 28 + pub type ProfileViewBasic = atrium_api::types::Object<ProfileViewBasicData>;
+15
crates/weaver-common/src/lexicons/chat/bsky/actor/delete_account.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.actor.deleteAccount` namespace. 3 + pub const NSID: &str = "chat.bsky.actor.deleteAccount"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData {} 7 + pub type Output = atrium_api::types::Object<OutputData>; 8 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 + #[serde(tag = "error", content = "message")] 10 + pub enum Error {} 11 + impl std::fmt::Display for Error { 12 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 13 + Ok(()) 14 + } 15 + }
+11
crates/weaver-common/src/lexicons/chat/bsky/actor/export_account_data.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.actor.exportAccountData` namespace. 3 + pub const NSID: &str = "chat.bsky.actor.exportAccountData"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(tag = "error", content = "message")] 6 + pub enum Error {} 7 + impl std::fmt::Display for Error { 8 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 9 + Ok(()) 10 + } 11 + }
+20
crates/weaver-common/src/lexicons/chat/bsky/convo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo` namespace. 3 + pub mod accept_convo; 4 + pub mod add_reaction; 5 + pub mod defs; 6 + pub mod delete_message_for_self; 7 + pub mod get_convo; 8 + pub mod get_convo_availability; 9 + pub mod get_convo_for_members; 10 + pub mod get_log; 11 + pub mod get_messages; 12 + pub mod leave_convo; 13 + pub mod list_convos; 14 + pub mod mute_convo; 15 + pub mod remove_reaction; 16 + pub mod send_message; 17 + pub mod send_message_batch; 18 + pub mod unmute_convo; 19 + pub mod update_all_read; 20 + pub mod update_read;
+25
crates/weaver-common/src/lexicons/chat/bsky/convo/accept_convo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.acceptConvo` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.acceptConvo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + ///Rev when the convo was accepted. If not present, the convo was already accepted. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub rev: core::option::Option<String>, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + }
+52
crates/weaver-common/src/lexicons/chat/bsky/convo/add_reaction.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.addReaction` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.addReaction"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + pub message_id: String, 9 + pub value: String, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(rename_all = "camelCase")] 14 + pub struct OutputData { 15 + pub message: crate::chat::bsky::convo::defs::MessageView, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error { 21 + ///Indicates that the message has been deleted and reactions can no longer be added/removed. 22 + ReactionMessageDeleted(Option<String>), 23 + ///Indicates that the message has the maximum number of reactions allowed for a single user, and the requested reaction wasn't yet present. If it was already present, the request will not fail since it is idempotent. 24 + ReactionLimitReached(Option<String>), 25 + ///Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji. 26 + ReactionInvalidValue(Option<String>), 27 + } 28 + impl std::fmt::Display for Error { 29 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 30 + match self { 31 + Error::ReactionMessageDeleted(msg) => { 32 + write!(_f, "ReactionMessageDeleted")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + Error::ReactionLimitReached(msg) => { 38 + write!(_f, "ReactionLimitReached")?; 39 + if let Some(msg) = msg { 40 + write!(_f, ": {msg}")?; 41 + } 42 + } 43 + Error::ReactionInvalidValue(msg) => { 44 + write!(_f, "ReactionInvalidValue")?; 45 + if let Some(msg) = msg { 46 + write!(_f, ": {msg}")?; 47 + } 48 + } 49 + } 50 + Ok(()) 51 + } 52 + }
+238
crates/weaver-common/src/lexicons/chat/bsky/convo/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct ConvoViewData { 6 + pub id: String, 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub last_message: core::option::Option< 9 + atrium_api::types::Union<ConvoViewLastMessageRefs>, 10 + >, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub last_reaction: core::option::Option< 13 + atrium_api::types::Union<ConvoViewLastReactionRefs>, 14 + >, 15 + pub members: Vec<crate::chat::bsky::actor::defs::ProfileViewBasic>, 16 + pub muted: bool, 17 + pub rev: String, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub status: core::option::Option<String>, 20 + pub unread_count: i64, 21 + } 22 + pub type ConvoView = atrium_api::types::Object<ConvoViewData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(rename_all = "camelCase")] 25 + pub struct DeletedMessageViewData { 26 + pub id: String, 27 + pub rev: String, 28 + pub sender: MessageViewSender, 29 + pub sent_at: atrium_api::types::string::Datetime, 30 + } 31 + pub type DeletedMessageView = atrium_api::types::Object<DeletedMessageViewData>; 32 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 + #[serde(rename_all = "camelCase")] 34 + pub struct LogAcceptConvoData { 35 + pub convo_id: String, 36 + pub rev: String, 37 + } 38 + pub type LogAcceptConvo = atrium_api::types::Object<LogAcceptConvoData>; 39 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 40 + #[serde(rename_all = "camelCase")] 41 + pub struct LogAddReactionData { 42 + pub convo_id: String, 43 + pub message: atrium_api::types::Union<LogAddReactionMessageRefs>, 44 + pub reaction: ReactionView, 45 + pub rev: String, 46 + } 47 + pub type LogAddReaction = atrium_api::types::Object<LogAddReactionData>; 48 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 49 + #[serde(rename_all = "camelCase")] 50 + pub struct LogBeginConvoData { 51 + pub convo_id: String, 52 + pub rev: String, 53 + } 54 + pub type LogBeginConvo = atrium_api::types::Object<LogBeginConvoData>; 55 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 56 + #[serde(rename_all = "camelCase")] 57 + pub struct LogCreateMessageData { 58 + pub convo_id: String, 59 + pub message: atrium_api::types::Union<LogCreateMessageMessageRefs>, 60 + pub rev: String, 61 + } 62 + pub type LogCreateMessage = atrium_api::types::Object<LogCreateMessageData>; 63 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 64 + #[serde(rename_all = "camelCase")] 65 + pub struct LogDeleteMessageData { 66 + pub convo_id: String, 67 + pub message: atrium_api::types::Union<LogDeleteMessageMessageRefs>, 68 + pub rev: String, 69 + } 70 + pub type LogDeleteMessage = atrium_api::types::Object<LogDeleteMessageData>; 71 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 72 + #[serde(rename_all = "camelCase")] 73 + pub struct LogLeaveConvoData { 74 + pub convo_id: String, 75 + pub rev: String, 76 + } 77 + pub type LogLeaveConvo = atrium_api::types::Object<LogLeaveConvoData>; 78 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 79 + #[serde(rename_all = "camelCase")] 80 + pub struct LogMuteConvoData { 81 + pub convo_id: String, 82 + pub rev: String, 83 + } 84 + pub type LogMuteConvo = atrium_api::types::Object<LogMuteConvoData>; 85 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 86 + #[serde(rename_all = "camelCase")] 87 + pub struct LogReadMessageData { 88 + pub convo_id: String, 89 + pub message: atrium_api::types::Union<LogReadMessageMessageRefs>, 90 + pub rev: String, 91 + } 92 + pub type LogReadMessage = atrium_api::types::Object<LogReadMessageData>; 93 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 94 + #[serde(rename_all = "camelCase")] 95 + pub struct LogRemoveReactionData { 96 + pub convo_id: String, 97 + pub message: atrium_api::types::Union<LogRemoveReactionMessageRefs>, 98 + pub reaction: ReactionView, 99 + pub rev: String, 100 + } 101 + pub type LogRemoveReaction = atrium_api::types::Object<LogRemoveReactionData>; 102 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 103 + #[serde(rename_all = "camelCase")] 104 + pub struct LogUnmuteConvoData { 105 + pub convo_id: String, 106 + pub rev: String, 107 + } 108 + pub type LogUnmuteConvo = atrium_api::types::Object<LogUnmuteConvoData>; 109 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 110 + #[serde(rename_all = "camelCase")] 111 + pub struct MessageAndReactionViewData { 112 + pub message: MessageView, 113 + pub reaction: ReactionView, 114 + } 115 + pub type MessageAndReactionView = atrium_api::types::Object<MessageAndReactionViewData>; 116 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 117 + #[serde(rename_all = "camelCase")] 118 + pub struct MessageInputData { 119 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 120 + pub embed: core::option::Option<atrium_api::types::Union<MessageInputEmbedRefs>>, 121 + ///Annotations of text (mentions, URLs, hashtags, etc) 122 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 123 + pub facets: core::option::Option<Vec<crate::app::bsky::richtext::facet::Main>>, 124 + pub text: String, 125 + } 126 + pub type MessageInput = atrium_api::types::Object<MessageInputData>; 127 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 128 + #[serde(rename_all = "camelCase")] 129 + pub struct MessageRefData { 130 + pub convo_id: String, 131 + pub did: atrium_api::types::string::Did, 132 + pub message_id: String, 133 + } 134 + pub type MessageRef = atrium_api::types::Object<MessageRefData>; 135 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 136 + #[serde(rename_all = "camelCase")] 137 + pub struct MessageViewData { 138 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 139 + pub embed: core::option::Option<atrium_api::types::Union<MessageViewEmbedRefs>>, 140 + ///Annotations of text (mentions, URLs, hashtags, etc) 141 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 142 + pub facets: core::option::Option<Vec<crate::app::bsky::richtext::facet::Main>>, 143 + pub id: String, 144 + ///Reactions to this message, in ascending order of creation time. 145 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 146 + pub reactions: core::option::Option<Vec<ReactionView>>, 147 + pub rev: String, 148 + pub sender: MessageViewSender, 149 + pub sent_at: atrium_api::types::string::Datetime, 150 + pub text: String, 151 + } 152 + pub type MessageView = atrium_api::types::Object<MessageViewData>; 153 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 154 + #[serde(rename_all = "camelCase")] 155 + pub struct MessageViewSenderData { 156 + pub did: atrium_api::types::string::Did, 157 + } 158 + pub type MessageViewSender = atrium_api::types::Object<MessageViewSenderData>; 159 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 160 + #[serde(rename_all = "camelCase")] 161 + pub struct ReactionViewData { 162 + pub created_at: atrium_api::types::string::Datetime, 163 + pub sender: ReactionViewSender, 164 + pub value: String, 165 + } 166 + pub type ReactionView = atrium_api::types::Object<ReactionViewData>; 167 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 168 + #[serde(rename_all = "camelCase")] 169 + pub struct ReactionViewSenderData { 170 + pub did: atrium_api::types::string::Did, 171 + } 172 + pub type ReactionViewSender = atrium_api::types::Object<ReactionViewSenderData>; 173 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 174 + #[serde(tag = "$type")] 175 + pub enum ConvoViewLastMessageRefs { 176 + #[serde(rename = "chat.bsky.convo.defs#messageView")] 177 + MessageView(Box<MessageView>), 178 + #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")] 179 + DeletedMessageView(Box<DeletedMessageView>), 180 + } 181 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 182 + #[serde(tag = "$type")] 183 + pub enum ConvoViewLastReactionRefs { 184 + #[serde(rename = "chat.bsky.convo.defs#messageAndReactionView")] 185 + MessageAndReactionView(Box<MessageAndReactionView>), 186 + } 187 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 188 + #[serde(tag = "$type")] 189 + pub enum LogAddReactionMessageRefs { 190 + #[serde(rename = "chat.bsky.convo.defs#messageView")] 191 + MessageView(Box<MessageView>), 192 + #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")] 193 + DeletedMessageView(Box<DeletedMessageView>), 194 + } 195 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 196 + #[serde(tag = "$type")] 197 + pub enum LogCreateMessageMessageRefs { 198 + #[serde(rename = "chat.bsky.convo.defs#messageView")] 199 + MessageView(Box<MessageView>), 200 + #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")] 201 + DeletedMessageView(Box<DeletedMessageView>), 202 + } 203 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 204 + #[serde(tag = "$type")] 205 + pub enum LogDeleteMessageMessageRefs { 206 + #[serde(rename = "chat.bsky.convo.defs#messageView")] 207 + MessageView(Box<MessageView>), 208 + #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")] 209 + DeletedMessageView(Box<DeletedMessageView>), 210 + } 211 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 212 + #[serde(tag = "$type")] 213 + pub enum LogReadMessageMessageRefs { 214 + #[serde(rename = "chat.bsky.convo.defs#messageView")] 215 + MessageView(Box<MessageView>), 216 + #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")] 217 + DeletedMessageView(Box<DeletedMessageView>), 218 + } 219 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 220 + #[serde(tag = "$type")] 221 + pub enum LogRemoveReactionMessageRefs { 222 + #[serde(rename = "chat.bsky.convo.defs#messageView")] 223 + MessageView(Box<MessageView>), 224 + #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")] 225 + DeletedMessageView(Box<DeletedMessageView>), 226 + } 227 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 228 + #[serde(tag = "$type")] 229 + pub enum MessageInputEmbedRefs { 230 + #[serde(rename = "app.bsky.embed.record")] 231 + AppBskyEmbedRecordMain(Box<crate::app::bsky::embed::record::Main>), 232 + } 233 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 234 + #[serde(tag = "$type")] 235 + pub enum MessageViewEmbedRefs { 236 + #[serde(rename = "app.bsky.embed.record#view")] 237 + AppBskyEmbedRecordView(Box<crate::app::bsky::embed::record::View>), 238 + }
+19
crates/weaver-common/src/lexicons/chat/bsky/convo/delete_message_for_self.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.deleteMessageForSelf` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.deleteMessageForSelf"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + pub message_id: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + pub type Output = crate::chat::bsky::convo::defs::DeletedMessageView; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error {} 15 + impl std::fmt::Display for Error { 16 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 17 + Ok(()) 18 + } 19 + }
+23
crates/weaver-common/src/lexicons/chat/bsky/convo/get_convo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.getConvo` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.getConvo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub convo_id: String, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub convo: crate::chat::bsky::convo::defs::ConvoView, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+25
crates/weaver-common/src/lexicons/chat/bsky/convo/get_convo_availability.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.getConvoAvailability` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.getConvoAvailability"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub members: Vec<atrium_api::types::string::Did>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub can_chat: bool, 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub convo: core::option::Option<crate::chat::bsky::convo::defs::ConvoView>, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + }
+23
crates/weaver-common/src/lexicons/chat/bsky/convo/get_convo_for_members.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.getConvoForMembers` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.getConvoForMembers"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub members: Vec<atrium_api::types::string::Did>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub convo: crate::chat::bsky::convo::defs::ConvoView, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+56
crates/weaver-common/src/lexicons/chat/bsky/convo/get_log.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.getLog` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.getLog"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub cursor: core::option::Option<String>, 16 + pub logs: Vec<atrium_api::types::Union<OutputLogsItem>>, 17 + } 18 + pub type Output = atrium_api::types::Object<OutputData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(tag = "error", content = "message")] 21 + pub enum Error {} 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + Ok(()) 25 + } 26 + } 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(tag = "$type")] 29 + pub enum OutputLogsItem { 30 + #[serde(rename = "chat.bsky.convo.defs#logBeginConvo")] 31 + ChatBskyConvoDefsLogBeginConvo(Box<crate::chat::bsky::convo::defs::LogBeginConvo>), 32 + #[serde(rename = "chat.bsky.convo.defs#logAcceptConvo")] 33 + ChatBskyConvoDefsLogAcceptConvo(Box<crate::chat::bsky::convo::defs::LogAcceptConvo>), 34 + #[serde(rename = "chat.bsky.convo.defs#logLeaveConvo")] 35 + ChatBskyConvoDefsLogLeaveConvo(Box<crate::chat::bsky::convo::defs::LogLeaveConvo>), 36 + #[serde(rename = "chat.bsky.convo.defs#logMuteConvo")] 37 + ChatBskyConvoDefsLogMuteConvo(Box<crate::chat::bsky::convo::defs::LogMuteConvo>), 38 + #[serde(rename = "chat.bsky.convo.defs#logUnmuteConvo")] 39 + ChatBskyConvoDefsLogUnmuteConvo(Box<crate::chat::bsky::convo::defs::LogUnmuteConvo>), 40 + #[serde(rename = "chat.bsky.convo.defs#logCreateMessage")] 41 + ChatBskyConvoDefsLogCreateMessage( 42 + Box<crate::chat::bsky::convo::defs::LogCreateMessage>, 43 + ), 44 + #[serde(rename = "chat.bsky.convo.defs#logDeleteMessage")] 45 + ChatBskyConvoDefsLogDeleteMessage( 46 + Box<crate::chat::bsky::convo::defs::LogDeleteMessage>, 47 + ), 48 + #[serde(rename = "chat.bsky.convo.defs#logReadMessage")] 49 + ChatBskyConvoDefsLogReadMessage(Box<crate::chat::bsky::convo::defs::LogReadMessage>), 50 + #[serde(rename = "chat.bsky.convo.defs#logAddReaction")] 51 + ChatBskyConvoDefsLogAddReaction(Box<crate::chat::bsky::convo::defs::LogAddReaction>), 52 + #[serde(rename = "chat.bsky.convo.defs#logRemoveReaction")] 53 + ChatBskyConvoDefsLogRemoveReaction( 54 + Box<crate::chat::bsky::convo::defs::LogRemoveReaction>, 55 + ), 56 + }
+39
crates/weaver-common/src/lexicons/chat/bsky/convo/get_messages.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.getMessages` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.getMessages"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub convo_id: String, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub messages: Vec<atrium_api::types::Union<OutputMessagesItem>>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + } 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(tag = "$type")] 32 + pub enum OutputMessagesItem { 33 + #[serde(rename = "chat.bsky.convo.defs#messageView")] 34 + ChatBskyConvoDefsMessageView(Box<crate::chat::bsky::convo::defs::MessageView>), 35 + #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")] 36 + ChatBskyConvoDefsDeletedMessageView( 37 + Box<crate::chat::bsky::convo::defs::DeletedMessageView>, 38 + ), 39 + }
+24
crates/weaver-common/src/lexicons/chat/bsky/convo/leave_convo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.leaveConvo` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.leaveConvo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub convo_id: String, 14 + pub rev: String, 15 + } 16 + pub type Output = atrium_api::types::Object<OutputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(tag = "error", content = "message")] 19 + pub enum Error {} 20 + impl std::fmt::Display for Error { 21 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 22 + Ok(()) 23 + } 24 + }
+32
crates/weaver-common/src/lexicons/chat/bsky/convo/list_convos.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.listConvos` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.listConvos"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub read_state: core::option::Option<String>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub status: core::option::Option<String>, 15 + } 16 + pub type Parameters = atrium_api::types::Object<ParametersData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct OutputData { 20 + pub convos: Vec<crate::chat::bsky::convo::defs::ConvoView>, 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub cursor: core::option::Option<String>, 23 + } 24 + pub type Output = atrium_api::types::Object<OutputData>; 25 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 + #[serde(tag = "error", content = "message")] 27 + pub enum Error {} 28 + impl std::fmt::Display for Error { 29 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 30 + Ok(()) 31 + } 32 + }
+23
crates/weaver-common/src/lexicons/chat/bsky/convo/mute_convo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.muteConvo` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.muteConvo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub convo: crate::chat::bsky::convo::defs::ConvoView, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+44
crates/weaver-common/src/lexicons/chat/bsky/convo/remove_reaction.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.removeReaction` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.removeReaction"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + pub message_id: String, 9 + pub value: String, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(rename_all = "camelCase")] 14 + pub struct OutputData { 15 + pub message: crate::chat::bsky::convo::defs::MessageView, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error { 21 + ///Indicates that the message has been deleted and reactions can no longer be added/removed. 22 + ReactionMessageDeleted(Option<String>), 23 + ///Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji. 24 + ReactionInvalidValue(Option<String>), 25 + } 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + match self { 29 + Error::ReactionMessageDeleted(msg) => { 30 + write!(_f, "ReactionMessageDeleted")?; 31 + if let Some(msg) = msg { 32 + write!(_f, ": {msg}")?; 33 + } 34 + } 35 + Error::ReactionInvalidValue(msg) => { 36 + write!(_f, "ReactionInvalidValue")?; 37 + if let Some(msg) = msg { 38 + write!(_f, ": {msg}")?; 39 + } 40 + } 41 + } 42 + Ok(()) 43 + } 44 + }
+19
crates/weaver-common/src/lexicons/chat/bsky/convo/send_message.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.sendMessage` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.sendMessage"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + pub message: crate::chat::bsky::convo::defs::MessageInput, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + pub type Output = crate::chat::bsky::convo::defs::MessageView; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error {} 15 + impl std::fmt::Display for Error { 16 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 17 + Ok(()) 18 + } 19 + }
+30
crates/weaver-common/src/lexicons/chat/bsky/convo/send_message_batch.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.sendMessageBatch` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.sendMessageBatch"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub items: Vec<BatchItem>, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub items: Vec<crate::chat::bsky::convo::defs::MessageView>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + } 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(rename_all = "camelCase")] 26 + pub struct BatchItemData { 27 + pub convo_id: String, 28 + pub message: crate::chat::bsky::convo::defs::MessageInput, 29 + } 30 + pub type BatchItem = atrium_api::types::Object<BatchItemData>;
+23
crates/weaver-common/src/lexicons/chat/bsky/convo/unmute_convo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.unmuteConvo` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.unmuteConvo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub convo: crate::chat::bsky::convo::defs::ConvoView, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+25
crates/weaver-common/src/lexicons/chat/bsky/convo/update_all_read.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.updateAllRead` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.updateAllRead"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub status: core::option::Option<String>, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + ///The count of updated convos. 15 + pub updated_count: i64, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + }
+25
crates/weaver-common/src/lexicons/chat/bsky/convo/update_read.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.convo.updateRead` namespace. 3 + pub const NSID: &str = "chat.bsky.convo.updateRead"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub convo_id: String, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub message_id: core::option::Option<String>, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(rename_all = "camelCase")] 14 + pub struct OutputData { 15 + pub convo: crate::chat::bsky::convo::defs::ConvoView, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + }
+5
crates/weaver-common/src/lexicons/chat/bsky/moderation.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.moderation` namespace. 3 + pub mod get_actor_metadata; 4 + pub mod get_message_context; 5 + pub mod update_actor_access;
+34
crates/weaver-common/src/lexicons/chat/bsky/moderation/get_actor_metadata.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.moderation.getActorMetadata` namespace. 3 + pub const NSID: &str = "chat.bsky.moderation.getActorMetadata"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub actor: atrium_api::types::string::Did, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub all: Metadata, 14 + pub day: Metadata, 15 + pub month: Metadata, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + } 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(rename_all = "camelCase")] 28 + pub struct MetadataData { 29 + pub convos: i64, 30 + pub convos_started: i64, 31 + pub messages_received: i64, 32 + pub messages_sent: i64, 33 + } 34 + pub type Metadata = atrium_api::types::Object<MetadataData>;
+40
crates/weaver-common/src/lexicons/chat/bsky/moderation/get_message_context.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.moderation.getMessageContext` namespace. 3 + pub const NSID: &str = "chat.bsky.moderation.getMessageContext"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub after: core::option::Option<i64>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub before: core::option::Option<i64>, 11 + ///Conversation that the message is from. NOTE: this field will eventually be required. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub convo_id: core::option::Option<String>, 14 + pub message_id: String, 15 + } 16 + pub type Parameters = atrium_api::types::Object<ParametersData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct OutputData { 20 + pub messages: Vec<atrium_api::types::Union<OutputMessagesItem>>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + } 31 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 32 + #[serde(tag = "$type")] 33 + pub enum OutputMessagesItem { 34 + #[serde(rename = "chat.bsky.convo.defs#messageView")] 35 + ChatBskyConvoDefsMessageView(Box<crate::chat::bsky::convo::defs::MessageView>), 36 + #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")] 37 + ChatBskyConvoDefsDeletedMessageView( 38 + Box<crate::chat::bsky::convo::defs::DeletedMessageView>, 39 + ), 40 + }
+20
crates/weaver-common/src/lexicons/chat/bsky/moderation/update_actor_access.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `chat.bsky.moderation.updateActorAccess` namespace. 3 + pub const NSID: &str = "chat.bsky.moderation.updateActorAccess"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub actor: atrium_api::types::string::Did, 8 + pub allow_access: bool, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub r#ref: core::option::Option<String>, 11 + } 12 + pub type Input = atrium_api::types::Object<InputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error {} 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + Ok(()) 19 + } 20 + }
+7022
crates/weaver-common/src/lexicons/client.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Structs for ATP client, implements all HTTP APIs of XRPC. 3 + ///Client struct for the ATP service. 4 + pub struct AtpServiceClient<T> 5 + where 6 + T: atrium_xrpc::XrpcClient + Send + Sync, 7 + { 8 + pub service: Service<T>, 9 + } 10 + impl<T> AtpServiceClient<T> 11 + where 12 + T: atrium_xrpc::XrpcClient + Send + Sync, 13 + { 14 + pub fn new(xrpc: T) -> Self { 15 + Self { 16 + service: Service::new(std::sync::Arc::new(xrpc)), 17 + } 18 + } 19 + } 20 + pub struct Service<T> 21 + where 22 + T: atrium_xrpc::XrpcClient + Send + Sync, 23 + { 24 + pub app: app::Service<T>, 25 + pub chat: chat::Service<T>, 26 + pub com: com::Service<T>, 27 + pub tools: tools::Service<T>, 28 + pub(crate) _phantom: core::marker::PhantomData<T>, 29 + } 30 + pub mod app { 31 + pub struct Service<T> 32 + where 33 + T: atrium_xrpc::XrpcClient + Send + Sync, 34 + { 35 + pub bsky: bsky::Service<T>, 36 + pub(crate) _phantom: core::marker::PhantomData<T>, 37 + } 38 + pub mod bsky { 39 + pub struct Service<T> 40 + where 41 + T: atrium_xrpc::XrpcClient + Send + Sync, 42 + { 43 + pub actor: actor::Service<T>, 44 + pub feed: feed::Service<T>, 45 + pub graph: graph::Service<T>, 46 + pub labeler: labeler::Service<T>, 47 + pub notification: notification::Service<T>, 48 + pub unspecced: unspecced::Service<T>, 49 + pub video: video::Service<T>, 50 + pub(crate) _phantom: core::marker::PhantomData<T>, 51 + } 52 + pub mod actor { 53 + pub struct Service<T> 54 + where 55 + T: atrium_xrpc::XrpcClient + Send + Sync, 56 + { 57 + pub(crate) xrpc: std::sync::Arc<T>, 58 + pub(crate) _phantom: core::marker::PhantomData<T>, 59 + } 60 + } 61 + pub mod feed { 62 + pub struct Service<T> 63 + where 64 + T: atrium_xrpc::XrpcClient + Send + Sync, 65 + { 66 + pub(crate) xrpc: std::sync::Arc<T>, 67 + pub(crate) _phantom: core::marker::PhantomData<T>, 68 + } 69 + } 70 + pub mod graph { 71 + pub struct Service<T> 72 + where 73 + T: atrium_xrpc::XrpcClient + Send + Sync, 74 + { 75 + pub(crate) xrpc: std::sync::Arc<T>, 76 + pub(crate) _phantom: core::marker::PhantomData<T>, 77 + } 78 + } 79 + pub mod labeler { 80 + pub struct Service<T> 81 + where 82 + T: atrium_xrpc::XrpcClient + Send + Sync, 83 + { 84 + pub(crate) xrpc: std::sync::Arc<T>, 85 + pub(crate) _phantom: core::marker::PhantomData<T>, 86 + } 87 + } 88 + pub mod notification { 89 + pub struct Service<T> 90 + where 91 + T: atrium_xrpc::XrpcClient + Send + Sync, 92 + { 93 + pub(crate) xrpc: std::sync::Arc<T>, 94 + pub(crate) _phantom: core::marker::PhantomData<T>, 95 + } 96 + } 97 + pub mod unspecced { 98 + pub struct Service<T> 99 + where 100 + T: atrium_xrpc::XrpcClient + Send + Sync, 101 + { 102 + pub(crate) xrpc: std::sync::Arc<T>, 103 + pub(crate) _phantom: core::marker::PhantomData<T>, 104 + } 105 + } 106 + pub mod video { 107 + pub struct Service<T> 108 + where 109 + T: atrium_xrpc::XrpcClient + Send + Sync, 110 + { 111 + pub(crate) xrpc: std::sync::Arc<T>, 112 + pub(crate) _phantom: core::marker::PhantomData<T>, 113 + } 114 + } 115 + } 116 + } 117 + pub mod chat { 118 + pub struct Service<T> 119 + where 120 + T: atrium_xrpc::XrpcClient + Send + Sync, 121 + { 122 + pub bsky: bsky::Service<T>, 123 + pub(crate) _phantom: core::marker::PhantomData<T>, 124 + } 125 + pub mod bsky { 126 + pub struct Service<T> 127 + where 128 + T: atrium_xrpc::XrpcClient + Send + Sync, 129 + { 130 + pub actor: actor::Service<T>, 131 + pub convo: convo::Service<T>, 132 + pub moderation: moderation::Service<T>, 133 + pub(crate) _phantom: core::marker::PhantomData<T>, 134 + } 135 + pub mod actor { 136 + pub struct Service<T> 137 + where 138 + T: atrium_xrpc::XrpcClient + Send + Sync, 139 + { 140 + pub(crate) xrpc: std::sync::Arc<T>, 141 + pub(crate) _phantom: core::marker::PhantomData<T>, 142 + } 143 + } 144 + pub mod convo { 145 + pub struct Service<T> 146 + where 147 + T: atrium_xrpc::XrpcClient + Send + Sync, 148 + { 149 + pub(crate) xrpc: std::sync::Arc<T>, 150 + pub(crate) _phantom: core::marker::PhantomData<T>, 151 + } 152 + } 153 + pub mod moderation { 154 + pub struct Service<T> 155 + where 156 + T: atrium_xrpc::XrpcClient + Send + Sync, 157 + { 158 + pub(crate) xrpc: std::sync::Arc<T>, 159 + pub(crate) _phantom: core::marker::PhantomData<T>, 160 + } 161 + } 162 + } 163 + } 164 + pub mod com { 165 + pub struct Service<T> 166 + where 167 + T: atrium_xrpc::XrpcClient + Send + Sync, 168 + { 169 + pub atproto: atproto::Service<T>, 170 + pub(crate) _phantom: core::marker::PhantomData<T>, 171 + } 172 + pub mod atproto { 173 + pub struct Service<T> 174 + where 175 + T: atrium_xrpc::XrpcClient + Send + Sync, 176 + { 177 + pub admin: admin::Service<T>, 178 + pub identity: identity::Service<T>, 179 + pub label: label::Service<T>, 180 + pub moderation: moderation::Service<T>, 181 + pub repo: repo::Service<T>, 182 + pub server: server::Service<T>, 183 + pub sync: sync::Service<T>, 184 + pub temp: temp::Service<T>, 185 + pub(crate) _phantom: core::marker::PhantomData<T>, 186 + } 187 + pub mod admin { 188 + pub struct Service<T> 189 + where 190 + T: atrium_xrpc::XrpcClient + Send + Sync, 191 + { 192 + pub(crate) xrpc: std::sync::Arc<T>, 193 + pub(crate) _phantom: core::marker::PhantomData<T>, 194 + } 195 + } 196 + pub mod identity { 197 + pub struct Service<T> 198 + where 199 + T: atrium_xrpc::XrpcClient + Send + Sync, 200 + { 201 + pub(crate) xrpc: std::sync::Arc<T>, 202 + pub(crate) _phantom: core::marker::PhantomData<T>, 203 + } 204 + } 205 + pub mod label { 206 + pub struct Service<T> 207 + where 208 + T: atrium_xrpc::XrpcClient + Send + Sync, 209 + { 210 + pub(crate) xrpc: std::sync::Arc<T>, 211 + pub(crate) _phantom: core::marker::PhantomData<T>, 212 + } 213 + } 214 + pub mod moderation { 215 + pub struct Service<T> 216 + where 217 + T: atrium_xrpc::XrpcClient + Send + Sync, 218 + { 219 + pub(crate) xrpc: std::sync::Arc<T>, 220 + pub(crate) _phantom: core::marker::PhantomData<T>, 221 + } 222 + } 223 + pub mod repo { 224 + pub struct Service<T> 225 + where 226 + T: atrium_xrpc::XrpcClient + Send + Sync, 227 + { 228 + pub(crate) xrpc: std::sync::Arc<T>, 229 + pub(crate) _phantom: core::marker::PhantomData<T>, 230 + } 231 + } 232 + pub mod server { 233 + pub struct Service<T> 234 + where 235 + T: atrium_xrpc::XrpcClient + Send + Sync, 236 + { 237 + pub(crate) xrpc: std::sync::Arc<T>, 238 + pub(crate) _phantom: core::marker::PhantomData<T>, 239 + } 240 + } 241 + pub mod sync { 242 + pub struct Service<T> 243 + where 244 + T: atrium_xrpc::XrpcClient + Send + Sync, 245 + { 246 + pub(crate) xrpc: std::sync::Arc<T>, 247 + pub(crate) _phantom: core::marker::PhantomData<T>, 248 + } 249 + } 250 + pub mod temp { 251 + pub struct Service<T> 252 + where 253 + T: atrium_xrpc::XrpcClient + Send + Sync, 254 + { 255 + pub(crate) xrpc: std::sync::Arc<T>, 256 + pub(crate) _phantom: core::marker::PhantomData<T>, 257 + } 258 + } 259 + } 260 + } 261 + pub mod tools { 262 + pub struct Service<T> 263 + where 264 + T: atrium_xrpc::XrpcClient + Send + Sync, 265 + { 266 + pub ozone: ozone::Service<T>, 267 + pub(crate) _phantom: core::marker::PhantomData<T>, 268 + } 269 + pub mod ozone { 270 + pub struct Service<T> 271 + where 272 + T: atrium_xrpc::XrpcClient + Send + Sync, 273 + { 274 + pub communication: communication::Service<T>, 275 + pub hosting: hosting::Service<T>, 276 + pub moderation: moderation::Service<T>, 277 + pub server: server::Service<T>, 278 + pub set: set::Service<T>, 279 + pub setting: setting::Service<T>, 280 + pub signature: signature::Service<T>, 281 + pub team: team::Service<T>, 282 + pub verification: verification::Service<T>, 283 + pub(crate) _phantom: core::marker::PhantomData<T>, 284 + } 285 + pub mod communication { 286 + pub struct Service<T> 287 + where 288 + T: atrium_xrpc::XrpcClient + Send + Sync, 289 + { 290 + pub(crate) xrpc: std::sync::Arc<T>, 291 + pub(crate) _phantom: core::marker::PhantomData<T>, 292 + } 293 + } 294 + pub mod hosting { 295 + pub struct Service<T> 296 + where 297 + T: atrium_xrpc::XrpcClient + Send + Sync, 298 + { 299 + pub(crate) xrpc: std::sync::Arc<T>, 300 + pub(crate) _phantom: core::marker::PhantomData<T>, 301 + } 302 + } 303 + pub mod moderation { 304 + pub struct Service<T> 305 + where 306 + T: atrium_xrpc::XrpcClient + Send + Sync, 307 + { 308 + pub(crate) xrpc: std::sync::Arc<T>, 309 + pub(crate) _phantom: core::marker::PhantomData<T>, 310 + } 311 + } 312 + pub mod server { 313 + pub struct Service<T> 314 + where 315 + T: atrium_xrpc::XrpcClient + Send + Sync, 316 + { 317 + pub(crate) xrpc: std::sync::Arc<T>, 318 + pub(crate) _phantom: core::marker::PhantomData<T>, 319 + } 320 + } 321 + pub mod set { 322 + pub struct Service<T> 323 + where 324 + T: atrium_xrpc::XrpcClient + Send + Sync, 325 + { 326 + pub(crate) xrpc: std::sync::Arc<T>, 327 + pub(crate) _phantom: core::marker::PhantomData<T>, 328 + } 329 + } 330 + pub mod setting { 331 + pub struct Service<T> 332 + where 333 + T: atrium_xrpc::XrpcClient + Send + Sync, 334 + { 335 + pub(crate) xrpc: std::sync::Arc<T>, 336 + pub(crate) _phantom: core::marker::PhantomData<T>, 337 + } 338 + } 339 + pub mod signature { 340 + pub struct Service<T> 341 + where 342 + T: atrium_xrpc::XrpcClient + Send + Sync, 343 + { 344 + pub(crate) xrpc: std::sync::Arc<T>, 345 + pub(crate) _phantom: core::marker::PhantomData<T>, 346 + } 347 + } 348 + pub mod team { 349 + pub struct Service<T> 350 + where 351 + T: atrium_xrpc::XrpcClient + Send + Sync, 352 + { 353 + pub(crate) xrpc: std::sync::Arc<T>, 354 + pub(crate) _phantom: core::marker::PhantomData<T>, 355 + } 356 + } 357 + pub mod verification { 358 + pub struct Service<T> 359 + where 360 + T: atrium_xrpc::XrpcClient + Send + Sync, 361 + { 362 + pub(crate) xrpc: std::sync::Arc<T>, 363 + pub(crate) _phantom: core::marker::PhantomData<T>, 364 + } 365 + } 366 + } 367 + } 368 + impl<T> self::Service<T> 369 + where 370 + T: atrium_xrpc::XrpcClient + Send + Sync, 371 + { 372 + #[allow(unused_variables)] 373 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 374 + Self { 375 + app: app::Service::new(std::sync::Arc::clone(&xrpc)), 376 + chat: chat::Service::new(std::sync::Arc::clone(&xrpc)), 377 + com: com::Service::new(std::sync::Arc::clone(&xrpc)), 378 + tools: tools::Service::new(std::sync::Arc::clone(&xrpc)), 379 + _phantom: core::marker::PhantomData, 380 + } 381 + } 382 + } 383 + impl<T> app::Service<T> 384 + where 385 + T: atrium_xrpc::XrpcClient + Send + Sync, 386 + { 387 + #[allow(unused_variables)] 388 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 389 + Self { 390 + bsky: app::bsky::Service::new(std::sync::Arc::clone(&xrpc)), 391 + _phantom: core::marker::PhantomData, 392 + } 393 + } 394 + } 395 + impl<T> app::bsky::Service<T> 396 + where 397 + T: atrium_xrpc::XrpcClient + Send + Sync, 398 + { 399 + #[allow(unused_variables)] 400 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 401 + Self { 402 + actor: app::bsky::actor::Service::new(std::sync::Arc::clone(&xrpc)), 403 + feed: app::bsky::feed::Service::new(std::sync::Arc::clone(&xrpc)), 404 + graph: app::bsky::graph::Service::new(std::sync::Arc::clone(&xrpc)), 405 + labeler: app::bsky::labeler::Service::new(std::sync::Arc::clone(&xrpc)), 406 + notification: app::bsky::notification::Service::new( 407 + std::sync::Arc::clone(&xrpc), 408 + ), 409 + unspecced: app::bsky::unspecced::Service::new(std::sync::Arc::clone(&xrpc)), 410 + video: app::bsky::video::Service::new(std::sync::Arc::clone(&xrpc)), 411 + _phantom: core::marker::PhantomData, 412 + } 413 + } 414 + } 415 + impl<T> app::bsky::actor::Service<T> 416 + where 417 + T: atrium_xrpc::XrpcClient + Send + Sync, 418 + { 419 + #[allow(unused_variables)] 420 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 421 + Self { 422 + xrpc, 423 + _phantom: core::marker::PhantomData, 424 + } 425 + } 426 + ///Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth. 427 + pub async fn get_preferences( 428 + &self, 429 + params: crate::app::bsky::actor::get_preferences::Parameters, 430 + ) -> atrium_xrpc::Result< 431 + crate::app::bsky::actor::get_preferences::Output, 432 + crate::app::bsky::actor::get_preferences::Error, 433 + > { 434 + let response = self 435 + .xrpc 436 + .send_xrpc::< 437 + _, 438 + (), 439 + _, 440 + _, 441 + >( 442 + &atrium_xrpc::XrpcRequest { 443 + method: http::Method::GET, 444 + nsid: crate::app::bsky::actor::get_preferences::NSID.into(), 445 + parameters: Some(params), 446 + input: None, 447 + encoding: None, 448 + }, 449 + ) 450 + .await?; 451 + match response { 452 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 453 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 454 + } 455 + } 456 + ///Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth. 457 + pub async fn get_profile( 458 + &self, 459 + params: crate::app::bsky::actor::get_profile::Parameters, 460 + ) -> atrium_xrpc::Result< 461 + crate::app::bsky::actor::get_profile::Output, 462 + crate::app::bsky::actor::get_profile::Error, 463 + > { 464 + let response = self 465 + .xrpc 466 + .send_xrpc::< 467 + _, 468 + (), 469 + _, 470 + _, 471 + >( 472 + &atrium_xrpc::XrpcRequest { 473 + method: http::Method::GET, 474 + nsid: crate::app::bsky::actor::get_profile::NSID.into(), 475 + parameters: Some(params), 476 + input: None, 477 + encoding: None, 478 + }, 479 + ) 480 + .await?; 481 + match response { 482 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 483 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 484 + } 485 + } 486 + ///Get detailed profile views of multiple actors. 487 + pub async fn get_profiles( 488 + &self, 489 + params: crate::app::bsky::actor::get_profiles::Parameters, 490 + ) -> atrium_xrpc::Result< 491 + crate::app::bsky::actor::get_profiles::Output, 492 + crate::app::bsky::actor::get_profiles::Error, 493 + > { 494 + let response = self 495 + .xrpc 496 + .send_xrpc::< 497 + _, 498 + (), 499 + _, 500 + _, 501 + >( 502 + &atrium_xrpc::XrpcRequest { 503 + method: http::Method::GET, 504 + nsid: crate::app::bsky::actor::get_profiles::NSID.into(), 505 + parameters: Some(params), 506 + input: None, 507 + encoding: None, 508 + }, 509 + ) 510 + .await?; 511 + match response { 512 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 513 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 514 + } 515 + } 516 + ///Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding. 517 + pub async fn get_suggestions( 518 + &self, 519 + params: crate::app::bsky::actor::get_suggestions::Parameters, 520 + ) -> atrium_xrpc::Result< 521 + crate::app::bsky::actor::get_suggestions::Output, 522 + crate::app::bsky::actor::get_suggestions::Error, 523 + > { 524 + let response = self 525 + .xrpc 526 + .send_xrpc::< 527 + _, 528 + (), 529 + _, 530 + _, 531 + >( 532 + &atrium_xrpc::XrpcRequest { 533 + method: http::Method::GET, 534 + nsid: crate::app::bsky::actor::get_suggestions::NSID.into(), 535 + parameters: Some(params), 536 + input: None, 537 + encoding: None, 538 + }, 539 + ) 540 + .await?; 541 + match response { 542 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 543 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 544 + } 545 + } 546 + ///Set the private preferences attached to the account. 547 + pub async fn put_preferences( 548 + &self, 549 + input: crate::app::bsky::actor::put_preferences::Input, 550 + ) -> atrium_xrpc::Result<(), crate::app::bsky::actor::put_preferences::Error> { 551 + let response = self 552 + .xrpc 553 + .send_xrpc::< 554 + (), 555 + _, 556 + (), 557 + _, 558 + >( 559 + &atrium_xrpc::XrpcRequest { 560 + method: http::Method::POST, 561 + nsid: crate::app::bsky::actor::put_preferences::NSID.into(), 562 + parameters: None, 563 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 564 + encoding: Some(String::from("application/json")), 565 + }, 566 + ) 567 + .await?; 568 + match response { 569 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 570 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 571 + } 572 + } 573 + ///Find actors (profiles) matching search criteria. Does not require auth. 574 + pub async fn search_actors( 575 + &self, 576 + params: crate::app::bsky::actor::search_actors::Parameters, 577 + ) -> atrium_xrpc::Result< 578 + crate::app::bsky::actor::search_actors::Output, 579 + crate::app::bsky::actor::search_actors::Error, 580 + > { 581 + let response = self 582 + .xrpc 583 + .send_xrpc::< 584 + _, 585 + (), 586 + _, 587 + _, 588 + >( 589 + &atrium_xrpc::XrpcRequest { 590 + method: http::Method::GET, 591 + nsid: crate::app::bsky::actor::search_actors::NSID.into(), 592 + parameters: Some(params), 593 + input: None, 594 + encoding: None, 595 + }, 596 + ) 597 + .await?; 598 + match response { 599 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 600 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 601 + } 602 + } 603 + ///Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth. 604 + pub async fn search_actors_typeahead( 605 + &self, 606 + params: crate::app::bsky::actor::search_actors_typeahead::Parameters, 607 + ) -> atrium_xrpc::Result< 608 + crate::app::bsky::actor::search_actors_typeahead::Output, 609 + crate::app::bsky::actor::search_actors_typeahead::Error, 610 + > { 611 + let response = self 612 + .xrpc 613 + .send_xrpc::< 614 + _, 615 + (), 616 + _, 617 + _, 618 + >( 619 + &atrium_xrpc::XrpcRequest { 620 + method: http::Method::GET, 621 + nsid: crate::app::bsky::actor::search_actors_typeahead::NSID.into(), 622 + parameters: Some(params), 623 + input: None, 624 + encoding: None, 625 + }, 626 + ) 627 + .await?; 628 + match response { 629 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 630 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 631 + } 632 + } 633 + } 634 + impl<T> app::bsky::feed::Service<T> 635 + where 636 + T: atrium_xrpc::XrpcClient + Send + Sync, 637 + { 638 + #[allow(unused_variables)] 639 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 640 + Self { 641 + xrpc, 642 + _phantom: core::marker::PhantomData, 643 + } 644 + } 645 + ///Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View). 646 + pub async fn describe_feed_generator( 647 + &self, 648 + ) -> atrium_xrpc::Result< 649 + crate::app::bsky::feed::describe_feed_generator::Output, 650 + crate::app::bsky::feed::describe_feed_generator::Error, 651 + > { 652 + let response = self 653 + .xrpc 654 + .send_xrpc::< 655 + (), 656 + (), 657 + _, 658 + _, 659 + >( 660 + &atrium_xrpc::XrpcRequest { 661 + method: http::Method::GET, 662 + nsid: crate::app::bsky::feed::describe_feed_generator::NSID.into(), 663 + parameters: None, 664 + input: None, 665 + encoding: None, 666 + }, 667 + ) 668 + .await?; 669 + match response { 670 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 671 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 672 + } 673 + } 674 + ///Get a list of feeds (feed generator records) created by the actor (in the actor's repo). 675 + pub async fn get_actor_feeds( 676 + &self, 677 + params: crate::app::bsky::feed::get_actor_feeds::Parameters, 678 + ) -> atrium_xrpc::Result< 679 + crate::app::bsky::feed::get_actor_feeds::Output, 680 + crate::app::bsky::feed::get_actor_feeds::Error, 681 + > { 682 + let response = self 683 + .xrpc 684 + .send_xrpc::< 685 + _, 686 + (), 687 + _, 688 + _, 689 + >( 690 + &atrium_xrpc::XrpcRequest { 691 + method: http::Method::GET, 692 + nsid: crate::app::bsky::feed::get_actor_feeds::NSID.into(), 693 + parameters: Some(params), 694 + input: None, 695 + encoding: None, 696 + }, 697 + ) 698 + .await?; 699 + match response { 700 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 701 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 702 + } 703 + } 704 + ///Get a list of posts liked by an actor. Requires auth, actor must be the requesting account. 705 + pub async fn get_actor_likes( 706 + &self, 707 + params: crate::app::bsky::feed::get_actor_likes::Parameters, 708 + ) -> atrium_xrpc::Result< 709 + crate::app::bsky::feed::get_actor_likes::Output, 710 + crate::app::bsky::feed::get_actor_likes::Error, 711 + > { 712 + let response = self 713 + .xrpc 714 + .send_xrpc::< 715 + _, 716 + (), 717 + _, 718 + _, 719 + >( 720 + &atrium_xrpc::XrpcRequest { 721 + method: http::Method::GET, 722 + nsid: crate::app::bsky::feed::get_actor_likes::NSID.into(), 723 + parameters: Some(params), 724 + input: None, 725 + encoding: None, 726 + }, 727 + ) 728 + .await?; 729 + match response { 730 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 731 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 732 + } 733 + } 734 + ///Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth. 735 + pub async fn get_author_feed( 736 + &self, 737 + params: crate::app::bsky::feed::get_author_feed::Parameters, 738 + ) -> atrium_xrpc::Result< 739 + crate::app::bsky::feed::get_author_feed::Output, 740 + crate::app::bsky::feed::get_author_feed::Error, 741 + > { 742 + let response = self 743 + .xrpc 744 + .send_xrpc::< 745 + _, 746 + (), 747 + _, 748 + _, 749 + >( 750 + &atrium_xrpc::XrpcRequest { 751 + method: http::Method::GET, 752 + nsid: crate::app::bsky::feed::get_author_feed::NSID.into(), 753 + parameters: Some(params), 754 + input: None, 755 + encoding: None, 756 + }, 757 + ) 758 + .await?; 759 + match response { 760 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 761 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 762 + } 763 + } 764 + ///Get a hydrated feed from an actor's selected feed generator. Implemented by App View. 765 + pub async fn get_feed( 766 + &self, 767 + params: crate::app::bsky::feed::get_feed::Parameters, 768 + ) -> atrium_xrpc::Result< 769 + crate::app::bsky::feed::get_feed::Output, 770 + crate::app::bsky::feed::get_feed::Error, 771 + > { 772 + let response = self 773 + .xrpc 774 + .send_xrpc::< 775 + _, 776 + (), 777 + _, 778 + _, 779 + >( 780 + &atrium_xrpc::XrpcRequest { 781 + method: http::Method::GET, 782 + nsid: crate::app::bsky::feed::get_feed::NSID.into(), 783 + parameters: Some(params), 784 + input: None, 785 + encoding: None, 786 + }, 787 + ) 788 + .await?; 789 + match response { 790 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 791 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 792 + } 793 + } 794 + ///Get information about a feed generator. Implemented by AppView. 795 + pub async fn get_feed_generator( 796 + &self, 797 + params: crate::app::bsky::feed::get_feed_generator::Parameters, 798 + ) -> atrium_xrpc::Result< 799 + crate::app::bsky::feed::get_feed_generator::Output, 800 + crate::app::bsky::feed::get_feed_generator::Error, 801 + > { 802 + let response = self 803 + .xrpc 804 + .send_xrpc::< 805 + _, 806 + (), 807 + _, 808 + _, 809 + >( 810 + &atrium_xrpc::XrpcRequest { 811 + method: http::Method::GET, 812 + nsid: crate::app::bsky::feed::get_feed_generator::NSID.into(), 813 + parameters: Some(params), 814 + input: None, 815 + encoding: None, 816 + }, 817 + ) 818 + .await?; 819 + match response { 820 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 821 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 822 + } 823 + } 824 + ///Get information about a list of feed generators. 825 + pub async fn get_feed_generators( 826 + &self, 827 + params: crate::app::bsky::feed::get_feed_generators::Parameters, 828 + ) -> atrium_xrpc::Result< 829 + crate::app::bsky::feed::get_feed_generators::Output, 830 + crate::app::bsky::feed::get_feed_generators::Error, 831 + > { 832 + let response = self 833 + .xrpc 834 + .send_xrpc::< 835 + _, 836 + (), 837 + _, 838 + _, 839 + >( 840 + &atrium_xrpc::XrpcRequest { 841 + method: http::Method::GET, 842 + nsid: crate::app::bsky::feed::get_feed_generators::NSID.into(), 843 + parameters: Some(params), 844 + input: None, 845 + encoding: None, 846 + }, 847 + ) 848 + .await?; 849 + match response { 850 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 851 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 852 + } 853 + } 854 + ///Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service. 855 + pub async fn get_feed_skeleton( 856 + &self, 857 + params: crate::app::bsky::feed::get_feed_skeleton::Parameters, 858 + ) -> atrium_xrpc::Result< 859 + crate::app::bsky::feed::get_feed_skeleton::Output, 860 + crate::app::bsky::feed::get_feed_skeleton::Error, 861 + > { 862 + let response = self 863 + .xrpc 864 + .send_xrpc::< 865 + _, 866 + (), 867 + _, 868 + _, 869 + >( 870 + &atrium_xrpc::XrpcRequest { 871 + method: http::Method::GET, 872 + nsid: crate::app::bsky::feed::get_feed_skeleton::NSID.into(), 873 + parameters: Some(params), 874 + input: None, 875 + encoding: None, 876 + }, 877 + ) 878 + .await?; 879 + match response { 880 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 881 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 882 + } 883 + } 884 + ///Get like records which reference a subject (by AT-URI and CID). 885 + pub async fn get_likes( 886 + &self, 887 + params: crate::app::bsky::feed::get_likes::Parameters, 888 + ) -> atrium_xrpc::Result< 889 + crate::app::bsky::feed::get_likes::Output, 890 + crate::app::bsky::feed::get_likes::Error, 891 + > { 892 + let response = self 893 + .xrpc 894 + .send_xrpc::< 895 + _, 896 + (), 897 + _, 898 + _, 899 + >( 900 + &atrium_xrpc::XrpcRequest { 901 + method: http::Method::GET, 902 + nsid: crate::app::bsky::feed::get_likes::NSID.into(), 903 + parameters: Some(params), 904 + input: None, 905 + encoding: None, 906 + }, 907 + ) 908 + .await?; 909 + match response { 910 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 911 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 912 + } 913 + } 914 + ///Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth. 915 + pub async fn get_list_feed( 916 + &self, 917 + params: crate::app::bsky::feed::get_list_feed::Parameters, 918 + ) -> atrium_xrpc::Result< 919 + crate::app::bsky::feed::get_list_feed::Output, 920 + crate::app::bsky::feed::get_list_feed::Error, 921 + > { 922 + let response = self 923 + .xrpc 924 + .send_xrpc::< 925 + _, 926 + (), 927 + _, 928 + _, 929 + >( 930 + &atrium_xrpc::XrpcRequest { 931 + method: http::Method::GET, 932 + nsid: crate::app::bsky::feed::get_list_feed::NSID.into(), 933 + parameters: Some(params), 934 + input: None, 935 + encoding: None, 936 + }, 937 + ) 938 + .await?; 939 + match response { 940 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 941 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 942 + } 943 + } 944 + ///Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests. 945 + pub async fn get_post_thread( 946 + &self, 947 + params: crate::app::bsky::feed::get_post_thread::Parameters, 948 + ) -> atrium_xrpc::Result< 949 + crate::app::bsky::feed::get_post_thread::Output, 950 + crate::app::bsky::feed::get_post_thread::Error, 951 + > { 952 + let response = self 953 + .xrpc 954 + .send_xrpc::< 955 + _, 956 + (), 957 + _, 958 + _, 959 + >( 960 + &atrium_xrpc::XrpcRequest { 961 + method: http::Method::GET, 962 + nsid: crate::app::bsky::feed::get_post_thread::NSID.into(), 963 + parameters: Some(params), 964 + input: None, 965 + encoding: None, 966 + }, 967 + ) 968 + .await?; 969 + match response { 970 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 971 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 972 + } 973 + } 974 + ///Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'. 975 + pub async fn get_posts( 976 + &self, 977 + params: crate::app::bsky::feed::get_posts::Parameters, 978 + ) -> atrium_xrpc::Result< 979 + crate::app::bsky::feed::get_posts::Output, 980 + crate::app::bsky::feed::get_posts::Error, 981 + > { 982 + let response = self 983 + .xrpc 984 + .send_xrpc::< 985 + _, 986 + (), 987 + _, 988 + _, 989 + >( 990 + &atrium_xrpc::XrpcRequest { 991 + method: http::Method::GET, 992 + nsid: crate::app::bsky::feed::get_posts::NSID.into(), 993 + parameters: Some(params), 994 + input: None, 995 + encoding: None, 996 + }, 997 + ) 998 + .await?; 999 + match response { 1000 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1001 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1002 + } 1003 + } 1004 + ///Get a list of quotes for a given post. 1005 + pub async fn get_quotes( 1006 + &self, 1007 + params: crate::app::bsky::feed::get_quotes::Parameters, 1008 + ) -> atrium_xrpc::Result< 1009 + crate::app::bsky::feed::get_quotes::Output, 1010 + crate::app::bsky::feed::get_quotes::Error, 1011 + > { 1012 + let response = self 1013 + .xrpc 1014 + .send_xrpc::< 1015 + _, 1016 + (), 1017 + _, 1018 + _, 1019 + >( 1020 + &atrium_xrpc::XrpcRequest { 1021 + method: http::Method::GET, 1022 + nsid: crate::app::bsky::feed::get_quotes::NSID.into(), 1023 + parameters: Some(params), 1024 + input: None, 1025 + encoding: None, 1026 + }, 1027 + ) 1028 + .await?; 1029 + match response { 1030 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1031 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1032 + } 1033 + } 1034 + ///Get a list of reposts for a given post. 1035 + pub async fn get_reposted_by( 1036 + &self, 1037 + params: crate::app::bsky::feed::get_reposted_by::Parameters, 1038 + ) -> atrium_xrpc::Result< 1039 + crate::app::bsky::feed::get_reposted_by::Output, 1040 + crate::app::bsky::feed::get_reposted_by::Error, 1041 + > { 1042 + let response = self 1043 + .xrpc 1044 + .send_xrpc::< 1045 + _, 1046 + (), 1047 + _, 1048 + _, 1049 + >( 1050 + &atrium_xrpc::XrpcRequest { 1051 + method: http::Method::GET, 1052 + nsid: crate::app::bsky::feed::get_reposted_by::NSID.into(), 1053 + parameters: Some(params), 1054 + input: None, 1055 + encoding: None, 1056 + }, 1057 + ) 1058 + .await?; 1059 + match response { 1060 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1061 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1062 + } 1063 + } 1064 + ///Get a list of suggested feeds (feed generators) for the requesting account. 1065 + pub async fn get_suggested_feeds( 1066 + &self, 1067 + params: crate::app::bsky::feed::get_suggested_feeds::Parameters, 1068 + ) -> atrium_xrpc::Result< 1069 + crate::app::bsky::feed::get_suggested_feeds::Output, 1070 + crate::app::bsky::feed::get_suggested_feeds::Error, 1071 + > { 1072 + let response = self 1073 + .xrpc 1074 + .send_xrpc::< 1075 + _, 1076 + (), 1077 + _, 1078 + _, 1079 + >( 1080 + &atrium_xrpc::XrpcRequest { 1081 + method: http::Method::GET, 1082 + nsid: crate::app::bsky::feed::get_suggested_feeds::NSID.into(), 1083 + parameters: Some(params), 1084 + input: None, 1085 + encoding: None, 1086 + }, 1087 + ) 1088 + .await?; 1089 + match response { 1090 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1091 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1092 + } 1093 + } 1094 + ///Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed. 1095 + pub async fn get_timeline( 1096 + &self, 1097 + params: crate::app::bsky::feed::get_timeline::Parameters, 1098 + ) -> atrium_xrpc::Result< 1099 + crate::app::bsky::feed::get_timeline::Output, 1100 + crate::app::bsky::feed::get_timeline::Error, 1101 + > { 1102 + let response = self 1103 + .xrpc 1104 + .send_xrpc::< 1105 + _, 1106 + (), 1107 + _, 1108 + _, 1109 + >( 1110 + &atrium_xrpc::XrpcRequest { 1111 + method: http::Method::GET, 1112 + nsid: crate::app::bsky::feed::get_timeline::NSID.into(), 1113 + parameters: Some(params), 1114 + input: None, 1115 + encoding: None, 1116 + }, 1117 + ) 1118 + .await?; 1119 + match response { 1120 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1121 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1122 + } 1123 + } 1124 + ///Find posts matching search criteria, returning views of those posts. 1125 + pub async fn search_posts( 1126 + &self, 1127 + params: crate::app::bsky::feed::search_posts::Parameters, 1128 + ) -> atrium_xrpc::Result< 1129 + crate::app::bsky::feed::search_posts::Output, 1130 + crate::app::bsky::feed::search_posts::Error, 1131 + > { 1132 + let response = self 1133 + .xrpc 1134 + .send_xrpc::< 1135 + _, 1136 + (), 1137 + _, 1138 + _, 1139 + >( 1140 + &atrium_xrpc::XrpcRequest { 1141 + method: http::Method::GET, 1142 + nsid: crate::app::bsky::feed::search_posts::NSID.into(), 1143 + parameters: Some(params), 1144 + input: None, 1145 + encoding: None, 1146 + }, 1147 + ) 1148 + .await?; 1149 + match response { 1150 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1151 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1152 + } 1153 + } 1154 + ///Send information about interactions with feed items back to the feed generator that served them. 1155 + pub async fn send_interactions( 1156 + &self, 1157 + input: crate::app::bsky::feed::send_interactions::Input, 1158 + ) -> atrium_xrpc::Result< 1159 + crate::app::bsky::feed::send_interactions::Output, 1160 + crate::app::bsky::feed::send_interactions::Error, 1161 + > { 1162 + let response = self 1163 + .xrpc 1164 + .send_xrpc::< 1165 + (), 1166 + _, 1167 + _, 1168 + _, 1169 + >( 1170 + &atrium_xrpc::XrpcRequest { 1171 + method: http::Method::POST, 1172 + nsid: crate::app::bsky::feed::send_interactions::NSID.into(), 1173 + parameters: None, 1174 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1175 + encoding: Some(String::from("application/json")), 1176 + }, 1177 + ) 1178 + .await?; 1179 + match response { 1180 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1181 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1182 + } 1183 + } 1184 + } 1185 + impl<T> app::bsky::graph::Service<T> 1186 + where 1187 + T: atrium_xrpc::XrpcClient + Send + Sync, 1188 + { 1189 + #[allow(unused_variables)] 1190 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 1191 + Self { 1192 + xrpc, 1193 + _phantom: core::marker::PhantomData, 1194 + } 1195 + } 1196 + ///Get a list of starter packs created by the actor. 1197 + pub async fn get_actor_starter_packs( 1198 + &self, 1199 + params: crate::app::bsky::graph::get_actor_starter_packs::Parameters, 1200 + ) -> atrium_xrpc::Result< 1201 + crate::app::bsky::graph::get_actor_starter_packs::Output, 1202 + crate::app::bsky::graph::get_actor_starter_packs::Error, 1203 + > { 1204 + let response = self 1205 + .xrpc 1206 + .send_xrpc::< 1207 + _, 1208 + (), 1209 + _, 1210 + _, 1211 + >( 1212 + &atrium_xrpc::XrpcRequest { 1213 + method: http::Method::GET, 1214 + nsid: crate::app::bsky::graph::get_actor_starter_packs::NSID.into(), 1215 + parameters: Some(params), 1216 + input: None, 1217 + encoding: None, 1218 + }, 1219 + ) 1220 + .await?; 1221 + match response { 1222 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1223 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1224 + } 1225 + } 1226 + ///Enumerates which accounts the requesting account is currently blocking. Requires auth. 1227 + pub async fn get_blocks( 1228 + &self, 1229 + params: crate::app::bsky::graph::get_blocks::Parameters, 1230 + ) -> atrium_xrpc::Result< 1231 + crate::app::bsky::graph::get_blocks::Output, 1232 + crate::app::bsky::graph::get_blocks::Error, 1233 + > { 1234 + let response = self 1235 + .xrpc 1236 + .send_xrpc::< 1237 + _, 1238 + (), 1239 + _, 1240 + _, 1241 + >( 1242 + &atrium_xrpc::XrpcRequest { 1243 + method: http::Method::GET, 1244 + nsid: crate::app::bsky::graph::get_blocks::NSID.into(), 1245 + parameters: Some(params), 1246 + input: None, 1247 + encoding: None, 1248 + }, 1249 + ) 1250 + .await?; 1251 + match response { 1252 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1253 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1254 + } 1255 + } 1256 + ///Enumerates accounts which follow a specified account (actor). 1257 + pub async fn get_followers( 1258 + &self, 1259 + params: crate::app::bsky::graph::get_followers::Parameters, 1260 + ) -> atrium_xrpc::Result< 1261 + crate::app::bsky::graph::get_followers::Output, 1262 + crate::app::bsky::graph::get_followers::Error, 1263 + > { 1264 + let response = self 1265 + .xrpc 1266 + .send_xrpc::< 1267 + _, 1268 + (), 1269 + _, 1270 + _, 1271 + >( 1272 + &atrium_xrpc::XrpcRequest { 1273 + method: http::Method::GET, 1274 + nsid: crate::app::bsky::graph::get_followers::NSID.into(), 1275 + parameters: Some(params), 1276 + input: None, 1277 + encoding: None, 1278 + }, 1279 + ) 1280 + .await?; 1281 + match response { 1282 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1283 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1284 + } 1285 + } 1286 + ///Enumerates accounts which a specified account (actor) follows. 1287 + pub async fn get_follows( 1288 + &self, 1289 + params: crate::app::bsky::graph::get_follows::Parameters, 1290 + ) -> atrium_xrpc::Result< 1291 + crate::app::bsky::graph::get_follows::Output, 1292 + crate::app::bsky::graph::get_follows::Error, 1293 + > { 1294 + let response = self 1295 + .xrpc 1296 + .send_xrpc::< 1297 + _, 1298 + (), 1299 + _, 1300 + _, 1301 + >( 1302 + &atrium_xrpc::XrpcRequest { 1303 + method: http::Method::GET, 1304 + nsid: crate::app::bsky::graph::get_follows::NSID.into(), 1305 + parameters: Some(params), 1306 + input: None, 1307 + encoding: None, 1308 + }, 1309 + ) 1310 + .await?; 1311 + match response { 1312 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1313 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1314 + } 1315 + } 1316 + ///Enumerates accounts which follow a specified account (actor) and are followed by the viewer. 1317 + pub async fn get_known_followers( 1318 + &self, 1319 + params: crate::app::bsky::graph::get_known_followers::Parameters, 1320 + ) -> atrium_xrpc::Result< 1321 + crate::app::bsky::graph::get_known_followers::Output, 1322 + crate::app::bsky::graph::get_known_followers::Error, 1323 + > { 1324 + let response = self 1325 + .xrpc 1326 + .send_xrpc::< 1327 + _, 1328 + (), 1329 + _, 1330 + _, 1331 + >( 1332 + &atrium_xrpc::XrpcRequest { 1333 + method: http::Method::GET, 1334 + nsid: crate::app::bsky::graph::get_known_followers::NSID.into(), 1335 + parameters: Some(params), 1336 + input: None, 1337 + encoding: None, 1338 + }, 1339 + ) 1340 + .await?; 1341 + match response { 1342 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1343 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1344 + } 1345 + } 1346 + ///Gets a 'view' (with additional context) of a specified list. 1347 + pub async fn get_list( 1348 + &self, 1349 + params: crate::app::bsky::graph::get_list::Parameters, 1350 + ) -> atrium_xrpc::Result< 1351 + crate::app::bsky::graph::get_list::Output, 1352 + crate::app::bsky::graph::get_list::Error, 1353 + > { 1354 + let response = self 1355 + .xrpc 1356 + .send_xrpc::< 1357 + _, 1358 + (), 1359 + _, 1360 + _, 1361 + >( 1362 + &atrium_xrpc::XrpcRequest { 1363 + method: http::Method::GET, 1364 + nsid: crate::app::bsky::graph::get_list::NSID.into(), 1365 + parameters: Some(params), 1366 + input: None, 1367 + encoding: None, 1368 + }, 1369 + ) 1370 + .await?; 1371 + match response { 1372 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1373 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1374 + } 1375 + } 1376 + ///Get mod lists that the requesting account (actor) is blocking. Requires auth. 1377 + pub async fn get_list_blocks( 1378 + &self, 1379 + params: crate::app::bsky::graph::get_list_blocks::Parameters, 1380 + ) -> atrium_xrpc::Result< 1381 + crate::app::bsky::graph::get_list_blocks::Output, 1382 + crate::app::bsky::graph::get_list_blocks::Error, 1383 + > { 1384 + let response = self 1385 + .xrpc 1386 + .send_xrpc::< 1387 + _, 1388 + (), 1389 + _, 1390 + _, 1391 + >( 1392 + &atrium_xrpc::XrpcRequest { 1393 + method: http::Method::GET, 1394 + nsid: crate::app::bsky::graph::get_list_blocks::NSID.into(), 1395 + parameters: Some(params), 1396 + input: None, 1397 + encoding: None, 1398 + }, 1399 + ) 1400 + .await?; 1401 + match response { 1402 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1403 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1404 + } 1405 + } 1406 + ///Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth. 1407 + pub async fn get_list_mutes( 1408 + &self, 1409 + params: crate::app::bsky::graph::get_list_mutes::Parameters, 1410 + ) -> atrium_xrpc::Result< 1411 + crate::app::bsky::graph::get_list_mutes::Output, 1412 + crate::app::bsky::graph::get_list_mutes::Error, 1413 + > { 1414 + let response = self 1415 + .xrpc 1416 + .send_xrpc::< 1417 + _, 1418 + (), 1419 + _, 1420 + _, 1421 + >( 1422 + &atrium_xrpc::XrpcRequest { 1423 + method: http::Method::GET, 1424 + nsid: crate::app::bsky::graph::get_list_mutes::NSID.into(), 1425 + parameters: Some(params), 1426 + input: None, 1427 + encoding: None, 1428 + }, 1429 + ) 1430 + .await?; 1431 + match response { 1432 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1433 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1434 + } 1435 + } 1436 + ///Enumerates the lists created by a specified account (actor). 1437 + pub async fn get_lists( 1438 + &self, 1439 + params: crate::app::bsky::graph::get_lists::Parameters, 1440 + ) -> atrium_xrpc::Result< 1441 + crate::app::bsky::graph::get_lists::Output, 1442 + crate::app::bsky::graph::get_lists::Error, 1443 + > { 1444 + let response = self 1445 + .xrpc 1446 + .send_xrpc::< 1447 + _, 1448 + (), 1449 + _, 1450 + _, 1451 + >( 1452 + &atrium_xrpc::XrpcRequest { 1453 + method: http::Method::GET, 1454 + nsid: crate::app::bsky::graph::get_lists::NSID.into(), 1455 + parameters: Some(params), 1456 + input: None, 1457 + encoding: None, 1458 + }, 1459 + ) 1460 + .await?; 1461 + match response { 1462 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1463 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1464 + } 1465 + } 1466 + ///Enumerates accounts that the requesting account (actor) currently has muted. Requires auth. 1467 + pub async fn get_mutes( 1468 + &self, 1469 + params: crate::app::bsky::graph::get_mutes::Parameters, 1470 + ) -> atrium_xrpc::Result< 1471 + crate::app::bsky::graph::get_mutes::Output, 1472 + crate::app::bsky::graph::get_mutes::Error, 1473 + > { 1474 + let response = self 1475 + .xrpc 1476 + .send_xrpc::< 1477 + _, 1478 + (), 1479 + _, 1480 + _, 1481 + >( 1482 + &atrium_xrpc::XrpcRequest { 1483 + method: http::Method::GET, 1484 + nsid: crate::app::bsky::graph::get_mutes::NSID.into(), 1485 + parameters: Some(params), 1486 + input: None, 1487 + encoding: None, 1488 + }, 1489 + ) 1490 + .await?; 1491 + match response { 1492 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1493 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1494 + } 1495 + } 1496 + ///Enumerates public relationships between one account, and a list of other accounts. Does not require auth. 1497 + pub async fn get_relationships( 1498 + &self, 1499 + params: crate::app::bsky::graph::get_relationships::Parameters, 1500 + ) -> atrium_xrpc::Result< 1501 + crate::app::bsky::graph::get_relationships::Output, 1502 + crate::app::bsky::graph::get_relationships::Error, 1503 + > { 1504 + let response = self 1505 + .xrpc 1506 + .send_xrpc::< 1507 + _, 1508 + (), 1509 + _, 1510 + _, 1511 + >( 1512 + &atrium_xrpc::XrpcRequest { 1513 + method: http::Method::GET, 1514 + nsid: crate::app::bsky::graph::get_relationships::NSID.into(), 1515 + parameters: Some(params), 1516 + input: None, 1517 + encoding: None, 1518 + }, 1519 + ) 1520 + .await?; 1521 + match response { 1522 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1523 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1524 + } 1525 + } 1526 + ///Gets a view of a starter pack. 1527 + pub async fn get_starter_pack( 1528 + &self, 1529 + params: crate::app::bsky::graph::get_starter_pack::Parameters, 1530 + ) -> atrium_xrpc::Result< 1531 + crate::app::bsky::graph::get_starter_pack::Output, 1532 + crate::app::bsky::graph::get_starter_pack::Error, 1533 + > { 1534 + let response = self 1535 + .xrpc 1536 + .send_xrpc::< 1537 + _, 1538 + (), 1539 + _, 1540 + _, 1541 + >( 1542 + &atrium_xrpc::XrpcRequest { 1543 + method: http::Method::GET, 1544 + nsid: crate::app::bsky::graph::get_starter_pack::NSID.into(), 1545 + parameters: Some(params), 1546 + input: None, 1547 + encoding: None, 1548 + }, 1549 + ) 1550 + .await?; 1551 + match response { 1552 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1553 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1554 + } 1555 + } 1556 + ///Get views for a list of starter packs. 1557 + pub async fn get_starter_packs( 1558 + &self, 1559 + params: crate::app::bsky::graph::get_starter_packs::Parameters, 1560 + ) -> atrium_xrpc::Result< 1561 + crate::app::bsky::graph::get_starter_packs::Output, 1562 + crate::app::bsky::graph::get_starter_packs::Error, 1563 + > { 1564 + let response = self 1565 + .xrpc 1566 + .send_xrpc::< 1567 + _, 1568 + (), 1569 + _, 1570 + _, 1571 + >( 1572 + &atrium_xrpc::XrpcRequest { 1573 + method: http::Method::GET, 1574 + nsid: crate::app::bsky::graph::get_starter_packs::NSID.into(), 1575 + parameters: Some(params), 1576 + input: None, 1577 + encoding: None, 1578 + }, 1579 + ) 1580 + .await?; 1581 + match response { 1582 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1583 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1584 + } 1585 + } 1586 + ///Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account. 1587 + pub async fn get_suggested_follows_by_actor( 1588 + &self, 1589 + params: crate::app::bsky::graph::get_suggested_follows_by_actor::Parameters, 1590 + ) -> atrium_xrpc::Result< 1591 + crate::app::bsky::graph::get_suggested_follows_by_actor::Output, 1592 + crate::app::bsky::graph::get_suggested_follows_by_actor::Error, 1593 + > { 1594 + let response = self 1595 + .xrpc 1596 + .send_xrpc::< 1597 + _, 1598 + (), 1599 + _, 1600 + _, 1601 + >( 1602 + &atrium_xrpc::XrpcRequest { 1603 + method: http::Method::GET, 1604 + nsid: crate::app::bsky::graph::get_suggested_follows_by_actor::NSID 1605 + .into(), 1606 + parameters: Some(params), 1607 + input: None, 1608 + encoding: None, 1609 + }, 1610 + ) 1611 + .await?; 1612 + match response { 1613 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1614 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1615 + } 1616 + } 1617 + ///Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires auth. 1618 + pub async fn mute_actor( 1619 + &self, 1620 + input: crate::app::bsky::graph::mute_actor::Input, 1621 + ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_actor::Error> { 1622 + let response = self 1623 + .xrpc 1624 + .send_xrpc::< 1625 + (), 1626 + _, 1627 + (), 1628 + _, 1629 + >( 1630 + &atrium_xrpc::XrpcRequest { 1631 + method: http::Method::POST, 1632 + nsid: crate::app::bsky::graph::mute_actor::NSID.into(), 1633 + parameters: None, 1634 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1635 + encoding: Some(String::from("application/json")), 1636 + }, 1637 + ) 1638 + .await?; 1639 + match response { 1640 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 1641 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1642 + } 1643 + } 1644 + ///Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth. 1645 + pub async fn mute_actor_list( 1646 + &self, 1647 + input: crate::app::bsky::graph::mute_actor_list::Input, 1648 + ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_actor_list::Error> { 1649 + let response = self 1650 + .xrpc 1651 + .send_xrpc::< 1652 + (), 1653 + _, 1654 + (), 1655 + _, 1656 + >( 1657 + &atrium_xrpc::XrpcRequest { 1658 + method: http::Method::POST, 1659 + nsid: crate::app::bsky::graph::mute_actor_list::NSID.into(), 1660 + parameters: None, 1661 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1662 + encoding: Some(String::from("application/json")), 1663 + }, 1664 + ) 1665 + .await?; 1666 + match response { 1667 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 1668 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1669 + } 1670 + } 1671 + ///Mutes a thread preventing notifications from the thread and any of its children. Mutes are private in Bluesky. Requires auth. 1672 + pub async fn mute_thread( 1673 + &self, 1674 + input: crate::app::bsky::graph::mute_thread::Input, 1675 + ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_thread::Error> { 1676 + let response = self 1677 + .xrpc 1678 + .send_xrpc::< 1679 + (), 1680 + _, 1681 + (), 1682 + _, 1683 + >( 1684 + &atrium_xrpc::XrpcRequest { 1685 + method: http::Method::POST, 1686 + nsid: crate::app::bsky::graph::mute_thread::NSID.into(), 1687 + parameters: None, 1688 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1689 + encoding: Some(String::from("application/json")), 1690 + }, 1691 + ) 1692 + .await?; 1693 + match response { 1694 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 1695 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1696 + } 1697 + } 1698 + ///Find starter packs matching search criteria. Does not require auth. 1699 + pub async fn search_starter_packs( 1700 + &self, 1701 + params: crate::app::bsky::graph::search_starter_packs::Parameters, 1702 + ) -> atrium_xrpc::Result< 1703 + crate::app::bsky::graph::search_starter_packs::Output, 1704 + crate::app::bsky::graph::search_starter_packs::Error, 1705 + > { 1706 + let response = self 1707 + .xrpc 1708 + .send_xrpc::< 1709 + _, 1710 + (), 1711 + _, 1712 + _, 1713 + >( 1714 + &atrium_xrpc::XrpcRequest { 1715 + method: http::Method::GET, 1716 + nsid: crate::app::bsky::graph::search_starter_packs::NSID.into(), 1717 + parameters: Some(params), 1718 + input: None, 1719 + encoding: None, 1720 + }, 1721 + ) 1722 + .await?; 1723 + match response { 1724 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1725 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1726 + } 1727 + } 1728 + ///Unmutes the specified account. Requires auth. 1729 + pub async fn unmute_actor( 1730 + &self, 1731 + input: crate::app::bsky::graph::unmute_actor::Input, 1732 + ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_actor::Error> { 1733 + let response = self 1734 + .xrpc 1735 + .send_xrpc::< 1736 + (), 1737 + _, 1738 + (), 1739 + _, 1740 + >( 1741 + &atrium_xrpc::XrpcRequest { 1742 + method: http::Method::POST, 1743 + nsid: crate::app::bsky::graph::unmute_actor::NSID.into(), 1744 + parameters: None, 1745 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1746 + encoding: Some(String::from("application/json")), 1747 + }, 1748 + ) 1749 + .await?; 1750 + match response { 1751 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 1752 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1753 + } 1754 + } 1755 + ///Unmutes the specified list of accounts. Requires auth. 1756 + pub async fn unmute_actor_list( 1757 + &self, 1758 + input: crate::app::bsky::graph::unmute_actor_list::Input, 1759 + ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_actor_list::Error> { 1760 + let response = self 1761 + .xrpc 1762 + .send_xrpc::< 1763 + (), 1764 + _, 1765 + (), 1766 + _, 1767 + >( 1768 + &atrium_xrpc::XrpcRequest { 1769 + method: http::Method::POST, 1770 + nsid: crate::app::bsky::graph::unmute_actor_list::NSID.into(), 1771 + parameters: None, 1772 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1773 + encoding: Some(String::from("application/json")), 1774 + }, 1775 + ) 1776 + .await?; 1777 + match response { 1778 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 1779 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1780 + } 1781 + } 1782 + ///Unmutes the specified thread. Requires auth. 1783 + pub async fn unmute_thread( 1784 + &self, 1785 + input: crate::app::bsky::graph::unmute_thread::Input, 1786 + ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_thread::Error> { 1787 + let response = self 1788 + .xrpc 1789 + .send_xrpc::< 1790 + (), 1791 + _, 1792 + (), 1793 + _, 1794 + >( 1795 + &atrium_xrpc::XrpcRequest { 1796 + method: http::Method::POST, 1797 + nsid: crate::app::bsky::graph::unmute_thread::NSID.into(), 1798 + parameters: None, 1799 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1800 + encoding: Some(String::from("application/json")), 1801 + }, 1802 + ) 1803 + .await?; 1804 + match response { 1805 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 1806 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1807 + } 1808 + } 1809 + } 1810 + impl<T> app::bsky::labeler::Service<T> 1811 + where 1812 + T: atrium_xrpc::XrpcClient + Send + Sync, 1813 + { 1814 + #[allow(unused_variables)] 1815 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 1816 + Self { 1817 + xrpc, 1818 + _phantom: core::marker::PhantomData, 1819 + } 1820 + } 1821 + ///Get information about a list of labeler services. 1822 + pub async fn get_services( 1823 + &self, 1824 + params: crate::app::bsky::labeler::get_services::Parameters, 1825 + ) -> atrium_xrpc::Result< 1826 + crate::app::bsky::labeler::get_services::Output, 1827 + crate::app::bsky::labeler::get_services::Error, 1828 + > { 1829 + let response = self 1830 + .xrpc 1831 + .send_xrpc::< 1832 + _, 1833 + (), 1834 + _, 1835 + _, 1836 + >( 1837 + &atrium_xrpc::XrpcRequest { 1838 + method: http::Method::GET, 1839 + nsid: crate::app::bsky::labeler::get_services::NSID.into(), 1840 + parameters: Some(params), 1841 + input: None, 1842 + encoding: None, 1843 + }, 1844 + ) 1845 + .await?; 1846 + match response { 1847 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1848 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1849 + } 1850 + } 1851 + } 1852 + impl<T> app::bsky::notification::Service<T> 1853 + where 1854 + T: atrium_xrpc::XrpcClient + Send + Sync, 1855 + { 1856 + #[allow(unused_variables)] 1857 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 1858 + Self { 1859 + xrpc, 1860 + _phantom: core::marker::PhantomData, 1861 + } 1862 + } 1863 + ///Count the number of unread notifications for the requesting account. Requires auth. 1864 + pub async fn get_unread_count( 1865 + &self, 1866 + params: crate::app::bsky::notification::get_unread_count::Parameters, 1867 + ) -> atrium_xrpc::Result< 1868 + crate::app::bsky::notification::get_unread_count::Output, 1869 + crate::app::bsky::notification::get_unread_count::Error, 1870 + > { 1871 + let response = self 1872 + .xrpc 1873 + .send_xrpc::< 1874 + _, 1875 + (), 1876 + _, 1877 + _, 1878 + >( 1879 + &atrium_xrpc::XrpcRequest { 1880 + method: http::Method::GET, 1881 + nsid: crate::app::bsky::notification::get_unread_count::NSID.into(), 1882 + parameters: Some(params), 1883 + input: None, 1884 + encoding: None, 1885 + }, 1886 + ) 1887 + .await?; 1888 + match response { 1889 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1890 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1891 + } 1892 + } 1893 + ///Enumerate notifications for the requesting account. Requires auth. 1894 + pub async fn list_notifications( 1895 + &self, 1896 + params: crate::app::bsky::notification::list_notifications::Parameters, 1897 + ) -> atrium_xrpc::Result< 1898 + crate::app::bsky::notification::list_notifications::Output, 1899 + crate::app::bsky::notification::list_notifications::Error, 1900 + > { 1901 + let response = self 1902 + .xrpc 1903 + .send_xrpc::< 1904 + _, 1905 + (), 1906 + _, 1907 + _, 1908 + >( 1909 + &atrium_xrpc::XrpcRequest { 1910 + method: http::Method::GET, 1911 + nsid: crate::app::bsky::notification::list_notifications::NSID 1912 + .into(), 1913 + parameters: Some(params), 1914 + input: None, 1915 + encoding: None, 1916 + }, 1917 + ) 1918 + .await?; 1919 + match response { 1920 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 1921 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1922 + } 1923 + } 1924 + ///Set notification-related preferences for an account. Requires auth. 1925 + pub async fn put_preferences( 1926 + &self, 1927 + input: crate::app::bsky::notification::put_preferences::Input, 1928 + ) -> atrium_xrpc::Result< 1929 + (), 1930 + crate::app::bsky::notification::put_preferences::Error, 1931 + > { 1932 + let response = self 1933 + .xrpc 1934 + .send_xrpc::< 1935 + (), 1936 + _, 1937 + (), 1938 + _, 1939 + >( 1940 + &atrium_xrpc::XrpcRequest { 1941 + method: http::Method::POST, 1942 + nsid: crate::app::bsky::notification::put_preferences::NSID.into(), 1943 + parameters: None, 1944 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1945 + encoding: Some(String::from("application/json")), 1946 + }, 1947 + ) 1948 + .await?; 1949 + match response { 1950 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 1951 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1952 + } 1953 + } 1954 + ///Register to receive push notifications, via a specified service, for the requesting account. Requires auth. 1955 + pub async fn register_push( 1956 + &self, 1957 + input: crate::app::bsky::notification::register_push::Input, 1958 + ) -> atrium_xrpc::Result<(), crate::app::bsky::notification::register_push::Error> { 1959 + let response = self 1960 + .xrpc 1961 + .send_xrpc::< 1962 + (), 1963 + _, 1964 + (), 1965 + _, 1966 + >( 1967 + &atrium_xrpc::XrpcRequest { 1968 + method: http::Method::POST, 1969 + nsid: crate::app::bsky::notification::register_push::NSID.into(), 1970 + parameters: None, 1971 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1972 + encoding: Some(String::from("application/json")), 1973 + }, 1974 + ) 1975 + .await?; 1976 + match response { 1977 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 1978 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 1979 + } 1980 + } 1981 + ///Notify server that the requesting account has seen notifications. Requires auth. 1982 + pub async fn update_seen( 1983 + &self, 1984 + input: crate::app::bsky::notification::update_seen::Input, 1985 + ) -> atrium_xrpc::Result<(), crate::app::bsky::notification::update_seen::Error> { 1986 + let response = self 1987 + .xrpc 1988 + .send_xrpc::< 1989 + (), 1990 + _, 1991 + (), 1992 + _, 1993 + >( 1994 + &atrium_xrpc::XrpcRequest { 1995 + method: http::Method::POST, 1996 + nsid: crate::app::bsky::notification::update_seen::NSID.into(), 1997 + parameters: None, 1998 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 1999 + encoding: Some(String::from("application/json")), 2000 + }, 2001 + ) 2002 + .await?; 2003 + match response { 2004 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 2005 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2006 + } 2007 + } 2008 + } 2009 + impl<T> app::bsky::unspecced::Service<T> 2010 + where 2011 + T: atrium_xrpc::XrpcClient + Send + Sync, 2012 + { 2013 + #[allow(unused_variables)] 2014 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 2015 + Self { 2016 + xrpc, 2017 + _phantom: core::marker::PhantomData, 2018 + } 2019 + } 2020 + ///Get miscellaneous runtime configuration. 2021 + pub async fn get_config( 2022 + &self, 2023 + ) -> atrium_xrpc::Result< 2024 + crate::app::bsky::unspecced::get_config::Output, 2025 + crate::app::bsky::unspecced::get_config::Error, 2026 + > { 2027 + let response = self 2028 + .xrpc 2029 + .send_xrpc::< 2030 + (), 2031 + (), 2032 + _, 2033 + _, 2034 + >( 2035 + &atrium_xrpc::XrpcRequest { 2036 + method: http::Method::GET, 2037 + nsid: crate::app::bsky::unspecced::get_config::NSID.into(), 2038 + parameters: None, 2039 + input: None, 2040 + encoding: None, 2041 + }, 2042 + ) 2043 + .await?; 2044 + match response { 2045 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2046 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2047 + } 2048 + } 2049 + ///An unspecced view of globally popular feed generators. 2050 + pub async fn get_popular_feed_generators( 2051 + &self, 2052 + params: crate::app::bsky::unspecced::get_popular_feed_generators::Parameters, 2053 + ) -> atrium_xrpc::Result< 2054 + crate::app::bsky::unspecced::get_popular_feed_generators::Output, 2055 + crate::app::bsky::unspecced::get_popular_feed_generators::Error, 2056 + > { 2057 + let response = self 2058 + .xrpc 2059 + .send_xrpc::< 2060 + _, 2061 + (), 2062 + _, 2063 + _, 2064 + >( 2065 + &atrium_xrpc::XrpcRequest { 2066 + method: http::Method::GET, 2067 + nsid: crate::app::bsky::unspecced::get_popular_feed_generators::NSID 2068 + .into(), 2069 + parameters: Some(params), 2070 + input: None, 2071 + encoding: None, 2072 + }, 2073 + ) 2074 + .await?; 2075 + match response { 2076 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2077 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2078 + } 2079 + } 2080 + ///Get a list of suggested feeds 2081 + pub async fn get_suggested_feeds( 2082 + &self, 2083 + params: crate::app::bsky::unspecced::get_suggested_feeds::Parameters, 2084 + ) -> atrium_xrpc::Result< 2085 + crate::app::bsky::unspecced::get_suggested_feeds::Output, 2086 + crate::app::bsky::unspecced::get_suggested_feeds::Error, 2087 + > { 2088 + let response = self 2089 + .xrpc 2090 + .send_xrpc::< 2091 + _, 2092 + (), 2093 + _, 2094 + _, 2095 + >( 2096 + &atrium_xrpc::XrpcRequest { 2097 + method: http::Method::GET, 2098 + nsid: crate::app::bsky::unspecced::get_suggested_feeds::NSID.into(), 2099 + parameters: Some(params), 2100 + input: None, 2101 + encoding: None, 2102 + }, 2103 + ) 2104 + .await?; 2105 + match response { 2106 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2107 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2108 + } 2109 + } 2110 + ///Get a skeleton of suggested feeds. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedFeeds 2111 + pub async fn get_suggested_feeds_skeleton( 2112 + &self, 2113 + params: crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Parameters, 2114 + ) -> atrium_xrpc::Result< 2115 + crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Output, 2116 + crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Error, 2117 + > { 2118 + let response = self 2119 + .xrpc 2120 + .send_xrpc::< 2121 + _, 2122 + (), 2123 + _, 2124 + _, 2125 + >( 2126 + &atrium_xrpc::XrpcRequest { 2127 + method: http::Method::GET, 2128 + nsid: crate::app::bsky::unspecced::get_suggested_feeds_skeleton::NSID 2129 + .into(), 2130 + parameters: Some(params), 2131 + input: None, 2132 + encoding: None, 2133 + }, 2134 + ) 2135 + .await?; 2136 + match response { 2137 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2138 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2139 + } 2140 + } 2141 + ///Get a list of suggested starterpacks 2142 + pub async fn get_suggested_starter_packs( 2143 + &self, 2144 + params: crate::app::bsky::unspecced::get_suggested_starter_packs::Parameters, 2145 + ) -> atrium_xrpc::Result< 2146 + crate::app::bsky::unspecced::get_suggested_starter_packs::Output, 2147 + crate::app::bsky::unspecced::get_suggested_starter_packs::Error, 2148 + > { 2149 + let response = self 2150 + .xrpc 2151 + .send_xrpc::< 2152 + _, 2153 + (), 2154 + _, 2155 + _, 2156 + >( 2157 + &atrium_xrpc::XrpcRequest { 2158 + method: http::Method::GET, 2159 + nsid: crate::app::bsky::unspecced::get_suggested_starter_packs::NSID 2160 + .into(), 2161 + parameters: Some(params), 2162 + input: None, 2163 + encoding: None, 2164 + }, 2165 + ) 2166 + .await?; 2167 + match response { 2168 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2169 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2170 + } 2171 + } 2172 + ///Get a skeleton of suggested starterpacks. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedStarterpacks 2173 + pub async fn get_suggested_starter_packs_skeleton( 2174 + &self, 2175 + params: crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Parameters, 2176 + ) -> atrium_xrpc::Result< 2177 + crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Output, 2178 + crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Error, 2179 + > { 2180 + let response = self 2181 + .xrpc 2182 + .send_xrpc::< 2183 + _, 2184 + (), 2185 + _, 2186 + _, 2187 + >( 2188 + &atrium_xrpc::XrpcRequest { 2189 + method: http::Method::GET, 2190 + nsid: crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::NSID 2191 + .into(), 2192 + parameters: Some(params), 2193 + input: None, 2194 + encoding: None, 2195 + }, 2196 + ) 2197 + .await?; 2198 + match response { 2199 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2200 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2201 + } 2202 + } 2203 + ///Get a list of suggested users 2204 + pub async fn get_suggested_users( 2205 + &self, 2206 + params: crate::app::bsky::unspecced::get_suggested_users::Parameters, 2207 + ) -> atrium_xrpc::Result< 2208 + crate::app::bsky::unspecced::get_suggested_users::Output, 2209 + crate::app::bsky::unspecced::get_suggested_users::Error, 2210 + > { 2211 + let response = self 2212 + .xrpc 2213 + .send_xrpc::< 2214 + _, 2215 + (), 2216 + _, 2217 + _, 2218 + >( 2219 + &atrium_xrpc::XrpcRequest { 2220 + method: http::Method::GET, 2221 + nsid: crate::app::bsky::unspecced::get_suggested_users::NSID.into(), 2222 + parameters: Some(params), 2223 + input: None, 2224 + encoding: None, 2225 + }, 2226 + ) 2227 + .await?; 2228 + match response { 2229 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2230 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2231 + } 2232 + } 2233 + ///Get a skeleton of suggested users. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsers 2234 + pub async fn get_suggested_users_skeleton( 2235 + &self, 2236 + params: crate::app::bsky::unspecced::get_suggested_users_skeleton::Parameters, 2237 + ) -> atrium_xrpc::Result< 2238 + crate::app::bsky::unspecced::get_suggested_users_skeleton::Output, 2239 + crate::app::bsky::unspecced::get_suggested_users_skeleton::Error, 2240 + > { 2241 + let response = self 2242 + .xrpc 2243 + .send_xrpc::< 2244 + _, 2245 + (), 2246 + _, 2247 + _, 2248 + >( 2249 + &atrium_xrpc::XrpcRequest { 2250 + method: http::Method::GET, 2251 + nsid: crate::app::bsky::unspecced::get_suggested_users_skeleton::NSID 2252 + .into(), 2253 + parameters: Some(params), 2254 + input: None, 2255 + encoding: None, 2256 + }, 2257 + ) 2258 + .await?; 2259 + match response { 2260 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2261 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2262 + } 2263 + } 2264 + ///Get a skeleton of suggested actors. Intended to be called and then hydrated through app.bsky.actor.getSuggestions 2265 + pub async fn get_suggestions_skeleton( 2266 + &self, 2267 + params: crate::app::bsky::unspecced::get_suggestions_skeleton::Parameters, 2268 + ) -> atrium_xrpc::Result< 2269 + crate::app::bsky::unspecced::get_suggestions_skeleton::Output, 2270 + crate::app::bsky::unspecced::get_suggestions_skeleton::Error, 2271 + > { 2272 + let response = self 2273 + .xrpc 2274 + .send_xrpc::< 2275 + _, 2276 + (), 2277 + _, 2278 + _, 2279 + >( 2280 + &atrium_xrpc::XrpcRequest { 2281 + method: http::Method::GET, 2282 + nsid: crate::app::bsky::unspecced::get_suggestions_skeleton::NSID 2283 + .into(), 2284 + parameters: Some(params), 2285 + input: None, 2286 + encoding: None, 2287 + }, 2288 + ) 2289 + .await?; 2290 + match response { 2291 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2292 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2293 + } 2294 + } 2295 + ///Get a list of suggestions (feeds and users) tagged with categories 2296 + pub async fn get_tagged_suggestions( 2297 + &self, 2298 + params: crate::app::bsky::unspecced::get_tagged_suggestions::Parameters, 2299 + ) -> atrium_xrpc::Result< 2300 + crate::app::bsky::unspecced::get_tagged_suggestions::Output, 2301 + crate::app::bsky::unspecced::get_tagged_suggestions::Error, 2302 + > { 2303 + let response = self 2304 + .xrpc 2305 + .send_xrpc::< 2306 + _, 2307 + (), 2308 + _, 2309 + _, 2310 + >( 2311 + &atrium_xrpc::XrpcRequest { 2312 + method: http::Method::GET, 2313 + nsid: crate::app::bsky::unspecced::get_tagged_suggestions::NSID 2314 + .into(), 2315 + parameters: Some(params), 2316 + input: None, 2317 + encoding: None, 2318 + }, 2319 + ) 2320 + .await?; 2321 + match response { 2322 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2323 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2324 + } 2325 + } 2326 + ///Get a list of trending topics 2327 + pub async fn get_trending_topics( 2328 + &self, 2329 + params: crate::app::bsky::unspecced::get_trending_topics::Parameters, 2330 + ) -> atrium_xrpc::Result< 2331 + crate::app::bsky::unspecced::get_trending_topics::Output, 2332 + crate::app::bsky::unspecced::get_trending_topics::Error, 2333 + > { 2334 + let response = self 2335 + .xrpc 2336 + .send_xrpc::< 2337 + _, 2338 + (), 2339 + _, 2340 + _, 2341 + >( 2342 + &atrium_xrpc::XrpcRequest { 2343 + method: http::Method::GET, 2344 + nsid: crate::app::bsky::unspecced::get_trending_topics::NSID.into(), 2345 + parameters: Some(params), 2346 + input: None, 2347 + encoding: None, 2348 + }, 2349 + ) 2350 + .await?; 2351 + match response { 2352 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2353 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2354 + } 2355 + } 2356 + ///Get the current trends on the network 2357 + pub async fn get_trends( 2358 + &self, 2359 + params: crate::app::bsky::unspecced::get_trends::Parameters, 2360 + ) -> atrium_xrpc::Result< 2361 + crate::app::bsky::unspecced::get_trends::Output, 2362 + crate::app::bsky::unspecced::get_trends::Error, 2363 + > { 2364 + let response = self 2365 + .xrpc 2366 + .send_xrpc::< 2367 + _, 2368 + (), 2369 + _, 2370 + _, 2371 + >( 2372 + &atrium_xrpc::XrpcRequest { 2373 + method: http::Method::GET, 2374 + nsid: crate::app::bsky::unspecced::get_trends::NSID.into(), 2375 + parameters: Some(params), 2376 + input: None, 2377 + encoding: None, 2378 + }, 2379 + ) 2380 + .await?; 2381 + match response { 2382 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2383 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2384 + } 2385 + } 2386 + ///Get the skeleton of trends on the network. Intended to be called and then hydrated through app.bsky.unspecced.getTrends 2387 + pub async fn get_trends_skeleton( 2388 + &self, 2389 + params: crate::app::bsky::unspecced::get_trends_skeleton::Parameters, 2390 + ) -> atrium_xrpc::Result< 2391 + crate::app::bsky::unspecced::get_trends_skeleton::Output, 2392 + crate::app::bsky::unspecced::get_trends_skeleton::Error, 2393 + > { 2394 + let response = self 2395 + .xrpc 2396 + .send_xrpc::< 2397 + _, 2398 + (), 2399 + _, 2400 + _, 2401 + >( 2402 + &atrium_xrpc::XrpcRequest { 2403 + method: http::Method::GET, 2404 + nsid: crate::app::bsky::unspecced::get_trends_skeleton::NSID.into(), 2405 + parameters: Some(params), 2406 + input: None, 2407 + encoding: None, 2408 + }, 2409 + ) 2410 + .await?; 2411 + match response { 2412 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2413 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2414 + } 2415 + } 2416 + ///Backend Actors (profile) search, returns only skeleton. 2417 + pub async fn search_actors_skeleton( 2418 + &self, 2419 + params: crate::app::bsky::unspecced::search_actors_skeleton::Parameters, 2420 + ) -> atrium_xrpc::Result< 2421 + crate::app::bsky::unspecced::search_actors_skeleton::Output, 2422 + crate::app::bsky::unspecced::search_actors_skeleton::Error, 2423 + > { 2424 + let response = self 2425 + .xrpc 2426 + .send_xrpc::< 2427 + _, 2428 + (), 2429 + _, 2430 + _, 2431 + >( 2432 + &atrium_xrpc::XrpcRequest { 2433 + method: http::Method::GET, 2434 + nsid: crate::app::bsky::unspecced::search_actors_skeleton::NSID 2435 + .into(), 2436 + parameters: Some(params), 2437 + input: None, 2438 + encoding: None, 2439 + }, 2440 + ) 2441 + .await?; 2442 + match response { 2443 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2444 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2445 + } 2446 + } 2447 + ///Backend Posts search, returns only skeleton 2448 + pub async fn search_posts_skeleton( 2449 + &self, 2450 + params: crate::app::bsky::unspecced::search_posts_skeleton::Parameters, 2451 + ) -> atrium_xrpc::Result< 2452 + crate::app::bsky::unspecced::search_posts_skeleton::Output, 2453 + crate::app::bsky::unspecced::search_posts_skeleton::Error, 2454 + > { 2455 + let response = self 2456 + .xrpc 2457 + .send_xrpc::< 2458 + _, 2459 + (), 2460 + _, 2461 + _, 2462 + >( 2463 + &atrium_xrpc::XrpcRequest { 2464 + method: http::Method::GET, 2465 + nsid: crate::app::bsky::unspecced::search_posts_skeleton::NSID 2466 + .into(), 2467 + parameters: Some(params), 2468 + input: None, 2469 + encoding: None, 2470 + }, 2471 + ) 2472 + .await?; 2473 + match response { 2474 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2475 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2476 + } 2477 + } 2478 + ///Backend Starter Pack search, returns only skeleton. 2479 + pub async fn search_starter_packs_skeleton( 2480 + &self, 2481 + params: crate::app::bsky::unspecced::search_starter_packs_skeleton::Parameters, 2482 + ) -> atrium_xrpc::Result< 2483 + crate::app::bsky::unspecced::search_starter_packs_skeleton::Output, 2484 + crate::app::bsky::unspecced::search_starter_packs_skeleton::Error, 2485 + > { 2486 + let response = self 2487 + .xrpc 2488 + .send_xrpc::< 2489 + _, 2490 + (), 2491 + _, 2492 + _, 2493 + >( 2494 + &atrium_xrpc::XrpcRequest { 2495 + method: http::Method::GET, 2496 + nsid: crate::app::bsky::unspecced::search_starter_packs_skeleton::NSID 2497 + .into(), 2498 + parameters: Some(params), 2499 + input: None, 2500 + encoding: None, 2501 + }, 2502 + ) 2503 + .await?; 2504 + match response { 2505 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2506 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2507 + } 2508 + } 2509 + } 2510 + impl<T> app::bsky::video::Service<T> 2511 + where 2512 + T: atrium_xrpc::XrpcClient + Send + Sync, 2513 + { 2514 + #[allow(unused_variables)] 2515 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 2516 + Self { 2517 + xrpc, 2518 + _phantom: core::marker::PhantomData, 2519 + } 2520 + } 2521 + ///Get status details for a video processing job. 2522 + pub async fn get_job_status( 2523 + &self, 2524 + params: crate::app::bsky::video::get_job_status::Parameters, 2525 + ) -> atrium_xrpc::Result< 2526 + crate::app::bsky::video::get_job_status::Output, 2527 + crate::app::bsky::video::get_job_status::Error, 2528 + > { 2529 + let response = self 2530 + .xrpc 2531 + .send_xrpc::< 2532 + _, 2533 + (), 2534 + _, 2535 + _, 2536 + >( 2537 + &atrium_xrpc::XrpcRequest { 2538 + method: http::Method::GET, 2539 + nsid: crate::app::bsky::video::get_job_status::NSID.into(), 2540 + parameters: Some(params), 2541 + input: None, 2542 + encoding: None, 2543 + }, 2544 + ) 2545 + .await?; 2546 + match response { 2547 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2548 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2549 + } 2550 + } 2551 + ///Get video upload limits for the authenticated user. 2552 + pub async fn get_upload_limits( 2553 + &self, 2554 + ) -> atrium_xrpc::Result< 2555 + crate::app::bsky::video::get_upload_limits::Output, 2556 + crate::app::bsky::video::get_upload_limits::Error, 2557 + > { 2558 + let response = self 2559 + .xrpc 2560 + .send_xrpc::< 2561 + (), 2562 + (), 2563 + _, 2564 + _, 2565 + >( 2566 + &atrium_xrpc::XrpcRequest { 2567 + method: http::Method::GET, 2568 + nsid: crate::app::bsky::video::get_upload_limits::NSID.into(), 2569 + parameters: None, 2570 + input: None, 2571 + encoding: None, 2572 + }, 2573 + ) 2574 + .await?; 2575 + match response { 2576 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2577 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2578 + } 2579 + } 2580 + ///Upload a video to be processed then stored on the PDS. 2581 + pub async fn upload_video( 2582 + &self, 2583 + input: Vec<u8>, 2584 + ) -> atrium_xrpc::Result< 2585 + crate::app::bsky::video::upload_video::Output, 2586 + crate::app::bsky::video::upload_video::Error, 2587 + > { 2588 + let response = self 2589 + .xrpc 2590 + .send_xrpc::< 2591 + (), 2592 + Vec<u8>, 2593 + _, 2594 + _, 2595 + >( 2596 + &atrium_xrpc::XrpcRequest { 2597 + method: http::Method::POST, 2598 + nsid: crate::app::bsky::video::upload_video::NSID.into(), 2599 + parameters: None, 2600 + input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)), 2601 + encoding: Some(String::from("video/mp4")), 2602 + }, 2603 + ) 2604 + .await?; 2605 + match response { 2606 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2607 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2608 + } 2609 + } 2610 + } 2611 + impl<T> chat::Service<T> 2612 + where 2613 + T: atrium_xrpc::XrpcClient + Send + Sync, 2614 + { 2615 + #[allow(unused_variables)] 2616 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 2617 + Self { 2618 + bsky: chat::bsky::Service::new(std::sync::Arc::clone(&xrpc)), 2619 + _phantom: core::marker::PhantomData, 2620 + } 2621 + } 2622 + } 2623 + impl<T> chat::bsky::Service<T> 2624 + where 2625 + T: atrium_xrpc::XrpcClient + Send + Sync, 2626 + { 2627 + #[allow(unused_variables)] 2628 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 2629 + Self { 2630 + actor: chat::bsky::actor::Service::new(std::sync::Arc::clone(&xrpc)), 2631 + convo: chat::bsky::convo::Service::new(std::sync::Arc::clone(&xrpc)), 2632 + moderation: chat::bsky::moderation::Service::new( 2633 + std::sync::Arc::clone(&xrpc), 2634 + ), 2635 + _phantom: core::marker::PhantomData, 2636 + } 2637 + } 2638 + } 2639 + impl<T> chat::bsky::actor::Service<T> 2640 + where 2641 + T: atrium_xrpc::XrpcClient + Send + Sync, 2642 + { 2643 + #[allow(unused_variables)] 2644 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 2645 + Self { 2646 + xrpc, 2647 + _phantom: core::marker::PhantomData, 2648 + } 2649 + } 2650 + pub async fn delete_account( 2651 + &self, 2652 + ) -> atrium_xrpc::Result< 2653 + crate::chat::bsky::actor::delete_account::Output, 2654 + crate::chat::bsky::actor::delete_account::Error, 2655 + > { 2656 + let response = self 2657 + .xrpc 2658 + .send_xrpc::< 2659 + (), 2660 + (), 2661 + _, 2662 + _, 2663 + >( 2664 + &atrium_xrpc::XrpcRequest { 2665 + method: http::Method::POST, 2666 + nsid: crate::chat::bsky::actor::delete_account::NSID.into(), 2667 + parameters: None, 2668 + input: None, 2669 + encoding: None, 2670 + }, 2671 + ) 2672 + .await?; 2673 + match response { 2674 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2675 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2676 + } 2677 + } 2678 + pub async fn export_account_data( 2679 + &self, 2680 + ) -> atrium_xrpc::Result< 2681 + Vec<u8>, 2682 + crate::chat::bsky::actor::export_account_data::Error, 2683 + > { 2684 + let response = self 2685 + .xrpc 2686 + .send_xrpc::< 2687 + (), 2688 + (), 2689 + (), 2690 + _, 2691 + >( 2692 + &atrium_xrpc::XrpcRequest { 2693 + method: http::Method::GET, 2694 + nsid: crate::chat::bsky::actor::export_account_data::NSID.into(), 2695 + parameters: None, 2696 + input: None, 2697 + encoding: None, 2698 + }, 2699 + ) 2700 + .await?; 2701 + match response { 2702 + atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes), 2703 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2704 + } 2705 + } 2706 + } 2707 + impl<T> chat::bsky::convo::Service<T> 2708 + where 2709 + T: atrium_xrpc::XrpcClient + Send + Sync, 2710 + { 2711 + #[allow(unused_variables)] 2712 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 2713 + Self { 2714 + xrpc, 2715 + _phantom: core::marker::PhantomData, 2716 + } 2717 + } 2718 + pub async fn accept_convo( 2719 + &self, 2720 + input: crate::chat::bsky::convo::accept_convo::Input, 2721 + ) -> atrium_xrpc::Result< 2722 + crate::chat::bsky::convo::accept_convo::Output, 2723 + crate::chat::bsky::convo::accept_convo::Error, 2724 + > { 2725 + let response = self 2726 + .xrpc 2727 + .send_xrpc::< 2728 + (), 2729 + _, 2730 + _, 2731 + _, 2732 + >( 2733 + &atrium_xrpc::XrpcRequest { 2734 + method: http::Method::POST, 2735 + nsid: crate::chat::bsky::convo::accept_convo::NSID.into(), 2736 + parameters: None, 2737 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 2738 + encoding: Some(String::from("application/json")), 2739 + }, 2740 + ) 2741 + .await?; 2742 + match response { 2743 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2744 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2745 + } 2746 + } 2747 + ///Adds an emoji reaction to a message. Requires authentication. It is idempotent, so multiple calls from the same user with the same emoji result in a single reaction. 2748 + pub async fn add_reaction( 2749 + &self, 2750 + input: crate::chat::bsky::convo::add_reaction::Input, 2751 + ) -> atrium_xrpc::Result< 2752 + crate::chat::bsky::convo::add_reaction::Output, 2753 + crate::chat::bsky::convo::add_reaction::Error, 2754 + > { 2755 + let response = self 2756 + .xrpc 2757 + .send_xrpc::< 2758 + (), 2759 + _, 2760 + _, 2761 + _, 2762 + >( 2763 + &atrium_xrpc::XrpcRequest { 2764 + method: http::Method::POST, 2765 + nsid: crate::chat::bsky::convo::add_reaction::NSID.into(), 2766 + parameters: None, 2767 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 2768 + encoding: Some(String::from("application/json")), 2769 + }, 2770 + ) 2771 + .await?; 2772 + match response { 2773 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2774 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2775 + } 2776 + } 2777 + pub async fn delete_message_for_self( 2778 + &self, 2779 + input: crate::chat::bsky::convo::delete_message_for_self::Input, 2780 + ) -> atrium_xrpc::Result< 2781 + crate::chat::bsky::convo::delete_message_for_self::Output, 2782 + crate::chat::bsky::convo::delete_message_for_self::Error, 2783 + > { 2784 + let response = self 2785 + .xrpc 2786 + .send_xrpc::< 2787 + (), 2788 + _, 2789 + _, 2790 + _, 2791 + >( 2792 + &atrium_xrpc::XrpcRequest { 2793 + method: http::Method::POST, 2794 + nsid: crate::chat::bsky::convo::delete_message_for_self::NSID.into(), 2795 + parameters: None, 2796 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 2797 + encoding: Some(String::from("application/json")), 2798 + }, 2799 + ) 2800 + .await?; 2801 + match response { 2802 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2803 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2804 + } 2805 + } 2806 + pub async fn get_convo( 2807 + &self, 2808 + params: crate::chat::bsky::convo::get_convo::Parameters, 2809 + ) -> atrium_xrpc::Result< 2810 + crate::chat::bsky::convo::get_convo::Output, 2811 + crate::chat::bsky::convo::get_convo::Error, 2812 + > { 2813 + let response = self 2814 + .xrpc 2815 + .send_xrpc::< 2816 + _, 2817 + (), 2818 + _, 2819 + _, 2820 + >( 2821 + &atrium_xrpc::XrpcRequest { 2822 + method: http::Method::GET, 2823 + nsid: crate::chat::bsky::convo::get_convo::NSID.into(), 2824 + parameters: Some(params), 2825 + input: None, 2826 + encoding: None, 2827 + }, 2828 + ) 2829 + .await?; 2830 + match response { 2831 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2832 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2833 + } 2834 + } 2835 + ///Get whether the requester and the other members can chat. If an existing convo is found for these members, it is returned. 2836 + pub async fn get_convo_availability( 2837 + &self, 2838 + params: crate::chat::bsky::convo::get_convo_availability::Parameters, 2839 + ) -> atrium_xrpc::Result< 2840 + crate::chat::bsky::convo::get_convo_availability::Output, 2841 + crate::chat::bsky::convo::get_convo_availability::Error, 2842 + > { 2843 + let response = self 2844 + .xrpc 2845 + .send_xrpc::< 2846 + _, 2847 + (), 2848 + _, 2849 + _, 2850 + >( 2851 + &atrium_xrpc::XrpcRequest { 2852 + method: http::Method::GET, 2853 + nsid: crate::chat::bsky::convo::get_convo_availability::NSID.into(), 2854 + parameters: Some(params), 2855 + input: None, 2856 + encoding: None, 2857 + }, 2858 + ) 2859 + .await?; 2860 + match response { 2861 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2862 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2863 + } 2864 + } 2865 + pub async fn get_convo_for_members( 2866 + &self, 2867 + params: crate::chat::bsky::convo::get_convo_for_members::Parameters, 2868 + ) -> atrium_xrpc::Result< 2869 + crate::chat::bsky::convo::get_convo_for_members::Output, 2870 + crate::chat::bsky::convo::get_convo_for_members::Error, 2871 + > { 2872 + let response = self 2873 + .xrpc 2874 + .send_xrpc::< 2875 + _, 2876 + (), 2877 + _, 2878 + _, 2879 + >( 2880 + &atrium_xrpc::XrpcRequest { 2881 + method: http::Method::GET, 2882 + nsid: crate::chat::bsky::convo::get_convo_for_members::NSID.into(), 2883 + parameters: Some(params), 2884 + input: None, 2885 + encoding: None, 2886 + }, 2887 + ) 2888 + .await?; 2889 + match response { 2890 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2891 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2892 + } 2893 + } 2894 + pub async fn get_log( 2895 + &self, 2896 + params: crate::chat::bsky::convo::get_log::Parameters, 2897 + ) -> atrium_xrpc::Result< 2898 + crate::chat::bsky::convo::get_log::Output, 2899 + crate::chat::bsky::convo::get_log::Error, 2900 + > { 2901 + let response = self 2902 + .xrpc 2903 + .send_xrpc::< 2904 + _, 2905 + (), 2906 + _, 2907 + _, 2908 + >( 2909 + &atrium_xrpc::XrpcRequest { 2910 + method: http::Method::GET, 2911 + nsid: crate::chat::bsky::convo::get_log::NSID.into(), 2912 + parameters: Some(params), 2913 + input: None, 2914 + encoding: None, 2915 + }, 2916 + ) 2917 + .await?; 2918 + match response { 2919 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2920 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2921 + } 2922 + } 2923 + pub async fn get_messages( 2924 + &self, 2925 + params: crate::chat::bsky::convo::get_messages::Parameters, 2926 + ) -> atrium_xrpc::Result< 2927 + crate::chat::bsky::convo::get_messages::Output, 2928 + crate::chat::bsky::convo::get_messages::Error, 2929 + > { 2930 + let response = self 2931 + .xrpc 2932 + .send_xrpc::< 2933 + _, 2934 + (), 2935 + _, 2936 + _, 2937 + >( 2938 + &atrium_xrpc::XrpcRequest { 2939 + method: http::Method::GET, 2940 + nsid: crate::chat::bsky::convo::get_messages::NSID.into(), 2941 + parameters: Some(params), 2942 + input: None, 2943 + encoding: None, 2944 + }, 2945 + ) 2946 + .await?; 2947 + match response { 2948 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2949 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2950 + } 2951 + } 2952 + pub async fn leave_convo( 2953 + &self, 2954 + input: crate::chat::bsky::convo::leave_convo::Input, 2955 + ) -> atrium_xrpc::Result< 2956 + crate::chat::bsky::convo::leave_convo::Output, 2957 + crate::chat::bsky::convo::leave_convo::Error, 2958 + > { 2959 + let response = self 2960 + .xrpc 2961 + .send_xrpc::< 2962 + (), 2963 + _, 2964 + _, 2965 + _, 2966 + >( 2967 + &atrium_xrpc::XrpcRequest { 2968 + method: http::Method::POST, 2969 + nsid: crate::chat::bsky::convo::leave_convo::NSID.into(), 2970 + parameters: None, 2971 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 2972 + encoding: Some(String::from("application/json")), 2973 + }, 2974 + ) 2975 + .await?; 2976 + match response { 2977 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 2978 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 2979 + } 2980 + } 2981 + pub async fn list_convos( 2982 + &self, 2983 + params: crate::chat::bsky::convo::list_convos::Parameters, 2984 + ) -> atrium_xrpc::Result< 2985 + crate::chat::bsky::convo::list_convos::Output, 2986 + crate::chat::bsky::convo::list_convos::Error, 2987 + > { 2988 + let response = self 2989 + .xrpc 2990 + .send_xrpc::< 2991 + _, 2992 + (), 2993 + _, 2994 + _, 2995 + >( 2996 + &atrium_xrpc::XrpcRequest { 2997 + method: http::Method::GET, 2998 + nsid: crate::chat::bsky::convo::list_convos::NSID.into(), 2999 + parameters: Some(params), 3000 + input: None, 3001 + encoding: None, 3002 + }, 3003 + ) 3004 + .await?; 3005 + match response { 3006 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3007 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3008 + } 3009 + } 3010 + pub async fn mute_convo( 3011 + &self, 3012 + input: crate::chat::bsky::convo::mute_convo::Input, 3013 + ) -> atrium_xrpc::Result< 3014 + crate::chat::bsky::convo::mute_convo::Output, 3015 + crate::chat::bsky::convo::mute_convo::Error, 3016 + > { 3017 + let response = self 3018 + .xrpc 3019 + .send_xrpc::< 3020 + (), 3021 + _, 3022 + _, 3023 + _, 3024 + >( 3025 + &atrium_xrpc::XrpcRequest { 3026 + method: http::Method::POST, 3027 + nsid: crate::chat::bsky::convo::mute_convo::NSID.into(), 3028 + parameters: None, 3029 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3030 + encoding: Some(String::from("application/json")), 3031 + }, 3032 + ) 3033 + .await?; 3034 + match response { 3035 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3036 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3037 + } 3038 + } 3039 + ///Removes an emoji reaction from a message. Requires authentication. It is idempotent, so multiple calls from the same user with the same emoji result in that reaction not being present, even if it already wasn't. 3040 + pub async fn remove_reaction( 3041 + &self, 3042 + input: crate::chat::bsky::convo::remove_reaction::Input, 3043 + ) -> atrium_xrpc::Result< 3044 + crate::chat::bsky::convo::remove_reaction::Output, 3045 + crate::chat::bsky::convo::remove_reaction::Error, 3046 + > { 3047 + let response = self 3048 + .xrpc 3049 + .send_xrpc::< 3050 + (), 3051 + _, 3052 + _, 3053 + _, 3054 + >( 3055 + &atrium_xrpc::XrpcRequest { 3056 + method: http::Method::POST, 3057 + nsid: crate::chat::bsky::convo::remove_reaction::NSID.into(), 3058 + parameters: None, 3059 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3060 + encoding: Some(String::from("application/json")), 3061 + }, 3062 + ) 3063 + .await?; 3064 + match response { 3065 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3066 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3067 + } 3068 + } 3069 + pub async fn send_message( 3070 + &self, 3071 + input: crate::chat::bsky::convo::send_message::Input, 3072 + ) -> atrium_xrpc::Result< 3073 + crate::chat::bsky::convo::send_message::Output, 3074 + crate::chat::bsky::convo::send_message::Error, 3075 + > { 3076 + let response = self 3077 + .xrpc 3078 + .send_xrpc::< 3079 + (), 3080 + _, 3081 + _, 3082 + _, 3083 + >( 3084 + &atrium_xrpc::XrpcRequest { 3085 + method: http::Method::POST, 3086 + nsid: crate::chat::bsky::convo::send_message::NSID.into(), 3087 + parameters: None, 3088 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3089 + encoding: Some(String::from("application/json")), 3090 + }, 3091 + ) 3092 + .await?; 3093 + match response { 3094 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3095 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3096 + } 3097 + } 3098 + pub async fn send_message_batch( 3099 + &self, 3100 + input: crate::chat::bsky::convo::send_message_batch::Input, 3101 + ) -> atrium_xrpc::Result< 3102 + crate::chat::bsky::convo::send_message_batch::Output, 3103 + crate::chat::bsky::convo::send_message_batch::Error, 3104 + > { 3105 + let response = self 3106 + .xrpc 3107 + .send_xrpc::< 3108 + (), 3109 + _, 3110 + _, 3111 + _, 3112 + >( 3113 + &atrium_xrpc::XrpcRequest { 3114 + method: http::Method::POST, 3115 + nsid: crate::chat::bsky::convo::send_message_batch::NSID.into(), 3116 + parameters: None, 3117 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3118 + encoding: Some(String::from("application/json")), 3119 + }, 3120 + ) 3121 + .await?; 3122 + match response { 3123 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3124 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3125 + } 3126 + } 3127 + pub async fn unmute_convo( 3128 + &self, 3129 + input: crate::chat::bsky::convo::unmute_convo::Input, 3130 + ) -> atrium_xrpc::Result< 3131 + crate::chat::bsky::convo::unmute_convo::Output, 3132 + crate::chat::bsky::convo::unmute_convo::Error, 3133 + > { 3134 + let response = self 3135 + .xrpc 3136 + .send_xrpc::< 3137 + (), 3138 + _, 3139 + _, 3140 + _, 3141 + >( 3142 + &atrium_xrpc::XrpcRequest { 3143 + method: http::Method::POST, 3144 + nsid: crate::chat::bsky::convo::unmute_convo::NSID.into(), 3145 + parameters: None, 3146 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3147 + encoding: Some(String::from("application/json")), 3148 + }, 3149 + ) 3150 + .await?; 3151 + match response { 3152 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3153 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3154 + } 3155 + } 3156 + pub async fn update_all_read( 3157 + &self, 3158 + input: crate::chat::bsky::convo::update_all_read::Input, 3159 + ) -> atrium_xrpc::Result< 3160 + crate::chat::bsky::convo::update_all_read::Output, 3161 + crate::chat::bsky::convo::update_all_read::Error, 3162 + > { 3163 + let response = self 3164 + .xrpc 3165 + .send_xrpc::< 3166 + (), 3167 + _, 3168 + _, 3169 + _, 3170 + >( 3171 + &atrium_xrpc::XrpcRequest { 3172 + method: http::Method::POST, 3173 + nsid: crate::chat::bsky::convo::update_all_read::NSID.into(), 3174 + parameters: None, 3175 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3176 + encoding: Some(String::from("application/json")), 3177 + }, 3178 + ) 3179 + .await?; 3180 + match response { 3181 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3182 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3183 + } 3184 + } 3185 + pub async fn update_read( 3186 + &self, 3187 + input: crate::chat::bsky::convo::update_read::Input, 3188 + ) -> atrium_xrpc::Result< 3189 + crate::chat::bsky::convo::update_read::Output, 3190 + crate::chat::bsky::convo::update_read::Error, 3191 + > { 3192 + let response = self 3193 + .xrpc 3194 + .send_xrpc::< 3195 + (), 3196 + _, 3197 + _, 3198 + _, 3199 + >( 3200 + &atrium_xrpc::XrpcRequest { 3201 + method: http::Method::POST, 3202 + nsid: crate::chat::bsky::convo::update_read::NSID.into(), 3203 + parameters: None, 3204 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3205 + encoding: Some(String::from("application/json")), 3206 + }, 3207 + ) 3208 + .await?; 3209 + match response { 3210 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3211 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3212 + } 3213 + } 3214 + } 3215 + impl<T> chat::bsky::moderation::Service<T> 3216 + where 3217 + T: atrium_xrpc::XrpcClient + Send + Sync, 3218 + { 3219 + #[allow(unused_variables)] 3220 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 3221 + Self { 3222 + xrpc, 3223 + _phantom: core::marker::PhantomData, 3224 + } 3225 + } 3226 + pub async fn get_actor_metadata( 3227 + &self, 3228 + params: crate::chat::bsky::moderation::get_actor_metadata::Parameters, 3229 + ) -> atrium_xrpc::Result< 3230 + crate::chat::bsky::moderation::get_actor_metadata::Output, 3231 + crate::chat::bsky::moderation::get_actor_metadata::Error, 3232 + > { 3233 + let response = self 3234 + .xrpc 3235 + .send_xrpc::< 3236 + _, 3237 + (), 3238 + _, 3239 + _, 3240 + >( 3241 + &atrium_xrpc::XrpcRequest { 3242 + method: http::Method::GET, 3243 + nsid: crate::chat::bsky::moderation::get_actor_metadata::NSID.into(), 3244 + parameters: Some(params), 3245 + input: None, 3246 + encoding: None, 3247 + }, 3248 + ) 3249 + .await?; 3250 + match response { 3251 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3252 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3253 + } 3254 + } 3255 + pub async fn get_message_context( 3256 + &self, 3257 + params: crate::chat::bsky::moderation::get_message_context::Parameters, 3258 + ) -> atrium_xrpc::Result< 3259 + crate::chat::bsky::moderation::get_message_context::Output, 3260 + crate::chat::bsky::moderation::get_message_context::Error, 3261 + > { 3262 + let response = self 3263 + .xrpc 3264 + .send_xrpc::< 3265 + _, 3266 + (), 3267 + _, 3268 + _, 3269 + >( 3270 + &atrium_xrpc::XrpcRequest { 3271 + method: http::Method::GET, 3272 + nsid: crate::chat::bsky::moderation::get_message_context::NSID 3273 + .into(), 3274 + parameters: Some(params), 3275 + input: None, 3276 + encoding: None, 3277 + }, 3278 + ) 3279 + .await?; 3280 + match response { 3281 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3282 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3283 + } 3284 + } 3285 + pub async fn update_actor_access( 3286 + &self, 3287 + input: crate::chat::bsky::moderation::update_actor_access::Input, 3288 + ) -> atrium_xrpc::Result< 3289 + (), 3290 + crate::chat::bsky::moderation::update_actor_access::Error, 3291 + > { 3292 + let response = self 3293 + .xrpc 3294 + .send_xrpc::< 3295 + (), 3296 + _, 3297 + (), 3298 + _, 3299 + >( 3300 + &atrium_xrpc::XrpcRequest { 3301 + method: http::Method::POST, 3302 + nsid: crate::chat::bsky::moderation::update_actor_access::NSID 3303 + .into(), 3304 + parameters: None, 3305 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3306 + encoding: Some(String::from("application/json")), 3307 + }, 3308 + ) 3309 + .await?; 3310 + match response { 3311 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3312 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3313 + } 3314 + } 3315 + } 3316 + impl<T> com::Service<T> 3317 + where 3318 + T: atrium_xrpc::XrpcClient + Send + Sync, 3319 + { 3320 + #[allow(unused_variables)] 3321 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 3322 + Self { 3323 + atproto: com::atproto::Service::new(std::sync::Arc::clone(&xrpc)), 3324 + _phantom: core::marker::PhantomData, 3325 + } 3326 + } 3327 + } 3328 + impl<T> com::atproto::Service<T> 3329 + where 3330 + T: atrium_xrpc::XrpcClient + Send + Sync, 3331 + { 3332 + #[allow(unused_variables)] 3333 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 3334 + Self { 3335 + admin: com::atproto::admin::Service::new(std::sync::Arc::clone(&xrpc)), 3336 + identity: com::atproto::identity::Service::new(std::sync::Arc::clone(&xrpc)), 3337 + label: com::atproto::label::Service::new(std::sync::Arc::clone(&xrpc)), 3338 + moderation: com::atproto::moderation::Service::new( 3339 + std::sync::Arc::clone(&xrpc), 3340 + ), 3341 + repo: com::atproto::repo::Service::new(std::sync::Arc::clone(&xrpc)), 3342 + server: com::atproto::server::Service::new(std::sync::Arc::clone(&xrpc)), 3343 + sync: com::atproto::sync::Service::new(std::sync::Arc::clone(&xrpc)), 3344 + temp: com::atproto::temp::Service::new(std::sync::Arc::clone(&xrpc)), 3345 + _phantom: core::marker::PhantomData, 3346 + } 3347 + } 3348 + } 3349 + impl<T> com::atproto::admin::Service<T> 3350 + where 3351 + T: atrium_xrpc::XrpcClient + Send + Sync, 3352 + { 3353 + #[allow(unused_variables)] 3354 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 3355 + Self { 3356 + xrpc, 3357 + _phantom: core::marker::PhantomData, 3358 + } 3359 + } 3360 + ///Delete a user account as an administrator. 3361 + pub async fn delete_account( 3362 + &self, 3363 + input: crate::com::atproto::admin::delete_account::Input, 3364 + ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::delete_account::Error> { 3365 + let response = self 3366 + .xrpc 3367 + .send_xrpc::< 3368 + (), 3369 + _, 3370 + (), 3371 + _, 3372 + >( 3373 + &atrium_xrpc::XrpcRequest { 3374 + method: http::Method::POST, 3375 + nsid: crate::com::atproto::admin::delete_account::NSID.into(), 3376 + parameters: None, 3377 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3378 + encoding: Some(String::from("application/json")), 3379 + }, 3380 + ) 3381 + .await?; 3382 + match response { 3383 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3384 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3385 + } 3386 + } 3387 + ///Disable an account from receiving new invite codes, but does not invalidate existing codes. 3388 + pub async fn disable_account_invites( 3389 + &self, 3390 + input: crate::com::atproto::admin::disable_account_invites::Input, 3391 + ) -> atrium_xrpc::Result< 3392 + (), 3393 + crate::com::atproto::admin::disable_account_invites::Error, 3394 + > { 3395 + let response = self 3396 + .xrpc 3397 + .send_xrpc::< 3398 + (), 3399 + _, 3400 + (), 3401 + _, 3402 + >( 3403 + &atrium_xrpc::XrpcRequest { 3404 + method: http::Method::POST, 3405 + nsid: crate::com::atproto::admin::disable_account_invites::NSID 3406 + .into(), 3407 + parameters: None, 3408 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3409 + encoding: Some(String::from("application/json")), 3410 + }, 3411 + ) 3412 + .await?; 3413 + match response { 3414 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3415 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3416 + } 3417 + } 3418 + ///Disable some set of codes and/or all codes associated with a set of users. 3419 + pub async fn disable_invite_codes( 3420 + &self, 3421 + input: crate::com::atproto::admin::disable_invite_codes::Input, 3422 + ) -> atrium_xrpc::Result< 3423 + (), 3424 + crate::com::atproto::admin::disable_invite_codes::Error, 3425 + > { 3426 + let response = self 3427 + .xrpc 3428 + .send_xrpc::< 3429 + (), 3430 + _, 3431 + (), 3432 + _, 3433 + >( 3434 + &atrium_xrpc::XrpcRequest { 3435 + method: http::Method::POST, 3436 + nsid: crate::com::atproto::admin::disable_invite_codes::NSID.into(), 3437 + parameters: None, 3438 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3439 + encoding: Some(String::from("application/json")), 3440 + }, 3441 + ) 3442 + .await?; 3443 + match response { 3444 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3445 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3446 + } 3447 + } 3448 + ///Re-enable an account's ability to receive invite codes. 3449 + pub async fn enable_account_invites( 3450 + &self, 3451 + input: crate::com::atproto::admin::enable_account_invites::Input, 3452 + ) -> atrium_xrpc::Result< 3453 + (), 3454 + crate::com::atproto::admin::enable_account_invites::Error, 3455 + > { 3456 + let response = self 3457 + .xrpc 3458 + .send_xrpc::< 3459 + (), 3460 + _, 3461 + (), 3462 + _, 3463 + >( 3464 + &atrium_xrpc::XrpcRequest { 3465 + method: http::Method::POST, 3466 + nsid: crate::com::atproto::admin::enable_account_invites::NSID 3467 + .into(), 3468 + parameters: None, 3469 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3470 + encoding: Some(String::from("application/json")), 3471 + }, 3472 + ) 3473 + .await?; 3474 + match response { 3475 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3476 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3477 + } 3478 + } 3479 + ///Get details about an account. 3480 + pub async fn get_account_info( 3481 + &self, 3482 + params: crate::com::atproto::admin::get_account_info::Parameters, 3483 + ) -> atrium_xrpc::Result< 3484 + crate::com::atproto::admin::get_account_info::Output, 3485 + crate::com::atproto::admin::get_account_info::Error, 3486 + > { 3487 + let response = self 3488 + .xrpc 3489 + .send_xrpc::< 3490 + _, 3491 + (), 3492 + _, 3493 + _, 3494 + >( 3495 + &atrium_xrpc::XrpcRequest { 3496 + method: http::Method::GET, 3497 + nsid: crate::com::atproto::admin::get_account_info::NSID.into(), 3498 + parameters: Some(params), 3499 + input: None, 3500 + encoding: None, 3501 + }, 3502 + ) 3503 + .await?; 3504 + match response { 3505 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3506 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3507 + } 3508 + } 3509 + ///Get details about some accounts. 3510 + pub async fn get_account_infos( 3511 + &self, 3512 + params: crate::com::atproto::admin::get_account_infos::Parameters, 3513 + ) -> atrium_xrpc::Result< 3514 + crate::com::atproto::admin::get_account_infos::Output, 3515 + crate::com::atproto::admin::get_account_infos::Error, 3516 + > { 3517 + let response = self 3518 + .xrpc 3519 + .send_xrpc::< 3520 + _, 3521 + (), 3522 + _, 3523 + _, 3524 + >( 3525 + &atrium_xrpc::XrpcRequest { 3526 + method: http::Method::GET, 3527 + nsid: crate::com::atproto::admin::get_account_infos::NSID.into(), 3528 + parameters: Some(params), 3529 + input: None, 3530 + encoding: None, 3531 + }, 3532 + ) 3533 + .await?; 3534 + match response { 3535 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3536 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3537 + } 3538 + } 3539 + ///Get an admin view of invite codes. 3540 + pub async fn get_invite_codes( 3541 + &self, 3542 + params: crate::com::atproto::admin::get_invite_codes::Parameters, 3543 + ) -> atrium_xrpc::Result< 3544 + crate::com::atproto::admin::get_invite_codes::Output, 3545 + crate::com::atproto::admin::get_invite_codes::Error, 3546 + > { 3547 + let response = self 3548 + .xrpc 3549 + .send_xrpc::< 3550 + _, 3551 + (), 3552 + _, 3553 + _, 3554 + >( 3555 + &atrium_xrpc::XrpcRequest { 3556 + method: http::Method::GET, 3557 + nsid: crate::com::atproto::admin::get_invite_codes::NSID.into(), 3558 + parameters: Some(params), 3559 + input: None, 3560 + encoding: None, 3561 + }, 3562 + ) 3563 + .await?; 3564 + match response { 3565 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3566 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3567 + } 3568 + } 3569 + ///Get the service-specific admin status of a subject (account, record, or blob). 3570 + pub async fn get_subject_status( 3571 + &self, 3572 + params: crate::com::atproto::admin::get_subject_status::Parameters, 3573 + ) -> atrium_xrpc::Result< 3574 + crate::com::atproto::admin::get_subject_status::Output, 3575 + crate::com::atproto::admin::get_subject_status::Error, 3576 + > { 3577 + let response = self 3578 + .xrpc 3579 + .send_xrpc::< 3580 + _, 3581 + (), 3582 + _, 3583 + _, 3584 + >( 3585 + &atrium_xrpc::XrpcRequest { 3586 + method: http::Method::GET, 3587 + nsid: crate::com::atproto::admin::get_subject_status::NSID.into(), 3588 + parameters: Some(params), 3589 + input: None, 3590 + encoding: None, 3591 + }, 3592 + ) 3593 + .await?; 3594 + match response { 3595 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3596 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3597 + } 3598 + } 3599 + ///Get list of accounts that matches your search query. 3600 + pub async fn search_accounts( 3601 + &self, 3602 + params: crate::com::atproto::admin::search_accounts::Parameters, 3603 + ) -> atrium_xrpc::Result< 3604 + crate::com::atproto::admin::search_accounts::Output, 3605 + crate::com::atproto::admin::search_accounts::Error, 3606 + > { 3607 + let response = self 3608 + .xrpc 3609 + .send_xrpc::< 3610 + _, 3611 + (), 3612 + _, 3613 + _, 3614 + >( 3615 + &atrium_xrpc::XrpcRequest { 3616 + method: http::Method::GET, 3617 + nsid: crate::com::atproto::admin::search_accounts::NSID.into(), 3618 + parameters: Some(params), 3619 + input: None, 3620 + encoding: None, 3621 + }, 3622 + ) 3623 + .await?; 3624 + match response { 3625 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3626 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3627 + } 3628 + } 3629 + ///Send email to a user's account email address. 3630 + pub async fn send_email( 3631 + &self, 3632 + input: crate::com::atproto::admin::send_email::Input, 3633 + ) -> atrium_xrpc::Result< 3634 + crate::com::atproto::admin::send_email::Output, 3635 + crate::com::atproto::admin::send_email::Error, 3636 + > { 3637 + let response = self 3638 + .xrpc 3639 + .send_xrpc::< 3640 + (), 3641 + _, 3642 + _, 3643 + _, 3644 + >( 3645 + &atrium_xrpc::XrpcRequest { 3646 + method: http::Method::POST, 3647 + nsid: crate::com::atproto::admin::send_email::NSID.into(), 3648 + parameters: None, 3649 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3650 + encoding: Some(String::from("application/json")), 3651 + }, 3652 + ) 3653 + .await?; 3654 + match response { 3655 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3656 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3657 + } 3658 + } 3659 + ///Administrative action to update an account's email. 3660 + pub async fn update_account_email( 3661 + &self, 3662 + input: crate::com::atproto::admin::update_account_email::Input, 3663 + ) -> atrium_xrpc::Result< 3664 + (), 3665 + crate::com::atproto::admin::update_account_email::Error, 3666 + > { 3667 + let response = self 3668 + .xrpc 3669 + .send_xrpc::< 3670 + (), 3671 + _, 3672 + (), 3673 + _, 3674 + >( 3675 + &atrium_xrpc::XrpcRequest { 3676 + method: http::Method::POST, 3677 + nsid: crate::com::atproto::admin::update_account_email::NSID.into(), 3678 + parameters: None, 3679 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3680 + encoding: Some(String::from("application/json")), 3681 + }, 3682 + ) 3683 + .await?; 3684 + match response { 3685 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3686 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3687 + } 3688 + } 3689 + ///Administrative action to update an account's handle. 3690 + pub async fn update_account_handle( 3691 + &self, 3692 + input: crate::com::atproto::admin::update_account_handle::Input, 3693 + ) -> atrium_xrpc::Result< 3694 + (), 3695 + crate::com::atproto::admin::update_account_handle::Error, 3696 + > { 3697 + let response = self 3698 + .xrpc 3699 + .send_xrpc::< 3700 + (), 3701 + _, 3702 + (), 3703 + _, 3704 + >( 3705 + &atrium_xrpc::XrpcRequest { 3706 + method: http::Method::POST, 3707 + nsid: crate::com::atproto::admin::update_account_handle::NSID.into(), 3708 + parameters: None, 3709 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3710 + encoding: Some(String::from("application/json")), 3711 + }, 3712 + ) 3713 + .await?; 3714 + match response { 3715 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3716 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3717 + } 3718 + } 3719 + ///Update the password for a user account as an administrator. 3720 + pub async fn update_account_password( 3721 + &self, 3722 + input: crate::com::atproto::admin::update_account_password::Input, 3723 + ) -> atrium_xrpc::Result< 3724 + (), 3725 + crate::com::atproto::admin::update_account_password::Error, 3726 + > { 3727 + let response = self 3728 + .xrpc 3729 + .send_xrpc::< 3730 + (), 3731 + _, 3732 + (), 3733 + _, 3734 + >( 3735 + &atrium_xrpc::XrpcRequest { 3736 + method: http::Method::POST, 3737 + nsid: crate::com::atproto::admin::update_account_password::NSID 3738 + .into(), 3739 + parameters: None, 3740 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3741 + encoding: Some(String::from("application/json")), 3742 + }, 3743 + ) 3744 + .await?; 3745 + match response { 3746 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3747 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3748 + } 3749 + } 3750 + ///Administrative action to update an account's signing key in their Did document. 3751 + pub async fn update_account_signing_key( 3752 + &self, 3753 + input: crate::com::atproto::admin::update_account_signing_key::Input, 3754 + ) -> atrium_xrpc::Result< 3755 + (), 3756 + crate::com::atproto::admin::update_account_signing_key::Error, 3757 + > { 3758 + let response = self 3759 + .xrpc 3760 + .send_xrpc::< 3761 + (), 3762 + _, 3763 + (), 3764 + _, 3765 + >( 3766 + &atrium_xrpc::XrpcRequest { 3767 + method: http::Method::POST, 3768 + nsid: crate::com::atproto::admin::update_account_signing_key::NSID 3769 + .into(), 3770 + parameters: None, 3771 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3772 + encoding: Some(String::from("application/json")), 3773 + }, 3774 + ) 3775 + .await?; 3776 + match response { 3777 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3778 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3779 + } 3780 + } 3781 + ///Update the service-specific admin status of a subject (account, record, or blob). 3782 + pub async fn update_subject_status( 3783 + &self, 3784 + input: crate::com::atproto::admin::update_subject_status::Input, 3785 + ) -> atrium_xrpc::Result< 3786 + crate::com::atproto::admin::update_subject_status::Output, 3787 + crate::com::atproto::admin::update_subject_status::Error, 3788 + > { 3789 + let response = self 3790 + .xrpc 3791 + .send_xrpc::< 3792 + (), 3793 + _, 3794 + _, 3795 + _, 3796 + >( 3797 + &atrium_xrpc::XrpcRequest { 3798 + method: http::Method::POST, 3799 + nsid: crate::com::atproto::admin::update_subject_status::NSID.into(), 3800 + parameters: None, 3801 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3802 + encoding: Some(String::from("application/json")), 3803 + }, 3804 + ) 3805 + .await?; 3806 + match response { 3807 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3808 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3809 + } 3810 + } 3811 + } 3812 + impl<T> com::atproto::identity::Service<T> 3813 + where 3814 + T: atrium_xrpc::XrpcClient + Send + Sync, 3815 + { 3816 + #[allow(unused_variables)] 3817 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 3818 + Self { 3819 + xrpc, 3820 + _phantom: core::marker::PhantomData, 3821 + } 3822 + } 3823 + ///Describe the credentials that should be included in the DID doc of an account that is migrating to this service. 3824 + pub async fn get_recommended_did_credentials( 3825 + &self, 3826 + ) -> atrium_xrpc::Result< 3827 + crate::com::atproto::identity::get_recommended_did_credentials::Output, 3828 + crate::com::atproto::identity::get_recommended_did_credentials::Error, 3829 + > { 3830 + let response = self 3831 + .xrpc 3832 + .send_xrpc::< 3833 + (), 3834 + (), 3835 + _, 3836 + _, 3837 + >( 3838 + &atrium_xrpc::XrpcRequest { 3839 + method: http::Method::GET, 3840 + nsid: crate::com::atproto::identity::get_recommended_did_credentials::NSID 3841 + .into(), 3842 + parameters: None, 3843 + input: None, 3844 + encoding: None, 3845 + }, 3846 + ) 3847 + .await?; 3848 + match response { 3849 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3850 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3851 + } 3852 + } 3853 + ///Request that the server re-resolve an identity (DID and handle). The server may ignore this request, or require authentication, depending on the role, implementation, and policy of the server. 3854 + pub async fn refresh_identity( 3855 + &self, 3856 + input: crate::com::atproto::identity::refresh_identity::Input, 3857 + ) -> atrium_xrpc::Result< 3858 + crate::com::atproto::identity::refresh_identity::Output, 3859 + crate::com::atproto::identity::refresh_identity::Error, 3860 + > { 3861 + let response = self 3862 + .xrpc 3863 + .send_xrpc::< 3864 + (), 3865 + _, 3866 + _, 3867 + _, 3868 + >( 3869 + &atrium_xrpc::XrpcRequest { 3870 + method: http::Method::POST, 3871 + nsid: crate::com::atproto::identity::refresh_identity::NSID.into(), 3872 + parameters: None, 3873 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 3874 + encoding: Some(String::from("application/json")), 3875 + }, 3876 + ) 3877 + .await?; 3878 + match response { 3879 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3880 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3881 + } 3882 + } 3883 + ///Request an email with a code to in order to request a signed PLC operation. Requires Auth. 3884 + pub async fn request_plc_operation_signature( 3885 + &self, 3886 + ) -> atrium_xrpc::Result< 3887 + (), 3888 + crate::com::atproto::identity::request_plc_operation_signature::Error, 3889 + > { 3890 + let response = self 3891 + .xrpc 3892 + .send_xrpc::< 3893 + (), 3894 + (), 3895 + (), 3896 + _, 3897 + >( 3898 + &atrium_xrpc::XrpcRequest { 3899 + method: http::Method::POST, 3900 + nsid: crate::com::atproto::identity::request_plc_operation_signature::NSID 3901 + .into(), 3902 + parameters: None, 3903 + input: None, 3904 + encoding: None, 3905 + }, 3906 + ) 3907 + .await?; 3908 + match response { 3909 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 3910 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3911 + } 3912 + } 3913 + ///Resolves DID to DID document. Does not bi-directionally verify handle. 3914 + pub async fn resolve_did( 3915 + &self, 3916 + params: crate::com::atproto::identity::resolve_did::Parameters, 3917 + ) -> atrium_xrpc::Result< 3918 + crate::com::atproto::identity::resolve_did::Output, 3919 + crate::com::atproto::identity::resolve_did::Error, 3920 + > { 3921 + let response = self 3922 + .xrpc 3923 + .send_xrpc::< 3924 + _, 3925 + (), 3926 + _, 3927 + _, 3928 + >( 3929 + &atrium_xrpc::XrpcRequest { 3930 + method: http::Method::GET, 3931 + nsid: crate::com::atproto::identity::resolve_did::NSID.into(), 3932 + parameters: Some(params), 3933 + input: None, 3934 + encoding: None, 3935 + }, 3936 + ) 3937 + .await?; 3938 + match response { 3939 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3940 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3941 + } 3942 + } 3943 + ///Resolves an atproto handle (hostname) to a DID. Does not necessarily bi-directionally verify against the the DID document. 3944 + pub async fn resolve_handle( 3945 + &self, 3946 + params: crate::com::atproto::identity::resolve_handle::Parameters, 3947 + ) -> atrium_xrpc::Result< 3948 + crate::com::atproto::identity::resolve_handle::Output, 3949 + crate::com::atproto::identity::resolve_handle::Error, 3950 + > { 3951 + let response = self 3952 + .xrpc 3953 + .send_xrpc::< 3954 + _, 3955 + (), 3956 + _, 3957 + _, 3958 + >( 3959 + &atrium_xrpc::XrpcRequest { 3960 + method: http::Method::GET, 3961 + nsid: crate::com::atproto::identity::resolve_handle::NSID.into(), 3962 + parameters: Some(params), 3963 + input: None, 3964 + encoding: None, 3965 + }, 3966 + ) 3967 + .await?; 3968 + match response { 3969 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 3970 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 3971 + } 3972 + } 3973 + ///Resolves an identity (DID or Handle) to a full identity (DID document and verified handle). 3974 + pub async fn resolve_identity( 3975 + &self, 3976 + params: crate::com::atproto::identity::resolve_identity::Parameters, 3977 + ) -> atrium_xrpc::Result< 3978 + crate::com::atproto::identity::resolve_identity::Output, 3979 + crate::com::atproto::identity::resolve_identity::Error, 3980 + > { 3981 + let response = self 3982 + .xrpc 3983 + .send_xrpc::< 3984 + _, 3985 + (), 3986 + _, 3987 + _, 3988 + >( 3989 + &atrium_xrpc::XrpcRequest { 3990 + method: http::Method::GET, 3991 + nsid: crate::com::atproto::identity::resolve_identity::NSID.into(), 3992 + parameters: Some(params), 3993 + input: None, 3994 + encoding: None, 3995 + }, 3996 + ) 3997 + .await?; 3998 + match response { 3999 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4000 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4001 + } 4002 + } 4003 + ///Signs a PLC operation to update some value(s) in the requesting DID's document. 4004 + pub async fn sign_plc_operation( 4005 + &self, 4006 + input: crate::com::atproto::identity::sign_plc_operation::Input, 4007 + ) -> atrium_xrpc::Result< 4008 + crate::com::atproto::identity::sign_plc_operation::Output, 4009 + crate::com::atproto::identity::sign_plc_operation::Error, 4010 + > { 4011 + let response = self 4012 + .xrpc 4013 + .send_xrpc::< 4014 + (), 4015 + _, 4016 + _, 4017 + _, 4018 + >( 4019 + &atrium_xrpc::XrpcRequest { 4020 + method: http::Method::POST, 4021 + nsid: crate::com::atproto::identity::sign_plc_operation::NSID.into(), 4022 + parameters: None, 4023 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4024 + encoding: Some(String::from("application/json")), 4025 + }, 4026 + ) 4027 + .await?; 4028 + match response { 4029 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4030 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4031 + } 4032 + } 4033 + ///Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the identity into a bad state, then submits it to the PLC registry 4034 + pub async fn submit_plc_operation( 4035 + &self, 4036 + input: crate::com::atproto::identity::submit_plc_operation::Input, 4037 + ) -> atrium_xrpc::Result< 4038 + (), 4039 + crate::com::atproto::identity::submit_plc_operation::Error, 4040 + > { 4041 + let response = self 4042 + .xrpc 4043 + .send_xrpc::< 4044 + (), 4045 + _, 4046 + (), 4047 + _, 4048 + >( 4049 + &atrium_xrpc::XrpcRequest { 4050 + method: http::Method::POST, 4051 + nsid: crate::com::atproto::identity::submit_plc_operation::NSID 4052 + .into(), 4053 + parameters: None, 4054 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4055 + encoding: Some(String::from("application/json")), 4056 + }, 4057 + ) 4058 + .await?; 4059 + match response { 4060 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 4061 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4062 + } 4063 + } 4064 + ///Updates the current account's handle. Verifies handle validity, and updates did:plc document if necessary. Implemented by PDS, and requires auth. 4065 + pub async fn update_handle( 4066 + &self, 4067 + input: crate::com::atproto::identity::update_handle::Input, 4068 + ) -> atrium_xrpc::Result<(), crate::com::atproto::identity::update_handle::Error> { 4069 + let response = self 4070 + .xrpc 4071 + .send_xrpc::< 4072 + (), 4073 + _, 4074 + (), 4075 + _, 4076 + >( 4077 + &atrium_xrpc::XrpcRequest { 4078 + method: http::Method::POST, 4079 + nsid: crate::com::atproto::identity::update_handle::NSID.into(), 4080 + parameters: None, 4081 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4082 + encoding: Some(String::from("application/json")), 4083 + }, 4084 + ) 4085 + .await?; 4086 + match response { 4087 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 4088 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4089 + } 4090 + } 4091 + } 4092 + impl<T> com::atproto::label::Service<T> 4093 + where 4094 + T: atrium_xrpc::XrpcClient + Send + Sync, 4095 + { 4096 + #[allow(unused_variables)] 4097 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 4098 + Self { 4099 + xrpc, 4100 + _phantom: core::marker::PhantomData, 4101 + } 4102 + } 4103 + ///Find labels relevant to the provided AT-URI patterns. Public endpoint for moderation services, though may return different or additional results with auth. 4104 + pub async fn query_labels( 4105 + &self, 4106 + params: crate::com::atproto::label::query_labels::Parameters, 4107 + ) -> atrium_xrpc::Result< 4108 + crate::com::atproto::label::query_labels::Output, 4109 + crate::com::atproto::label::query_labels::Error, 4110 + > { 4111 + let response = self 4112 + .xrpc 4113 + .send_xrpc::< 4114 + _, 4115 + (), 4116 + _, 4117 + _, 4118 + >( 4119 + &atrium_xrpc::XrpcRequest { 4120 + method: http::Method::GET, 4121 + nsid: crate::com::atproto::label::query_labels::NSID.into(), 4122 + parameters: Some(params), 4123 + input: None, 4124 + encoding: None, 4125 + }, 4126 + ) 4127 + .await?; 4128 + match response { 4129 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4130 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4131 + } 4132 + } 4133 + } 4134 + impl<T> com::atproto::moderation::Service<T> 4135 + where 4136 + T: atrium_xrpc::XrpcClient + Send + Sync, 4137 + { 4138 + #[allow(unused_variables)] 4139 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 4140 + Self { 4141 + xrpc, 4142 + _phantom: core::marker::PhantomData, 4143 + } 4144 + } 4145 + ///Submit a moderation report regarding an atproto account or record. Implemented by moderation services (with PDS proxying), and requires auth. 4146 + pub async fn create_report( 4147 + &self, 4148 + input: crate::com::atproto::moderation::create_report::Input, 4149 + ) -> atrium_xrpc::Result< 4150 + crate::com::atproto::moderation::create_report::Output, 4151 + crate::com::atproto::moderation::create_report::Error, 4152 + > { 4153 + let response = self 4154 + .xrpc 4155 + .send_xrpc::< 4156 + (), 4157 + _, 4158 + _, 4159 + _, 4160 + >( 4161 + &atrium_xrpc::XrpcRequest { 4162 + method: http::Method::POST, 4163 + nsid: crate::com::atproto::moderation::create_report::NSID.into(), 4164 + parameters: None, 4165 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4166 + encoding: Some(String::from("application/json")), 4167 + }, 4168 + ) 4169 + .await?; 4170 + match response { 4171 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4172 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4173 + } 4174 + } 4175 + } 4176 + impl<T> com::atproto::repo::Service<T> 4177 + where 4178 + T: atrium_xrpc::XrpcClient + Send + Sync, 4179 + { 4180 + #[allow(unused_variables)] 4181 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 4182 + Self { 4183 + xrpc, 4184 + _phantom: core::marker::PhantomData, 4185 + } 4186 + } 4187 + ///Apply a batch transaction of repository creates, updates, and deletes. Requires auth, implemented by PDS. 4188 + pub async fn apply_writes( 4189 + &self, 4190 + input: crate::com::atproto::repo::apply_writes::Input, 4191 + ) -> atrium_xrpc::Result< 4192 + crate::com::atproto::repo::apply_writes::Output, 4193 + crate::com::atproto::repo::apply_writes::Error, 4194 + > { 4195 + let response = self 4196 + .xrpc 4197 + .send_xrpc::< 4198 + (), 4199 + _, 4200 + _, 4201 + _, 4202 + >( 4203 + &atrium_xrpc::XrpcRequest { 4204 + method: http::Method::POST, 4205 + nsid: crate::com::atproto::repo::apply_writes::NSID.into(), 4206 + parameters: None, 4207 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4208 + encoding: Some(String::from("application/json")), 4209 + }, 4210 + ) 4211 + .await?; 4212 + match response { 4213 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4214 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4215 + } 4216 + } 4217 + ///Create a single new repository record. Requires auth, implemented by PDS. 4218 + pub async fn create_record( 4219 + &self, 4220 + input: crate::com::atproto::repo::create_record::Input, 4221 + ) -> atrium_xrpc::Result< 4222 + crate::com::atproto::repo::create_record::Output, 4223 + crate::com::atproto::repo::create_record::Error, 4224 + > { 4225 + let response = self 4226 + .xrpc 4227 + .send_xrpc::< 4228 + (), 4229 + _, 4230 + _, 4231 + _, 4232 + >( 4233 + &atrium_xrpc::XrpcRequest { 4234 + method: http::Method::POST, 4235 + nsid: crate::com::atproto::repo::create_record::NSID.into(), 4236 + parameters: None, 4237 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4238 + encoding: Some(String::from("application/json")), 4239 + }, 4240 + ) 4241 + .await?; 4242 + match response { 4243 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4244 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4245 + } 4246 + } 4247 + ///Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS. 4248 + pub async fn delete_record( 4249 + &self, 4250 + input: crate::com::atproto::repo::delete_record::Input, 4251 + ) -> atrium_xrpc::Result< 4252 + crate::com::atproto::repo::delete_record::Output, 4253 + crate::com::atproto::repo::delete_record::Error, 4254 + > { 4255 + let response = self 4256 + .xrpc 4257 + .send_xrpc::< 4258 + (), 4259 + _, 4260 + _, 4261 + _, 4262 + >( 4263 + &atrium_xrpc::XrpcRequest { 4264 + method: http::Method::POST, 4265 + nsid: crate::com::atproto::repo::delete_record::NSID.into(), 4266 + parameters: None, 4267 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4268 + encoding: Some(String::from("application/json")), 4269 + }, 4270 + ) 4271 + .await?; 4272 + match response { 4273 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4274 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4275 + } 4276 + } 4277 + ///Get information about an account and repository, including the list of collections. Does not require auth. 4278 + pub async fn describe_repo( 4279 + &self, 4280 + params: crate::com::atproto::repo::describe_repo::Parameters, 4281 + ) -> atrium_xrpc::Result< 4282 + crate::com::atproto::repo::describe_repo::Output, 4283 + crate::com::atproto::repo::describe_repo::Error, 4284 + > { 4285 + let response = self 4286 + .xrpc 4287 + .send_xrpc::< 4288 + _, 4289 + (), 4290 + _, 4291 + _, 4292 + >( 4293 + &atrium_xrpc::XrpcRequest { 4294 + method: http::Method::GET, 4295 + nsid: crate::com::atproto::repo::describe_repo::NSID.into(), 4296 + parameters: Some(params), 4297 + input: None, 4298 + encoding: None, 4299 + }, 4300 + ) 4301 + .await?; 4302 + match response { 4303 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4304 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4305 + } 4306 + } 4307 + ///Get a single record from a repository. Does not require auth. 4308 + pub async fn get_record( 4309 + &self, 4310 + params: crate::com::atproto::repo::get_record::Parameters, 4311 + ) -> atrium_xrpc::Result< 4312 + crate::com::atproto::repo::get_record::Output, 4313 + crate::com::atproto::repo::get_record::Error, 4314 + > { 4315 + let response = self 4316 + .xrpc 4317 + .send_xrpc::< 4318 + _, 4319 + (), 4320 + _, 4321 + _, 4322 + >( 4323 + &atrium_xrpc::XrpcRequest { 4324 + method: http::Method::GET, 4325 + nsid: crate::com::atproto::repo::get_record::NSID.into(), 4326 + parameters: Some(params), 4327 + input: None, 4328 + encoding: None, 4329 + }, 4330 + ) 4331 + .await?; 4332 + match response { 4333 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4334 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4335 + } 4336 + } 4337 + ///Import a repo in the form of a CAR file. Requires Content-Length HTTP header to be set. 4338 + pub async fn import_repo( 4339 + &self, 4340 + input: Vec<u8>, 4341 + ) -> atrium_xrpc::Result<(), crate::com::atproto::repo::import_repo::Error> { 4342 + let response = self 4343 + .xrpc 4344 + .send_xrpc::< 4345 + (), 4346 + Vec<u8>, 4347 + (), 4348 + _, 4349 + >( 4350 + &atrium_xrpc::XrpcRequest { 4351 + method: http::Method::POST, 4352 + nsid: crate::com::atproto::repo::import_repo::NSID.into(), 4353 + parameters: None, 4354 + input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)), 4355 + encoding: Some(String::from("application/vnd.ipld.car")), 4356 + }, 4357 + ) 4358 + .await?; 4359 + match response { 4360 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 4361 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4362 + } 4363 + } 4364 + ///Returns a list of missing blobs for the requesting account. Intended to be used in the account migration flow. 4365 + pub async fn list_missing_blobs( 4366 + &self, 4367 + params: crate::com::atproto::repo::list_missing_blobs::Parameters, 4368 + ) -> atrium_xrpc::Result< 4369 + crate::com::atproto::repo::list_missing_blobs::Output, 4370 + crate::com::atproto::repo::list_missing_blobs::Error, 4371 + > { 4372 + let response = self 4373 + .xrpc 4374 + .send_xrpc::< 4375 + _, 4376 + (), 4377 + _, 4378 + _, 4379 + >( 4380 + &atrium_xrpc::XrpcRequest { 4381 + method: http::Method::GET, 4382 + nsid: crate::com::atproto::repo::list_missing_blobs::NSID.into(), 4383 + parameters: Some(params), 4384 + input: None, 4385 + encoding: None, 4386 + }, 4387 + ) 4388 + .await?; 4389 + match response { 4390 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4391 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4392 + } 4393 + } 4394 + ///List a range of records in a repository, matching a specific collection. Does not require auth. 4395 + pub async fn list_records( 4396 + &self, 4397 + params: crate::com::atproto::repo::list_records::Parameters, 4398 + ) -> atrium_xrpc::Result< 4399 + crate::com::atproto::repo::list_records::Output, 4400 + crate::com::atproto::repo::list_records::Error, 4401 + > { 4402 + let response = self 4403 + .xrpc 4404 + .send_xrpc::< 4405 + _, 4406 + (), 4407 + _, 4408 + _, 4409 + >( 4410 + &atrium_xrpc::XrpcRequest { 4411 + method: http::Method::GET, 4412 + nsid: crate::com::atproto::repo::list_records::NSID.into(), 4413 + parameters: Some(params), 4414 + input: None, 4415 + encoding: None, 4416 + }, 4417 + ) 4418 + .await?; 4419 + match response { 4420 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4421 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4422 + } 4423 + } 4424 + ///Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS. 4425 + pub async fn put_record( 4426 + &self, 4427 + input: crate::com::atproto::repo::put_record::Input, 4428 + ) -> atrium_xrpc::Result< 4429 + crate::com::atproto::repo::put_record::Output, 4430 + crate::com::atproto::repo::put_record::Error, 4431 + > { 4432 + let response = self 4433 + .xrpc 4434 + .send_xrpc::< 4435 + (), 4436 + _, 4437 + _, 4438 + _, 4439 + >( 4440 + &atrium_xrpc::XrpcRequest { 4441 + method: http::Method::POST, 4442 + nsid: crate::com::atproto::repo::put_record::NSID.into(), 4443 + parameters: None, 4444 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4445 + encoding: Some(String::from("application/json")), 4446 + }, 4447 + ) 4448 + .await?; 4449 + match response { 4450 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4451 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4452 + } 4453 + } 4454 + ///Upload a new blob, to be referenced from a repository record. The blob will be deleted if it is not referenced within a time window (eg, minutes). Blob restrictions (mimetype, size, etc) are enforced when the reference is created. Requires auth, implemented by PDS. 4455 + pub async fn upload_blob( 4456 + &self, 4457 + input: Vec<u8>, 4458 + ) -> atrium_xrpc::Result< 4459 + crate::com::atproto::repo::upload_blob::Output, 4460 + crate::com::atproto::repo::upload_blob::Error, 4461 + > { 4462 + let response = self 4463 + .xrpc 4464 + .send_xrpc::< 4465 + (), 4466 + Vec<u8>, 4467 + _, 4468 + _, 4469 + >( 4470 + &atrium_xrpc::XrpcRequest { 4471 + method: http::Method::POST, 4472 + nsid: crate::com::atproto::repo::upload_blob::NSID.into(), 4473 + parameters: None, 4474 + input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)), 4475 + encoding: Some(String::from("*/*")), 4476 + }, 4477 + ) 4478 + .await?; 4479 + match response { 4480 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4481 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4482 + } 4483 + } 4484 + } 4485 + impl<T> com::atproto::server::Service<T> 4486 + where 4487 + T: atrium_xrpc::XrpcClient + Send + Sync, 4488 + { 4489 + #[allow(unused_variables)] 4490 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 4491 + Self { 4492 + xrpc, 4493 + _phantom: core::marker::PhantomData, 4494 + } 4495 + } 4496 + ///Activates a currently deactivated account. Used to finalize account migration after the account's repo is imported and identity is setup. 4497 + pub async fn activate_account( 4498 + &self, 4499 + ) -> atrium_xrpc::Result<(), crate::com::atproto::server::activate_account::Error> { 4500 + let response = self 4501 + .xrpc 4502 + .send_xrpc::< 4503 + (), 4504 + (), 4505 + (), 4506 + _, 4507 + >( 4508 + &atrium_xrpc::XrpcRequest { 4509 + method: http::Method::POST, 4510 + nsid: crate::com::atproto::server::activate_account::NSID.into(), 4511 + parameters: None, 4512 + input: None, 4513 + encoding: None, 4514 + }, 4515 + ) 4516 + .await?; 4517 + match response { 4518 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 4519 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4520 + } 4521 + } 4522 + ///Returns the status of an account, especially as pertaining to import or recovery. Can be called many times over the course of an account migration. Requires auth and can only be called pertaining to oneself. 4523 + pub async fn check_account_status( 4524 + &self, 4525 + ) -> atrium_xrpc::Result< 4526 + crate::com::atproto::server::check_account_status::Output, 4527 + crate::com::atproto::server::check_account_status::Error, 4528 + > { 4529 + let response = self 4530 + .xrpc 4531 + .send_xrpc::< 4532 + (), 4533 + (), 4534 + _, 4535 + _, 4536 + >( 4537 + &atrium_xrpc::XrpcRequest { 4538 + method: http::Method::GET, 4539 + nsid: crate::com::atproto::server::check_account_status::NSID.into(), 4540 + parameters: None, 4541 + input: None, 4542 + encoding: None, 4543 + }, 4544 + ) 4545 + .await?; 4546 + match response { 4547 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4548 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4549 + } 4550 + } 4551 + ///Confirm an email using a token from com.atproto.server.requestEmailConfirmation. 4552 + pub async fn confirm_email( 4553 + &self, 4554 + input: crate::com::atproto::server::confirm_email::Input, 4555 + ) -> atrium_xrpc::Result<(), crate::com::atproto::server::confirm_email::Error> { 4556 + let response = self 4557 + .xrpc 4558 + .send_xrpc::< 4559 + (), 4560 + _, 4561 + (), 4562 + _, 4563 + >( 4564 + &atrium_xrpc::XrpcRequest { 4565 + method: http::Method::POST, 4566 + nsid: crate::com::atproto::server::confirm_email::NSID.into(), 4567 + parameters: None, 4568 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4569 + encoding: Some(String::from("application/json")), 4570 + }, 4571 + ) 4572 + .await?; 4573 + match response { 4574 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 4575 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4576 + } 4577 + } 4578 + ///Create an account. Implemented by PDS. 4579 + pub async fn create_account( 4580 + &self, 4581 + input: crate::com::atproto::server::create_account::Input, 4582 + ) -> atrium_xrpc::Result< 4583 + crate::com::atproto::server::create_account::Output, 4584 + crate::com::atproto::server::create_account::Error, 4585 + > { 4586 + let response = self 4587 + .xrpc 4588 + .send_xrpc::< 4589 + (), 4590 + _, 4591 + _, 4592 + _, 4593 + >( 4594 + &atrium_xrpc::XrpcRequest { 4595 + method: http::Method::POST, 4596 + nsid: crate::com::atproto::server::create_account::NSID.into(), 4597 + parameters: None, 4598 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4599 + encoding: Some(String::from("application/json")), 4600 + }, 4601 + ) 4602 + .await?; 4603 + match response { 4604 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4605 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4606 + } 4607 + } 4608 + ///Create an App Password. 4609 + pub async fn create_app_password( 4610 + &self, 4611 + input: crate::com::atproto::server::create_app_password::Input, 4612 + ) -> atrium_xrpc::Result< 4613 + crate::com::atproto::server::create_app_password::Output, 4614 + crate::com::atproto::server::create_app_password::Error, 4615 + > { 4616 + let response = self 4617 + .xrpc 4618 + .send_xrpc::< 4619 + (), 4620 + _, 4621 + _, 4622 + _, 4623 + >( 4624 + &atrium_xrpc::XrpcRequest { 4625 + method: http::Method::POST, 4626 + nsid: crate::com::atproto::server::create_app_password::NSID.into(), 4627 + parameters: None, 4628 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4629 + encoding: Some(String::from("application/json")), 4630 + }, 4631 + ) 4632 + .await?; 4633 + match response { 4634 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4635 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4636 + } 4637 + } 4638 + ///Create an invite code. 4639 + pub async fn create_invite_code( 4640 + &self, 4641 + input: crate::com::atproto::server::create_invite_code::Input, 4642 + ) -> atrium_xrpc::Result< 4643 + crate::com::atproto::server::create_invite_code::Output, 4644 + crate::com::atproto::server::create_invite_code::Error, 4645 + > { 4646 + let response = self 4647 + .xrpc 4648 + .send_xrpc::< 4649 + (), 4650 + _, 4651 + _, 4652 + _, 4653 + >( 4654 + &atrium_xrpc::XrpcRequest { 4655 + method: http::Method::POST, 4656 + nsid: crate::com::atproto::server::create_invite_code::NSID.into(), 4657 + parameters: None, 4658 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4659 + encoding: Some(String::from("application/json")), 4660 + }, 4661 + ) 4662 + .await?; 4663 + match response { 4664 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4665 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4666 + } 4667 + } 4668 + ///Create invite codes. 4669 + pub async fn create_invite_codes( 4670 + &self, 4671 + input: crate::com::atproto::server::create_invite_codes::Input, 4672 + ) -> atrium_xrpc::Result< 4673 + crate::com::atproto::server::create_invite_codes::Output, 4674 + crate::com::atproto::server::create_invite_codes::Error, 4675 + > { 4676 + let response = self 4677 + .xrpc 4678 + .send_xrpc::< 4679 + (), 4680 + _, 4681 + _, 4682 + _, 4683 + >( 4684 + &atrium_xrpc::XrpcRequest { 4685 + method: http::Method::POST, 4686 + nsid: crate::com::atproto::server::create_invite_codes::NSID.into(), 4687 + parameters: None, 4688 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4689 + encoding: Some(String::from("application/json")), 4690 + }, 4691 + ) 4692 + .await?; 4693 + match response { 4694 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4695 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4696 + } 4697 + } 4698 + ///Create an authentication session. 4699 + pub async fn create_session( 4700 + &self, 4701 + input: crate::com::atproto::server::create_session::Input, 4702 + ) -> atrium_xrpc::Result< 4703 + crate::com::atproto::server::create_session::Output, 4704 + crate::com::atproto::server::create_session::Error, 4705 + > { 4706 + let response = self 4707 + .xrpc 4708 + .send_xrpc::< 4709 + (), 4710 + _, 4711 + _, 4712 + _, 4713 + >( 4714 + &atrium_xrpc::XrpcRequest { 4715 + method: http::Method::POST, 4716 + nsid: crate::com::atproto::server::create_session::NSID.into(), 4717 + parameters: None, 4718 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4719 + encoding: Some(String::from("application/json")), 4720 + }, 4721 + ) 4722 + .await?; 4723 + match response { 4724 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4725 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4726 + } 4727 + } 4728 + ///Deactivates a currently active account. Stops serving of repo, and future writes to repo until reactivated. Used to finalize account migration with the old host after the account has been activated on the new host. 4729 + pub async fn deactivate_account( 4730 + &self, 4731 + input: crate::com::atproto::server::deactivate_account::Input, 4732 + ) -> atrium_xrpc::Result< 4733 + (), 4734 + crate::com::atproto::server::deactivate_account::Error, 4735 + > { 4736 + let response = self 4737 + .xrpc 4738 + .send_xrpc::< 4739 + (), 4740 + _, 4741 + (), 4742 + _, 4743 + >( 4744 + &atrium_xrpc::XrpcRequest { 4745 + method: http::Method::POST, 4746 + nsid: crate::com::atproto::server::deactivate_account::NSID.into(), 4747 + parameters: None, 4748 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4749 + encoding: Some(String::from("application/json")), 4750 + }, 4751 + ) 4752 + .await?; 4753 + match response { 4754 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 4755 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4756 + } 4757 + } 4758 + ///Delete an actor's account with a token and password. Can only be called after requesting a deletion token. Requires auth. 4759 + pub async fn delete_account( 4760 + &self, 4761 + input: crate::com::atproto::server::delete_account::Input, 4762 + ) -> atrium_xrpc::Result<(), crate::com::atproto::server::delete_account::Error> { 4763 + let response = self 4764 + .xrpc 4765 + .send_xrpc::< 4766 + (), 4767 + _, 4768 + (), 4769 + _, 4770 + >( 4771 + &atrium_xrpc::XrpcRequest { 4772 + method: http::Method::POST, 4773 + nsid: crate::com::atproto::server::delete_account::NSID.into(), 4774 + parameters: None, 4775 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 4776 + encoding: Some(String::from("application/json")), 4777 + }, 4778 + ) 4779 + .await?; 4780 + match response { 4781 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 4782 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4783 + } 4784 + } 4785 + ///Delete the current session. Requires auth. 4786 + pub async fn delete_session( 4787 + &self, 4788 + ) -> atrium_xrpc::Result<(), crate::com::atproto::server::delete_session::Error> { 4789 + let response = self 4790 + .xrpc 4791 + .send_xrpc::< 4792 + (), 4793 + (), 4794 + (), 4795 + _, 4796 + >( 4797 + &atrium_xrpc::XrpcRequest { 4798 + method: http::Method::POST, 4799 + nsid: crate::com::atproto::server::delete_session::NSID.into(), 4800 + parameters: None, 4801 + input: None, 4802 + encoding: None, 4803 + }, 4804 + ) 4805 + .await?; 4806 + match response { 4807 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 4808 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4809 + } 4810 + } 4811 + ///Describes the server's account creation requirements and capabilities. Implemented by PDS. 4812 + pub async fn describe_server( 4813 + &self, 4814 + ) -> atrium_xrpc::Result< 4815 + crate::com::atproto::server::describe_server::Output, 4816 + crate::com::atproto::server::describe_server::Error, 4817 + > { 4818 + let response = self 4819 + .xrpc 4820 + .send_xrpc::< 4821 + (), 4822 + (), 4823 + _, 4824 + _, 4825 + >( 4826 + &atrium_xrpc::XrpcRequest { 4827 + method: http::Method::GET, 4828 + nsid: crate::com::atproto::server::describe_server::NSID.into(), 4829 + parameters: None, 4830 + input: None, 4831 + encoding: None, 4832 + }, 4833 + ) 4834 + .await?; 4835 + match response { 4836 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4837 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4838 + } 4839 + } 4840 + ///Get all invite codes for the current account. Requires auth. 4841 + pub async fn get_account_invite_codes( 4842 + &self, 4843 + params: crate::com::atproto::server::get_account_invite_codes::Parameters, 4844 + ) -> atrium_xrpc::Result< 4845 + crate::com::atproto::server::get_account_invite_codes::Output, 4846 + crate::com::atproto::server::get_account_invite_codes::Error, 4847 + > { 4848 + let response = self 4849 + .xrpc 4850 + .send_xrpc::< 4851 + _, 4852 + (), 4853 + _, 4854 + _, 4855 + >( 4856 + &atrium_xrpc::XrpcRequest { 4857 + method: http::Method::GET, 4858 + nsid: crate::com::atproto::server::get_account_invite_codes::NSID 4859 + .into(), 4860 + parameters: Some(params), 4861 + input: None, 4862 + encoding: None, 4863 + }, 4864 + ) 4865 + .await?; 4866 + match response { 4867 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4868 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4869 + } 4870 + } 4871 + ///Get a signed token on behalf of the requesting DID for the requested service. 4872 + pub async fn get_service_auth( 4873 + &self, 4874 + params: crate::com::atproto::server::get_service_auth::Parameters, 4875 + ) -> atrium_xrpc::Result< 4876 + crate::com::atproto::server::get_service_auth::Output, 4877 + crate::com::atproto::server::get_service_auth::Error, 4878 + > { 4879 + let response = self 4880 + .xrpc 4881 + .send_xrpc::< 4882 + _, 4883 + (), 4884 + _, 4885 + _, 4886 + >( 4887 + &atrium_xrpc::XrpcRequest { 4888 + method: http::Method::GET, 4889 + nsid: crate::com::atproto::server::get_service_auth::NSID.into(), 4890 + parameters: Some(params), 4891 + input: None, 4892 + encoding: None, 4893 + }, 4894 + ) 4895 + .await?; 4896 + match response { 4897 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4898 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4899 + } 4900 + } 4901 + ///Get information about the current auth session. Requires auth. 4902 + pub async fn get_session( 4903 + &self, 4904 + ) -> atrium_xrpc::Result< 4905 + crate::com::atproto::server::get_session::Output, 4906 + crate::com::atproto::server::get_session::Error, 4907 + > { 4908 + let response = self 4909 + .xrpc 4910 + .send_xrpc::< 4911 + (), 4912 + (), 4913 + _, 4914 + _, 4915 + >( 4916 + &atrium_xrpc::XrpcRequest { 4917 + method: http::Method::GET, 4918 + nsid: crate::com::atproto::server::get_session::NSID.into(), 4919 + parameters: None, 4920 + input: None, 4921 + encoding: None, 4922 + }, 4923 + ) 4924 + .await?; 4925 + match response { 4926 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4927 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4928 + } 4929 + } 4930 + ///List all App Passwords. 4931 + pub async fn list_app_passwords( 4932 + &self, 4933 + ) -> atrium_xrpc::Result< 4934 + crate::com::atproto::server::list_app_passwords::Output, 4935 + crate::com::atproto::server::list_app_passwords::Error, 4936 + > { 4937 + let response = self 4938 + .xrpc 4939 + .send_xrpc::< 4940 + (), 4941 + (), 4942 + _, 4943 + _, 4944 + >( 4945 + &atrium_xrpc::XrpcRequest { 4946 + method: http::Method::GET, 4947 + nsid: crate::com::atproto::server::list_app_passwords::NSID.into(), 4948 + parameters: None, 4949 + input: None, 4950 + encoding: None, 4951 + }, 4952 + ) 4953 + .await?; 4954 + match response { 4955 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4956 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4957 + } 4958 + } 4959 + ///Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt'). 4960 + pub async fn refresh_session( 4961 + &self, 4962 + ) -> atrium_xrpc::Result< 4963 + crate::com::atproto::server::refresh_session::Output, 4964 + crate::com::atproto::server::refresh_session::Error, 4965 + > { 4966 + let response = self 4967 + .xrpc 4968 + .send_xrpc::< 4969 + (), 4970 + (), 4971 + _, 4972 + _, 4973 + >( 4974 + &atrium_xrpc::XrpcRequest { 4975 + method: http::Method::POST, 4976 + nsid: crate::com::atproto::server::refresh_session::NSID.into(), 4977 + parameters: None, 4978 + input: None, 4979 + encoding: None, 4980 + }, 4981 + ) 4982 + .await?; 4983 + match response { 4984 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 4985 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 4986 + } 4987 + } 4988 + ///Initiate a user account deletion via email. 4989 + pub async fn request_account_delete( 4990 + &self, 4991 + ) -> atrium_xrpc::Result< 4992 + (), 4993 + crate::com::atproto::server::request_account_delete::Error, 4994 + > { 4995 + let response = self 4996 + .xrpc 4997 + .send_xrpc::< 4998 + (), 4999 + (), 5000 + (), 5001 + _, 5002 + >( 5003 + &atrium_xrpc::XrpcRequest { 5004 + method: http::Method::POST, 5005 + nsid: crate::com::atproto::server::request_account_delete::NSID 5006 + .into(), 5007 + parameters: None, 5008 + input: None, 5009 + encoding: None, 5010 + }, 5011 + ) 5012 + .await?; 5013 + match response { 5014 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5015 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5016 + } 5017 + } 5018 + ///Request an email with a code to confirm ownership of email. 5019 + pub async fn request_email_confirmation( 5020 + &self, 5021 + ) -> atrium_xrpc::Result< 5022 + (), 5023 + crate::com::atproto::server::request_email_confirmation::Error, 5024 + > { 5025 + let response = self 5026 + .xrpc 5027 + .send_xrpc::< 5028 + (), 5029 + (), 5030 + (), 5031 + _, 5032 + >( 5033 + &atrium_xrpc::XrpcRequest { 5034 + method: http::Method::POST, 5035 + nsid: crate::com::atproto::server::request_email_confirmation::NSID 5036 + .into(), 5037 + parameters: None, 5038 + input: None, 5039 + encoding: None, 5040 + }, 5041 + ) 5042 + .await?; 5043 + match response { 5044 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5045 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5046 + } 5047 + } 5048 + ///Request a token in order to update email. 5049 + pub async fn request_email_update( 5050 + &self, 5051 + ) -> atrium_xrpc::Result< 5052 + crate::com::atproto::server::request_email_update::Output, 5053 + crate::com::atproto::server::request_email_update::Error, 5054 + > { 5055 + let response = self 5056 + .xrpc 5057 + .send_xrpc::< 5058 + (), 5059 + (), 5060 + _, 5061 + _, 5062 + >( 5063 + &atrium_xrpc::XrpcRequest { 5064 + method: http::Method::POST, 5065 + nsid: crate::com::atproto::server::request_email_update::NSID.into(), 5066 + parameters: None, 5067 + input: None, 5068 + encoding: None, 5069 + }, 5070 + ) 5071 + .await?; 5072 + match response { 5073 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5074 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5075 + } 5076 + } 5077 + ///Initiate a user account password reset via email. 5078 + pub async fn request_password_reset( 5079 + &self, 5080 + input: crate::com::atproto::server::request_password_reset::Input, 5081 + ) -> atrium_xrpc::Result< 5082 + (), 5083 + crate::com::atproto::server::request_password_reset::Error, 5084 + > { 5085 + let response = self 5086 + .xrpc 5087 + .send_xrpc::< 5088 + (), 5089 + _, 5090 + (), 5091 + _, 5092 + >( 5093 + &atrium_xrpc::XrpcRequest { 5094 + method: http::Method::POST, 5095 + nsid: crate::com::atproto::server::request_password_reset::NSID 5096 + .into(), 5097 + parameters: None, 5098 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5099 + encoding: Some(String::from("application/json")), 5100 + }, 5101 + ) 5102 + .await?; 5103 + match response { 5104 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5105 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5106 + } 5107 + } 5108 + ///Reserve a repo signing key, for use with account creation. Necessary so that a DID PLC update operation can be constructed during an account migraiton. Public and does not require auth; implemented by PDS. NOTE: this endpoint may change when full account migration is implemented. 5109 + pub async fn reserve_signing_key( 5110 + &self, 5111 + input: crate::com::atproto::server::reserve_signing_key::Input, 5112 + ) -> atrium_xrpc::Result< 5113 + crate::com::atproto::server::reserve_signing_key::Output, 5114 + crate::com::atproto::server::reserve_signing_key::Error, 5115 + > { 5116 + let response = self 5117 + .xrpc 5118 + .send_xrpc::< 5119 + (), 5120 + _, 5121 + _, 5122 + _, 5123 + >( 5124 + &atrium_xrpc::XrpcRequest { 5125 + method: http::Method::POST, 5126 + nsid: crate::com::atproto::server::reserve_signing_key::NSID.into(), 5127 + parameters: None, 5128 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5129 + encoding: Some(String::from("application/json")), 5130 + }, 5131 + ) 5132 + .await?; 5133 + match response { 5134 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5135 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5136 + } 5137 + } 5138 + ///Reset a user account password using a token. 5139 + pub async fn reset_password( 5140 + &self, 5141 + input: crate::com::atproto::server::reset_password::Input, 5142 + ) -> atrium_xrpc::Result<(), crate::com::atproto::server::reset_password::Error> { 5143 + let response = self 5144 + .xrpc 5145 + .send_xrpc::< 5146 + (), 5147 + _, 5148 + (), 5149 + _, 5150 + >( 5151 + &atrium_xrpc::XrpcRequest { 5152 + method: http::Method::POST, 5153 + nsid: crate::com::atproto::server::reset_password::NSID.into(), 5154 + parameters: None, 5155 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5156 + encoding: Some(String::from("application/json")), 5157 + }, 5158 + ) 5159 + .await?; 5160 + match response { 5161 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5162 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5163 + } 5164 + } 5165 + ///Revoke an App Password by name. 5166 + pub async fn revoke_app_password( 5167 + &self, 5168 + input: crate::com::atproto::server::revoke_app_password::Input, 5169 + ) -> atrium_xrpc::Result< 5170 + (), 5171 + crate::com::atproto::server::revoke_app_password::Error, 5172 + > { 5173 + let response = self 5174 + .xrpc 5175 + .send_xrpc::< 5176 + (), 5177 + _, 5178 + (), 5179 + _, 5180 + >( 5181 + &atrium_xrpc::XrpcRequest { 5182 + method: http::Method::POST, 5183 + nsid: crate::com::atproto::server::revoke_app_password::NSID.into(), 5184 + parameters: None, 5185 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5186 + encoding: Some(String::from("application/json")), 5187 + }, 5188 + ) 5189 + .await?; 5190 + match response { 5191 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5192 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5193 + } 5194 + } 5195 + ///Update an account's email. 5196 + pub async fn update_email( 5197 + &self, 5198 + input: crate::com::atproto::server::update_email::Input, 5199 + ) -> atrium_xrpc::Result<(), crate::com::atproto::server::update_email::Error> { 5200 + let response = self 5201 + .xrpc 5202 + .send_xrpc::< 5203 + (), 5204 + _, 5205 + (), 5206 + _, 5207 + >( 5208 + &atrium_xrpc::XrpcRequest { 5209 + method: http::Method::POST, 5210 + nsid: crate::com::atproto::server::update_email::NSID.into(), 5211 + parameters: None, 5212 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5213 + encoding: Some(String::from("application/json")), 5214 + }, 5215 + ) 5216 + .await?; 5217 + match response { 5218 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5219 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5220 + } 5221 + } 5222 + } 5223 + impl<T> com::atproto::sync::Service<T> 5224 + where 5225 + T: atrium_xrpc::XrpcClient + Send + Sync, 5226 + { 5227 + #[allow(unused_variables)] 5228 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 5229 + Self { 5230 + xrpc, 5231 + _phantom: core::marker::PhantomData, 5232 + } 5233 + } 5234 + ///Get a blob associated with a given account. Returns the full blob as originally uploaded. Does not require auth; implemented by PDS. 5235 + pub async fn get_blob( 5236 + &self, 5237 + params: crate::com::atproto::sync::get_blob::Parameters, 5238 + ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_blob::Error> { 5239 + let response = self 5240 + .xrpc 5241 + .send_xrpc::< 5242 + _, 5243 + (), 5244 + (), 5245 + _, 5246 + >( 5247 + &atrium_xrpc::XrpcRequest { 5248 + method: http::Method::GET, 5249 + nsid: crate::com::atproto::sync::get_blob::NSID.into(), 5250 + parameters: Some(params), 5251 + input: None, 5252 + encoding: None, 5253 + }, 5254 + ) 5255 + .await?; 5256 + match response { 5257 + atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes), 5258 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5259 + } 5260 + } 5261 + ///Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records. Does not require auth; implemented by PDS. 5262 + pub async fn get_blocks( 5263 + &self, 5264 + params: crate::com::atproto::sync::get_blocks::Parameters, 5265 + ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_blocks::Error> { 5266 + let response = self 5267 + .xrpc 5268 + .send_xrpc::< 5269 + _, 5270 + (), 5271 + (), 5272 + _, 5273 + >( 5274 + &atrium_xrpc::XrpcRequest { 5275 + method: http::Method::GET, 5276 + nsid: crate::com::atproto::sync::get_blocks::NSID.into(), 5277 + parameters: Some(params), 5278 + input: None, 5279 + encoding: None, 5280 + }, 5281 + ) 5282 + .await?; 5283 + match response { 5284 + atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes), 5285 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5286 + } 5287 + } 5288 + ///DEPRECATED - please use com.atproto.sync.getRepo instead 5289 + pub async fn get_checkout( 5290 + &self, 5291 + params: crate::com::atproto::sync::get_checkout::Parameters, 5292 + ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_checkout::Error> { 5293 + let response = self 5294 + .xrpc 5295 + .send_xrpc::< 5296 + _, 5297 + (), 5298 + (), 5299 + _, 5300 + >( 5301 + &atrium_xrpc::XrpcRequest { 5302 + method: http::Method::GET, 5303 + nsid: crate::com::atproto::sync::get_checkout::NSID.into(), 5304 + parameters: Some(params), 5305 + input: None, 5306 + encoding: None, 5307 + }, 5308 + ) 5309 + .await?; 5310 + match response { 5311 + atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes), 5312 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5313 + } 5314 + } 5315 + ///DEPRECATED - please use com.atproto.sync.getLatestCommit instead 5316 + pub async fn get_head( 5317 + &self, 5318 + params: crate::com::atproto::sync::get_head::Parameters, 5319 + ) -> atrium_xrpc::Result< 5320 + crate::com::atproto::sync::get_head::Output, 5321 + crate::com::atproto::sync::get_head::Error, 5322 + > { 5323 + let response = self 5324 + .xrpc 5325 + .send_xrpc::< 5326 + _, 5327 + (), 5328 + _, 5329 + _, 5330 + >( 5331 + &atrium_xrpc::XrpcRequest { 5332 + method: http::Method::GET, 5333 + nsid: crate::com::atproto::sync::get_head::NSID.into(), 5334 + parameters: Some(params), 5335 + input: None, 5336 + encoding: None, 5337 + }, 5338 + ) 5339 + .await?; 5340 + match response { 5341 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5342 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5343 + } 5344 + } 5345 + ///Returns information about a specified upstream host, as consumed by the server. Implemented by relays. 5346 + pub async fn get_host_status( 5347 + &self, 5348 + params: crate::com::atproto::sync::get_host_status::Parameters, 5349 + ) -> atrium_xrpc::Result< 5350 + crate::com::atproto::sync::get_host_status::Output, 5351 + crate::com::atproto::sync::get_host_status::Error, 5352 + > { 5353 + let response = self 5354 + .xrpc 5355 + .send_xrpc::< 5356 + _, 5357 + (), 5358 + _, 5359 + _, 5360 + >( 5361 + &atrium_xrpc::XrpcRequest { 5362 + method: http::Method::GET, 5363 + nsid: crate::com::atproto::sync::get_host_status::NSID.into(), 5364 + parameters: Some(params), 5365 + input: None, 5366 + encoding: None, 5367 + }, 5368 + ) 5369 + .await?; 5370 + match response { 5371 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5372 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5373 + } 5374 + } 5375 + ///Get the current commit CID & revision of the specified repo. Does not require auth. 5376 + pub async fn get_latest_commit( 5377 + &self, 5378 + params: crate::com::atproto::sync::get_latest_commit::Parameters, 5379 + ) -> atrium_xrpc::Result< 5380 + crate::com::atproto::sync::get_latest_commit::Output, 5381 + crate::com::atproto::sync::get_latest_commit::Error, 5382 + > { 5383 + let response = self 5384 + .xrpc 5385 + .send_xrpc::< 5386 + _, 5387 + (), 5388 + _, 5389 + _, 5390 + >( 5391 + &atrium_xrpc::XrpcRequest { 5392 + method: http::Method::GET, 5393 + nsid: crate::com::atproto::sync::get_latest_commit::NSID.into(), 5394 + parameters: Some(params), 5395 + input: None, 5396 + encoding: None, 5397 + }, 5398 + ) 5399 + .await?; 5400 + match response { 5401 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5402 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5403 + } 5404 + } 5405 + ///Get data blocks needed to prove the existence or non-existence of record in the current version of repo. Does not require auth. 5406 + pub async fn get_record( 5407 + &self, 5408 + params: crate::com::atproto::sync::get_record::Parameters, 5409 + ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_record::Error> { 5410 + let response = self 5411 + .xrpc 5412 + .send_xrpc::< 5413 + _, 5414 + (), 5415 + (), 5416 + _, 5417 + >( 5418 + &atrium_xrpc::XrpcRequest { 5419 + method: http::Method::GET, 5420 + nsid: crate::com::atproto::sync::get_record::NSID.into(), 5421 + parameters: Some(params), 5422 + input: None, 5423 + encoding: None, 5424 + }, 5425 + ) 5426 + .await?; 5427 + match response { 5428 + atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes), 5429 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5430 + } 5431 + } 5432 + ///Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS. 5433 + pub async fn get_repo( 5434 + &self, 5435 + params: crate::com::atproto::sync::get_repo::Parameters, 5436 + ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_repo::Error> { 5437 + let response = self 5438 + .xrpc 5439 + .send_xrpc::< 5440 + _, 5441 + (), 5442 + (), 5443 + _, 5444 + >( 5445 + &atrium_xrpc::XrpcRequest { 5446 + method: http::Method::GET, 5447 + nsid: crate::com::atproto::sync::get_repo::NSID.into(), 5448 + parameters: Some(params), 5449 + input: None, 5450 + encoding: None, 5451 + }, 5452 + ) 5453 + .await?; 5454 + match response { 5455 + atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes), 5456 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5457 + } 5458 + } 5459 + ///Get the hosting status for a repository, on this server. Expected to be implemented by PDS and Relay. 5460 + pub async fn get_repo_status( 5461 + &self, 5462 + params: crate::com::atproto::sync::get_repo_status::Parameters, 5463 + ) -> atrium_xrpc::Result< 5464 + crate::com::atproto::sync::get_repo_status::Output, 5465 + crate::com::atproto::sync::get_repo_status::Error, 5466 + > { 5467 + let response = self 5468 + .xrpc 5469 + .send_xrpc::< 5470 + _, 5471 + (), 5472 + _, 5473 + _, 5474 + >( 5475 + &atrium_xrpc::XrpcRequest { 5476 + method: http::Method::GET, 5477 + nsid: crate::com::atproto::sync::get_repo_status::NSID.into(), 5478 + parameters: Some(params), 5479 + input: None, 5480 + encoding: None, 5481 + }, 5482 + ) 5483 + .await?; 5484 + match response { 5485 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5486 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5487 + } 5488 + } 5489 + ///List blob CIDs for an account, since some repo revision. Does not require auth; implemented by PDS. 5490 + pub async fn list_blobs( 5491 + &self, 5492 + params: crate::com::atproto::sync::list_blobs::Parameters, 5493 + ) -> atrium_xrpc::Result< 5494 + crate::com::atproto::sync::list_blobs::Output, 5495 + crate::com::atproto::sync::list_blobs::Error, 5496 + > { 5497 + let response = self 5498 + .xrpc 5499 + .send_xrpc::< 5500 + _, 5501 + (), 5502 + _, 5503 + _, 5504 + >( 5505 + &atrium_xrpc::XrpcRequest { 5506 + method: http::Method::GET, 5507 + nsid: crate::com::atproto::sync::list_blobs::NSID.into(), 5508 + parameters: Some(params), 5509 + input: None, 5510 + encoding: None, 5511 + }, 5512 + ) 5513 + .await?; 5514 + match response { 5515 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5516 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5517 + } 5518 + } 5519 + ///Enumerates upstream hosts (eg, PDS or relay instances) that this service consumes from. Implemented by relays. 5520 + pub async fn list_hosts( 5521 + &self, 5522 + params: crate::com::atproto::sync::list_hosts::Parameters, 5523 + ) -> atrium_xrpc::Result< 5524 + crate::com::atproto::sync::list_hosts::Output, 5525 + crate::com::atproto::sync::list_hosts::Error, 5526 + > { 5527 + let response = self 5528 + .xrpc 5529 + .send_xrpc::< 5530 + _, 5531 + (), 5532 + _, 5533 + _, 5534 + >( 5535 + &atrium_xrpc::XrpcRequest { 5536 + method: http::Method::GET, 5537 + nsid: crate::com::atproto::sync::list_hosts::NSID.into(), 5538 + parameters: Some(params), 5539 + input: None, 5540 + encoding: None, 5541 + }, 5542 + ) 5543 + .await?; 5544 + match response { 5545 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5546 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5547 + } 5548 + } 5549 + ///Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not require auth; implemented by PDS and Relay. 5550 + pub async fn list_repos( 5551 + &self, 5552 + params: crate::com::atproto::sync::list_repos::Parameters, 5553 + ) -> atrium_xrpc::Result< 5554 + crate::com::atproto::sync::list_repos::Output, 5555 + crate::com::atproto::sync::list_repos::Error, 5556 + > { 5557 + let response = self 5558 + .xrpc 5559 + .send_xrpc::< 5560 + _, 5561 + (), 5562 + _, 5563 + _, 5564 + >( 5565 + &atrium_xrpc::XrpcRequest { 5566 + method: http::Method::GET, 5567 + nsid: crate::com::atproto::sync::list_repos::NSID.into(), 5568 + parameters: Some(params), 5569 + input: None, 5570 + encoding: None, 5571 + }, 5572 + ) 5573 + .await?; 5574 + match response { 5575 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5576 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5577 + } 5578 + } 5579 + ///Enumerates all the DIDs which have records with the given collection NSID. 5580 + pub async fn list_repos_by_collection( 5581 + &self, 5582 + params: crate::com::atproto::sync::list_repos_by_collection::Parameters, 5583 + ) -> atrium_xrpc::Result< 5584 + crate::com::atproto::sync::list_repos_by_collection::Output, 5585 + crate::com::atproto::sync::list_repos_by_collection::Error, 5586 + > { 5587 + let response = self 5588 + .xrpc 5589 + .send_xrpc::< 5590 + _, 5591 + (), 5592 + _, 5593 + _, 5594 + >( 5595 + &atrium_xrpc::XrpcRequest { 5596 + method: http::Method::GET, 5597 + nsid: crate::com::atproto::sync::list_repos_by_collection::NSID 5598 + .into(), 5599 + parameters: Some(params), 5600 + input: None, 5601 + encoding: None, 5602 + }, 5603 + ) 5604 + .await?; 5605 + match response { 5606 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5607 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5608 + } 5609 + } 5610 + ///Notify a crawling service of a recent update, and that crawling should resume. Intended use is after a gap between repo stream events caused the crawling service to disconnect. Does not require auth; implemented by Relay. DEPRECATED: just use com.atproto.sync.requestCrawl 5611 + pub async fn notify_of_update( 5612 + &self, 5613 + input: crate::com::atproto::sync::notify_of_update::Input, 5614 + ) -> atrium_xrpc::Result<(), crate::com::atproto::sync::notify_of_update::Error> { 5615 + let response = self 5616 + .xrpc 5617 + .send_xrpc::< 5618 + (), 5619 + _, 5620 + (), 5621 + _, 5622 + >( 5623 + &atrium_xrpc::XrpcRequest { 5624 + method: http::Method::POST, 5625 + nsid: crate::com::atproto::sync::notify_of_update::NSID.into(), 5626 + parameters: None, 5627 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5628 + encoding: Some(String::from("application/json")), 5629 + }, 5630 + ) 5631 + .await?; 5632 + match response { 5633 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5634 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5635 + } 5636 + } 5637 + ///Request a service to persistently crawl hosted repos. Expected use is new PDS instances declaring their existence to Relays. Does not require auth. 5638 + pub async fn request_crawl( 5639 + &self, 5640 + input: crate::com::atproto::sync::request_crawl::Input, 5641 + ) -> atrium_xrpc::Result<(), crate::com::atproto::sync::request_crawl::Error> { 5642 + let response = self 5643 + .xrpc 5644 + .send_xrpc::< 5645 + (), 5646 + _, 5647 + (), 5648 + _, 5649 + >( 5650 + &atrium_xrpc::XrpcRequest { 5651 + method: http::Method::POST, 5652 + nsid: crate::com::atproto::sync::request_crawl::NSID.into(), 5653 + parameters: None, 5654 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5655 + encoding: Some(String::from("application/json")), 5656 + }, 5657 + ) 5658 + .await?; 5659 + match response { 5660 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5661 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5662 + } 5663 + } 5664 + } 5665 + impl<T> com::atproto::temp::Service<T> 5666 + where 5667 + T: atrium_xrpc::XrpcClient + Send + Sync, 5668 + { 5669 + #[allow(unused_variables)] 5670 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 5671 + Self { 5672 + xrpc, 5673 + _phantom: core::marker::PhantomData, 5674 + } 5675 + } 5676 + ///Add a handle to the set of reserved handles. 5677 + pub async fn add_reserved_handle( 5678 + &self, 5679 + input: crate::com::atproto::temp::add_reserved_handle::Input, 5680 + ) -> atrium_xrpc::Result< 5681 + crate::com::atproto::temp::add_reserved_handle::Output, 5682 + crate::com::atproto::temp::add_reserved_handle::Error, 5683 + > { 5684 + let response = self 5685 + .xrpc 5686 + .send_xrpc::< 5687 + (), 5688 + _, 5689 + _, 5690 + _, 5691 + >( 5692 + &atrium_xrpc::XrpcRequest { 5693 + method: http::Method::POST, 5694 + nsid: crate::com::atproto::temp::add_reserved_handle::NSID.into(), 5695 + parameters: None, 5696 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5697 + encoding: Some(String::from("application/json")), 5698 + }, 5699 + ) 5700 + .await?; 5701 + match response { 5702 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5703 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5704 + } 5705 + } 5706 + ///Check accounts location in signup queue. 5707 + pub async fn check_signup_queue( 5708 + &self, 5709 + ) -> atrium_xrpc::Result< 5710 + crate::com::atproto::temp::check_signup_queue::Output, 5711 + crate::com::atproto::temp::check_signup_queue::Error, 5712 + > { 5713 + let response = self 5714 + .xrpc 5715 + .send_xrpc::< 5716 + (), 5717 + (), 5718 + _, 5719 + _, 5720 + >( 5721 + &atrium_xrpc::XrpcRequest { 5722 + method: http::Method::GET, 5723 + nsid: crate::com::atproto::temp::check_signup_queue::NSID.into(), 5724 + parameters: None, 5725 + input: None, 5726 + encoding: None, 5727 + }, 5728 + ) 5729 + .await?; 5730 + match response { 5731 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5732 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5733 + } 5734 + } 5735 + ///DEPRECATED: use queryLabels or subscribeLabels instead -- Fetch all labels from a labeler created after a certain date. 5736 + pub async fn fetch_labels( 5737 + &self, 5738 + params: crate::com::atproto::temp::fetch_labels::Parameters, 5739 + ) -> atrium_xrpc::Result< 5740 + crate::com::atproto::temp::fetch_labels::Output, 5741 + crate::com::atproto::temp::fetch_labels::Error, 5742 + > { 5743 + let response = self 5744 + .xrpc 5745 + .send_xrpc::< 5746 + _, 5747 + (), 5748 + _, 5749 + _, 5750 + >( 5751 + &atrium_xrpc::XrpcRequest { 5752 + method: http::Method::GET, 5753 + nsid: crate::com::atproto::temp::fetch_labels::NSID.into(), 5754 + parameters: Some(params), 5755 + input: None, 5756 + encoding: None, 5757 + }, 5758 + ) 5759 + .await?; 5760 + match response { 5761 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5762 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5763 + } 5764 + } 5765 + ///Request a verification code to be sent to the supplied phone number 5766 + pub async fn request_phone_verification( 5767 + &self, 5768 + input: crate::com::atproto::temp::request_phone_verification::Input, 5769 + ) -> atrium_xrpc::Result< 5770 + (), 5771 + crate::com::atproto::temp::request_phone_verification::Error, 5772 + > { 5773 + let response = self 5774 + .xrpc 5775 + .send_xrpc::< 5776 + (), 5777 + _, 5778 + (), 5779 + _, 5780 + >( 5781 + &atrium_xrpc::XrpcRequest { 5782 + method: http::Method::POST, 5783 + nsid: crate::com::atproto::temp::request_phone_verification::NSID 5784 + .into(), 5785 + parameters: None, 5786 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5787 + encoding: Some(String::from("application/json")), 5788 + }, 5789 + ) 5790 + .await?; 5791 + match response { 5792 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5793 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5794 + } 5795 + } 5796 + } 5797 + impl<T> tools::Service<T> 5798 + where 5799 + T: atrium_xrpc::XrpcClient + Send + Sync, 5800 + { 5801 + #[allow(unused_variables)] 5802 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 5803 + Self { 5804 + ozone: tools::ozone::Service::new(std::sync::Arc::clone(&xrpc)), 5805 + _phantom: core::marker::PhantomData, 5806 + } 5807 + } 5808 + } 5809 + impl<T> tools::ozone::Service<T> 5810 + where 5811 + T: atrium_xrpc::XrpcClient + Send + Sync, 5812 + { 5813 + #[allow(unused_variables)] 5814 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 5815 + Self { 5816 + communication: tools::ozone::communication::Service::new( 5817 + std::sync::Arc::clone(&xrpc), 5818 + ), 5819 + hosting: tools::ozone::hosting::Service::new(std::sync::Arc::clone(&xrpc)), 5820 + moderation: tools::ozone::moderation::Service::new( 5821 + std::sync::Arc::clone(&xrpc), 5822 + ), 5823 + server: tools::ozone::server::Service::new(std::sync::Arc::clone(&xrpc)), 5824 + set: tools::ozone::set::Service::new(std::sync::Arc::clone(&xrpc)), 5825 + setting: tools::ozone::setting::Service::new(std::sync::Arc::clone(&xrpc)), 5826 + signature: tools::ozone::signature::Service::new( 5827 + std::sync::Arc::clone(&xrpc), 5828 + ), 5829 + team: tools::ozone::team::Service::new(std::sync::Arc::clone(&xrpc)), 5830 + verification: tools::ozone::verification::Service::new( 5831 + std::sync::Arc::clone(&xrpc), 5832 + ), 5833 + _phantom: core::marker::PhantomData, 5834 + } 5835 + } 5836 + } 5837 + impl<T> tools::ozone::communication::Service<T> 5838 + where 5839 + T: atrium_xrpc::XrpcClient + Send + Sync, 5840 + { 5841 + #[allow(unused_variables)] 5842 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 5843 + Self { 5844 + xrpc, 5845 + _phantom: core::marker::PhantomData, 5846 + } 5847 + } 5848 + ///Administrative action to create a new, re-usable communication (email for now) template. 5849 + pub async fn create_template( 5850 + &self, 5851 + input: crate::tools::ozone::communication::create_template::Input, 5852 + ) -> atrium_xrpc::Result< 5853 + crate::tools::ozone::communication::create_template::Output, 5854 + crate::tools::ozone::communication::create_template::Error, 5855 + > { 5856 + let response = self 5857 + .xrpc 5858 + .send_xrpc::< 5859 + (), 5860 + _, 5861 + _, 5862 + _, 5863 + >( 5864 + &atrium_xrpc::XrpcRequest { 5865 + method: http::Method::POST, 5866 + nsid: crate::tools::ozone::communication::create_template::NSID 5867 + .into(), 5868 + parameters: None, 5869 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5870 + encoding: Some(String::from("application/json")), 5871 + }, 5872 + ) 5873 + .await?; 5874 + match response { 5875 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5876 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5877 + } 5878 + } 5879 + ///Delete a communication template. 5880 + pub async fn delete_template( 5881 + &self, 5882 + input: crate::tools::ozone::communication::delete_template::Input, 5883 + ) -> atrium_xrpc::Result< 5884 + (), 5885 + crate::tools::ozone::communication::delete_template::Error, 5886 + > { 5887 + let response = self 5888 + .xrpc 5889 + .send_xrpc::< 5890 + (), 5891 + _, 5892 + (), 5893 + _, 5894 + >( 5895 + &atrium_xrpc::XrpcRequest { 5896 + method: http::Method::POST, 5897 + nsid: crate::tools::ozone::communication::delete_template::NSID 5898 + .into(), 5899 + parameters: None, 5900 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5901 + encoding: Some(String::from("application/json")), 5902 + }, 5903 + ) 5904 + .await?; 5905 + match response { 5906 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 5907 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5908 + } 5909 + } 5910 + ///Get list of all communication templates. 5911 + pub async fn list_templates( 5912 + &self, 5913 + ) -> atrium_xrpc::Result< 5914 + crate::tools::ozone::communication::list_templates::Output, 5915 + crate::tools::ozone::communication::list_templates::Error, 5916 + > { 5917 + let response = self 5918 + .xrpc 5919 + .send_xrpc::< 5920 + (), 5921 + (), 5922 + _, 5923 + _, 5924 + >( 5925 + &atrium_xrpc::XrpcRequest { 5926 + method: http::Method::GET, 5927 + nsid: crate::tools::ozone::communication::list_templates::NSID 5928 + .into(), 5929 + parameters: None, 5930 + input: None, 5931 + encoding: None, 5932 + }, 5933 + ) 5934 + .await?; 5935 + match response { 5936 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5937 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5938 + } 5939 + } 5940 + ///Administrative action to update an existing communication template. Allows passing partial fields to patch specific fields only. 5941 + pub async fn update_template( 5942 + &self, 5943 + input: crate::tools::ozone::communication::update_template::Input, 5944 + ) -> atrium_xrpc::Result< 5945 + crate::tools::ozone::communication::update_template::Output, 5946 + crate::tools::ozone::communication::update_template::Error, 5947 + > { 5948 + let response = self 5949 + .xrpc 5950 + .send_xrpc::< 5951 + (), 5952 + _, 5953 + _, 5954 + _, 5955 + >( 5956 + &atrium_xrpc::XrpcRequest { 5957 + method: http::Method::POST, 5958 + nsid: crate::tools::ozone::communication::update_template::NSID 5959 + .into(), 5960 + parameters: None, 5961 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 5962 + encoding: Some(String::from("application/json")), 5963 + }, 5964 + ) 5965 + .await?; 5966 + match response { 5967 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 5968 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 5969 + } 5970 + } 5971 + } 5972 + impl<T> tools::ozone::hosting::Service<T> 5973 + where 5974 + T: atrium_xrpc::XrpcClient + Send + Sync, 5975 + { 5976 + #[allow(unused_variables)] 5977 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 5978 + Self { 5979 + xrpc, 5980 + _phantom: core::marker::PhantomData, 5981 + } 5982 + } 5983 + ///Get account history, e.g. log of updated email addresses or other identity information. 5984 + pub async fn get_account_history( 5985 + &self, 5986 + params: crate::tools::ozone::hosting::get_account_history::Parameters, 5987 + ) -> atrium_xrpc::Result< 5988 + crate::tools::ozone::hosting::get_account_history::Output, 5989 + crate::tools::ozone::hosting::get_account_history::Error, 5990 + > { 5991 + let response = self 5992 + .xrpc 5993 + .send_xrpc::< 5994 + _, 5995 + (), 5996 + _, 5997 + _, 5998 + >( 5999 + &atrium_xrpc::XrpcRequest { 6000 + method: http::Method::GET, 6001 + nsid: crate::tools::ozone::hosting::get_account_history::NSID.into(), 6002 + parameters: Some(params), 6003 + input: None, 6004 + encoding: None, 6005 + }, 6006 + ) 6007 + .await?; 6008 + match response { 6009 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6010 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6011 + } 6012 + } 6013 + } 6014 + impl<T> tools::ozone::moderation::Service<T> 6015 + where 6016 + T: atrium_xrpc::XrpcClient + Send + Sync, 6017 + { 6018 + #[allow(unused_variables)] 6019 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 6020 + Self { 6021 + xrpc, 6022 + _phantom: core::marker::PhantomData, 6023 + } 6024 + } 6025 + ///Take a moderation action on an actor. 6026 + pub async fn emit_event( 6027 + &self, 6028 + input: crate::tools::ozone::moderation::emit_event::Input, 6029 + ) -> atrium_xrpc::Result< 6030 + crate::tools::ozone::moderation::emit_event::Output, 6031 + crate::tools::ozone::moderation::emit_event::Error, 6032 + > { 6033 + let response = self 6034 + .xrpc 6035 + .send_xrpc::< 6036 + (), 6037 + _, 6038 + _, 6039 + _, 6040 + >( 6041 + &atrium_xrpc::XrpcRequest { 6042 + method: http::Method::POST, 6043 + nsid: crate::tools::ozone::moderation::emit_event::NSID.into(), 6044 + parameters: None, 6045 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6046 + encoding: Some(String::from("application/json")), 6047 + }, 6048 + ) 6049 + .await?; 6050 + match response { 6051 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6052 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6053 + } 6054 + } 6055 + ///Get details about a moderation event. 6056 + pub async fn get_event( 6057 + &self, 6058 + params: crate::tools::ozone::moderation::get_event::Parameters, 6059 + ) -> atrium_xrpc::Result< 6060 + crate::tools::ozone::moderation::get_event::Output, 6061 + crate::tools::ozone::moderation::get_event::Error, 6062 + > { 6063 + let response = self 6064 + .xrpc 6065 + .send_xrpc::< 6066 + _, 6067 + (), 6068 + _, 6069 + _, 6070 + >( 6071 + &atrium_xrpc::XrpcRequest { 6072 + method: http::Method::GET, 6073 + nsid: crate::tools::ozone::moderation::get_event::NSID.into(), 6074 + parameters: Some(params), 6075 + input: None, 6076 + encoding: None, 6077 + }, 6078 + ) 6079 + .await?; 6080 + match response { 6081 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6082 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6083 + } 6084 + } 6085 + ///Get details about a record. 6086 + pub async fn get_record( 6087 + &self, 6088 + params: crate::tools::ozone::moderation::get_record::Parameters, 6089 + ) -> atrium_xrpc::Result< 6090 + crate::tools::ozone::moderation::get_record::Output, 6091 + crate::tools::ozone::moderation::get_record::Error, 6092 + > { 6093 + let response = self 6094 + .xrpc 6095 + .send_xrpc::< 6096 + _, 6097 + (), 6098 + _, 6099 + _, 6100 + >( 6101 + &atrium_xrpc::XrpcRequest { 6102 + method: http::Method::GET, 6103 + nsid: crate::tools::ozone::moderation::get_record::NSID.into(), 6104 + parameters: Some(params), 6105 + input: None, 6106 + encoding: None, 6107 + }, 6108 + ) 6109 + .await?; 6110 + match response { 6111 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6112 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6113 + } 6114 + } 6115 + ///Get details about some records. 6116 + pub async fn get_records( 6117 + &self, 6118 + params: crate::tools::ozone::moderation::get_records::Parameters, 6119 + ) -> atrium_xrpc::Result< 6120 + crate::tools::ozone::moderation::get_records::Output, 6121 + crate::tools::ozone::moderation::get_records::Error, 6122 + > { 6123 + let response = self 6124 + .xrpc 6125 + .send_xrpc::< 6126 + _, 6127 + (), 6128 + _, 6129 + _, 6130 + >( 6131 + &atrium_xrpc::XrpcRequest { 6132 + method: http::Method::GET, 6133 + nsid: crate::tools::ozone::moderation::get_records::NSID.into(), 6134 + parameters: Some(params), 6135 + input: None, 6136 + encoding: None, 6137 + }, 6138 + ) 6139 + .await?; 6140 + match response { 6141 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6142 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6143 + } 6144 + } 6145 + ///Get details about a repository. 6146 + pub async fn get_repo( 6147 + &self, 6148 + params: crate::tools::ozone::moderation::get_repo::Parameters, 6149 + ) -> atrium_xrpc::Result< 6150 + crate::tools::ozone::moderation::get_repo::Output, 6151 + crate::tools::ozone::moderation::get_repo::Error, 6152 + > { 6153 + let response = self 6154 + .xrpc 6155 + .send_xrpc::< 6156 + _, 6157 + (), 6158 + _, 6159 + _, 6160 + >( 6161 + &atrium_xrpc::XrpcRequest { 6162 + method: http::Method::GET, 6163 + nsid: crate::tools::ozone::moderation::get_repo::NSID.into(), 6164 + parameters: Some(params), 6165 + input: None, 6166 + encoding: None, 6167 + }, 6168 + ) 6169 + .await?; 6170 + match response { 6171 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6172 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6173 + } 6174 + } 6175 + ///Get reporter stats for a list of users. 6176 + pub async fn get_reporter_stats( 6177 + &self, 6178 + params: crate::tools::ozone::moderation::get_reporter_stats::Parameters, 6179 + ) -> atrium_xrpc::Result< 6180 + crate::tools::ozone::moderation::get_reporter_stats::Output, 6181 + crate::tools::ozone::moderation::get_reporter_stats::Error, 6182 + > { 6183 + let response = self 6184 + .xrpc 6185 + .send_xrpc::< 6186 + _, 6187 + (), 6188 + _, 6189 + _, 6190 + >( 6191 + &atrium_xrpc::XrpcRequest { 6192 + method: http::Method::GET, 6193 + nsid: crate::tools::ozone::moderation::get_reporter_stats::NSID 6194 + .into(), 6195 + parameters: Some(params), 6196 + input: None, 6197 + encoding: None, 6198 + }, 6199 + ) 6200 + .await?; 6201 + match response { 6202 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6203 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6204 + } 6205 + } 6206 + ///Get details about some repositories. 6207 + pub async fn get_repos( 6208 + &self, 6209 + params: crate::tools::ozone::moderation::get_repos::Parameters, 6210 + ) -> atrium_xrpc::Result< 6211 + crate::tools::ozone::moderation::get_repos::Output, 6212 + crate::tools::ozone::moderation::get_repos::Error, 6213 + > { 6214 + let response = self 6215 + .xrpc 6216 + .send_xrpc::< 6217 + _, 6218 + (), 6219 + _, 6220 + _, 6221 + >( 6222 + &atrium_xrpc::XrpcRequest { 6223 + method: http::Method::GET, 6224 + nsid: crate::tools::ozone::moderation::get_repos::NSID.into(), 6225 + parameters: Some(params), 6226 + input: None, 6227 + encoding: None, 6228 + }, 6229 + ) 6230 + .await?; 6231 + match response { 6232 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6233 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6234 + } 6235 + } 6236 + ///Get details about subjects. 6237 + pub async fn get_subjects( 6238 + &self, 6239 + params: crate::tools::ozone::moderation::get_subjects::Parameters, 6240 + ) -> atrium_xrpc::Result< 6241 + crate::tools::ozone::moderation::get_subjects::Output, 6242 + crate::tools::ozone::moderation::get_subjects::Error, 6243 + > { 6244 + let response = self 6245 + .xrpc 6246 + .send_xrpc::< 6247 + _, 6248 + (), 6249 + _, 6250 + _, 6251 + >( 6252 + &atrium_xrpc::XrpcRequest { 6253 + method: http::Method::GET, 6254 + nsid: crate::tools::ozone::moderation::get_subjects::NSID.into(), 6255 + parameters: Some(params), 6256 + input: None, 6257 + encoding: None, 6258 + }, 6259 + ) 6260 + .await?; 6261 + match response { 6262 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6263 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6264 + } 6265 + } 6266 + ///List moderation events related to a subject. 6267 + pub async fn query_events( 6268 + &self, 6269 + params: crate::tools::ozone::moderation::query_events::Parameters, 6270 + ) -> atrium_xrpc::Result< 6271 + crate::tools::ozone::moderation::query_events::Output, 6272 + crate::tools::ozone::moderation::query_events::Error, 6273 + > { 6274 + let response = self 6275 + .xrpc 6276 + .send_xrpc::< 6277 + _, 6278 + (), 6279 + _, 6280 + _, 6281 + >( 6282 + &atrium_xrpc::XrpcRequest { 6283 + method: http::Method::GET, 6284 + nsid: crate::tools::ozone::moderation::query_events::NSID.into(), 6285 + parameters: Some(params), 6286 + input: None, 6287 + encoding: None, 6288 + }, 6289 + ) 6290 + .await?; 6291 + match response { 6292 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6293 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6294 + } 6295 + } 6296 + ///View moderation statuses of subjects (record or repo). 6297 + pub async fn query_statuses( 6298 + &self, 6299 + params: crate::tools::ozone::moderation::query_statuses::Parameters, 6300 + ) -> atrium_xrpc::Result< 6301 + crate::tools::ozone::moderation::query_statuses::Output, 6302 + crate::tools::ozone::moderation::query_statuses::Error, 6303 + > { 6304 + let response = self 6305 + .xrpc 6306 + .send_xrpc::< 6307 + _, 6308 + (), 6309 + _, 6310 + _, 6311 + >( 6312 + &atrium_xrpc::XrpcRequest { 6313 + method: http::Method::GET, 6314 + nsid: crate::tools::ozone::moderation::query_statuses::NSID.into(), 6315 + parameters: Some(params), 6316 + input: None, 6317 + encoding: None, 6318 + }, 6319 + ) 6320 + .await?; 6321 + match response { 6322 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6323 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6324 + } 6325 + } 6326 + ///Find repositories based on a search term. 6327 + pub async fn search_repos( 6328 + &self, 6329 + params: crate::tools::ozone::moderation::search_repos::Parameters, 6330 + ) -> atrium_xrpc::Result< 6331 + crate::tools::ozone::moderation::search_repos::Output, 6332 + crate::tools::ozone::moderation::search_repos::Error, 6333 + > { 6334 + let response = self 6335 + .xrpc 6336 + .send_xrpc::< 6337 + _, 6338 + (), 6339 + _, 6340 + _, 6341 + >( 6342 + &atrium_xrpc::XrpcRequest { 6343 + method: http::Method::GET, 6344 + nsid: crate::tools::ozone::moderation::search_repos::NSID.into(), 6345 + parameters: Some(params), 6346 + input: None, 6347 + encoding: None, 6348 + }, 6349 + ) 6350 + .await?; 6351 + match response { 6352 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6353 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6354 + } 6355 + } 6356 + } 6357 + impl<T> tools::ozone::server::Service<T> 6358 + where 6359 + T: atrium_xrpc::XrpcClient + Send + Sync, 6360 + { 6361 + #[allow(unused_variables)] 6362 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 6363 + Self { 6364 + xrpc, 6365 + _phantom: core::marker::PhantomData, 6366 + } 6367 + } 6368 + ///Get details about ozone's server configuration. 6369 + pub async fn get_config( 6370 + &self, 6371 + ) -> atrium_xrpc::Result< 6372 + crate::tools::ozone::server::get_config::Output, 6373 + crate::tools::ozone::server::get_config::Error, 6374 + > { 6375 + let response = self 6376 + .xrpc 6377 + .send_xrpc::< 6378 + (), 6379 + (), 6380 + _, 6381 + _, 6382 + >( 6383 + &atrium_xrpc::XrpcRequest { 6384 + method: http::Method::GET, 6385 + nsid: crate::tools::ozone::server::get_config::NSID.into(), 6386 + parameters: None, 6387 + input: None, 6388 + encoding: None, 6389 + }, 6390 + ) 6391 + .await?; 6392 + match response { 6393 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6394 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6395 + } 6396 + } 6397 + } 6398 + impl<T> tools::ozone::set::Service<T> 6399 + where 6400 + T: atrium_xrpc::XrpcClient + Send + Sync, 6401 + { 6402 + #[allow(unused_variables)] 6403 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 6404 + Self { 6405 + xrpc, 6406 + _phantom: core::marker::PhantomData, 6407 + } 6408 + } 6409 + ///Add values to a specific set. Attempting to add values to a set that does not exist will result in an error. 6410 + pub async fn add_values( 6411 + &self, 6412 + input: crate::tools::ozone::set::add_values::Input, 6413 + ) -> atrium_xrpc::Result<(), crate::tools::ozone::set::add_values::Error> { 6414 + let response = self 6415 + .xrpc 6416 + .send_xrpc::< 6417 + (), 6418 + _, 6419 + (), 6420 + _, 6421 + >( 6422 + &atrium_xrpc::XrpcRequest { 6423 + method: http::Method::POST, 6424 + nsid: crate::tools::ozone::set::add_values::NSID.into(), 6425 + parameters: None, 6426 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6427 + encoding: Some(String::from("application/json")), 6428 + }, 6429 + ) 6430 + .await?; 6431 + match response { 6432 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 6433 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6434 + } 6435 + } 6436 + ///Delete an entire set. Attempting to delete a set that does not exist will result in an error. 6437 + pub async fn delete_set( 6438 + &self, 6439 + input: crate::tools::ozone::set::delete_set::Input, 6440 + ) -> atrium_xrpc::Result< 6441 + crate::tools::ozone::set::delete_set::Output, 6442 + crate::tools::ozone::set::delete_set::Error, 6443 + > { 6444 + let response = self 6445 + .xrpc 6446 + .send_xrpc::< 6447 + (), 6448 + _, 6449 + _, 6450 + _, 6451 + >( 6452 + &atrium_xrpc::XrpcRequest { 6453 + method: http::Method::POST, 6454 + nsid: crate::tools::ozone::set::delete_set::NSID.into(), 6455 + parameters: None, 6456 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6457 + encoding: Some(String::from("application/json")), 6458 + }, 6459 + ) 6460 + .await?; 6461 + match response { 6462 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6463 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6464 + } 6465 + } 6466 + ///Delete values from a specific set. Attempting to delete values that are not in the set will not result in an error 6467 + pub async fn delete_values( 6468 + &self, 6469 + input: crate::tools::ozone::set::delete_values::Input, 6470 + ) -> atrium_xrpc::Result<(), crate::tools::ozone::set::delete_values::Error> { 6471 + let response = self 6472 + .xrpc 6473 + .send_xrpc::< 6474 + (), 6475 + _, 6476 + (), 6477 + _, 6478 + >( 6479 + &atrium_xrpc::XrpcRequest { 6480 + method: http::Method::POST, 6481 + nsid: crate::tools::ozone::set::delete_values::NSID.into(), 6482 + parameters: None, 6483 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6484 + encoding: Some(String::from("application/json")), 6485 + }, 6486 + ) 6487 + .await?; 6488 + match response { 6489 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 6490 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6491 + } 6492 + } 6493 + ///Get a specific set and its values 6494 + pub async fn get_values( 6495 + &self, 6496 + params: crate::tools::ozone::set::get_values::Parameters, 6497 + ) -> atrium_xrpc::Result< 6498 + crate::tools::ozone::set::get_values::Output, 6499 + crate::tools::ozone::set::get_values::Error, 6500 + > { 6501 + let response = self 6502 + .xrpc 6503 + .send_xrpc::< 6504 + _, 6505 + (), 6506 + _, 6507 + _, 6508 + >( 6509 + &atrium_xrpc::XrpcRequest { 6510 + method: http::Method::GET, 6511 + nsid: crate::tools::ozone::set::get_values::NSID.into(), 6512 + parameters: Some(params), 6513 + input: None, 6514 + encoding: None, 6515 + }, 6516 + ) 6517 + .await?; 6518 + match response { 6519 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6520 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6521 + } 6522 + } 6523 + ///Query available sets 6524 + pub async fn query_sets( 6525 + &self, 6526 + params: crate::tools::ozone::set::query_sets::Parameters, 6527 + ) -> atrium_xrpc::Result< 6528 + crate::tools::ozone::set::query_sets::Output, 6529 + crate::tools::ozone::set::query_sets::Error, 6530 + > { 6531 + let response = self 6532 + .xrpc 6533 + .send_xrpc::< 6534 + _, 6535 + (), 6536 + _, 6537 + _, 6538 + >( 6539 + &atrium_xrpc::XrpcRequest { 6540 + method: http::Method::GET, 6541 + nsid: crate::tools::ozone::set::query_sets::NSID.into(), 6542 + parameters: Some(params), 6543 + input: None, 6544 + encoding: None, 6545 + }, 6546 + ) 6547 + .await?; 6548 + match response { 6549 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6550 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6551 + } 6552 + } 6553 + ///Create or update set metadata 6554 + pub async fn upsert_set( 6555 + &self, 6556 + input: crate::tools::ozone::set::upsert_set::Input, 6557 + ) -> atrium_xrpc::Result< 6558 + crate::tools::ozone::set::upsert_set::Output, 6559 + crate::tools::ozone::set::upsert_set::Error, 6560 + > { 6561 + let response = self 6562 + .xrpc 6563 + .send_xrpc::< 6564 + (), 6565 + _, 6566 + _, 6567 + _, 6568 + >( 6569 + &atrium_xrpc::XrpcRequest { 6570 + method: http::Method::POST, 6571 + nsid: crate::tools::ozone::set::upsert_set::NSID.into(), 6572 + parameters: None, 6573 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6574 + encoding: Some(String::from("application/json")), 6575 + }, 6576 + ) 6577 + .await?; 6578 + match response { 6579 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6580 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6581 + } 6582 + } 6583 + } 6584 + impl<T> tools::ozone::setting::Service<T> 6585 + where 6586 + T: atrium_xrpc::XrpcClient + Send + Sync, 6587 + { 6588 + #[allow(unused_variables)] 6589 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 6590 + Self { 6591 + xrpc, 6592 + _phantom: core::marker::PhantomData, 6593 + } 6594 + } 6595 + ///List settings with optional filtering 6596 + pub async fn list_options( 6597 + &self, 6598 + params: crate::tools::ozone::setting::list_options::Parameters, 6599 + ) -> atrium_xrpc::Result< 6600 + crate::tools::ozone::setting::list_options::Output, 6601 + crate::tools::ozone::setting::list_options::Error, 6602 + > { 6603 + let response = self 6604 + .xrpc 6605 + .send_xrpc::< 6606 + _, 6607 + (), 6608 + _, 6609 + _, 6610 + >( 6611 + &atrium_xrpc::XrpcRequest { 6612 + method: http::Method::GET, 6613 + nsid: crate::tools::ozone::setting::list_options::NSID.into(), 6614 + parameters: Some(params), 6615 + input: None, 6616 + encoding: None, 6617 + }, 6618 + ) 6619 + .await?; 6620 + match response { 6621 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6622 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6623 + } 6624 + } 6625 + ///Delete settings by key 6626 + pub async fn remove_options( 6627 + &self, 6628 + input: crate::tools::ozone::setting::remove_options::Input, 6629 + ) -> atrium_xrpc::Result< 6630 + crate::tools::ozone::setting::remove_options::Output, 6631 + crate::tools::ozone::setting::remove_options::Error, 6632 + > { 6633 + let response = self 6634 + .xrpc 6635 + .send_xrpc::< 6636 + (), 6637 + _, 6638 + _, 6639 + _, 6640 + >( 6641 + &atrium_xrpc::XrpcRequest { 6642 + method: http::Method::POST, 6643 + nsid: crate::tools::ozone::setting::remove_options::NSID.into(), 6644 + parameters: None, 6645 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6646 + encoding: Some(String::from("application/json")), 6647 + }, 6648 + ) 6649 + .await?; 6650 + match response { 6651 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6652 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6653 + } 6654 + } 6655 + ///Create or update setting option 6656 + pub async fn upsert_option( 6657 + &self, 6658 + input: crate::tools::ozone::setting::upsert_option::Input, 6659 + ) -> atrium_xrpc::Result< 6660 + crate::tools::ozone::setting::upsert_option::Output, 6661 + crate::tools::ozone::setting::upsert_option::Error, 6662 + > { 6663 + let response = self 6664 + .xrpc 6665 + .send_xrpc::< 6666 + (), 6667 + _, 6668 + _, 6669 + _, 6670 + >( 6671 + &atrium_xrpc::XrpcRequest { 6672 + method: http::Method::POST, 6673 + nsid: crate::tools::ozone::setting::upsert_option::NSID.into(), 6674 + parameters: None, 6675 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6676 + encoding: Some(String::from("application/json")), 6677 + }, 6678 + ) 6679 + .await?; 6680 + match response { 6681 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6682 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6683 + } 6684 + } 6685 + } 6686 + impl<T> tools::ozone::signature::Service<T> 6687 + where 6688 + T: atrium_xrpc::XrpcClient + Send + Sync, 6689 + { 6690 + #[allow(unused_variables)] 6691 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 6692 + Self { 6693 + xrpc, 6694 + _phantom: core::marker::PhantomData, 6695 + } 6696 + } 6697 + ///Find all correlated threat signatures between 2 or more accounts. 6698 + pub async fn find_correlation( 6699 + &self, 6700 + params: crate::tools::ozone::signature::find_correlation::Parameters, 6701 + ) -> atrium_xrpc::Result< 6702 + crate::tools::ozone::signature::find_correlation::Output, 6703 + crate::tools::ozone::signature::find_correlation::Error, 6704 + > { 6705 + let response = self 6706 + .xrpc 6707 + .send_xrpc::< 6708 + _, 6709 + (), 6710 + _, 6711 + _, 6712 + >( 6713 + &atrium_xrpc::XrpcRequest { 6714 + method: http::Method::GET, 6715 + nsid: crate::tools::ozone::signature::find_correlation::NSID.into(), 6716 + parameters: Some(params), 6717 + input: None, 6718 + encoding: None, 6719 + }, 6720 + ) 6721 + .await?; 6722 + match response { 6723 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6724 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6725 + } 6726 + } 6727 + ///Get accounts that share some matching threat signatures with the root account. 6728 + pub async fn find_related_accounts( 6729 + &self, 6730 + params: crate::tools::ozone::signature::find_related_accounts::Parameters, 6731 + ) -> atrium_xrpc::Result< 6732 + crate::tools::ozone::signature::find_related_accounts::Output, 6733 + crate::tools::ozone::signature::find_related_accounts::Error, 6734 + > { 6735 + let response = self 6736 + .xrpc 6737 + .send_xrpc::< 6738 + _, 6739 + (), 6740 + _, 6741 + _, 6742 + >( 6743 + &atrium_xrpc::XrpcRequest { 6744 + method: http::Method::GET, 6745 + nsid: crate::tools::ozone::signature::find_related_accounts::NSID 6746 + .into(), 6747 + parameters: Some(params), 6748 + input: None, 6749 + encoding: None, 6750 + }, 6751 + ) 6752 + .await?; 6753 + match response { 6754 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6755 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6756 + } 6757 + } 6758 + ///Search for accounts that match one or more threat signature values. 6759 + pub async fn search_accounts( 6760 + &self, 6761 + params: crate::tools::ozone::signature::search_accounts::Parameters, 6762 + ) -> atrium_xrpc::Result< 6763 + crate::tools::ozone::signature::search_accounts::Output, 6764 + crate::tools::ozone::signature::search_accounts::Error, 6765 + > { 6766 + let response = self 6767 + .xrpc 6768 + .send_xrpc::< 6769 + _, 6770 + (), 6771 + _, 6772 + _, 6773 + >( 6774 + &atrium_xrpc::XrpcRequest { 6775 + method: http::Method::GET, 6776 + nsid: crate::tools::ozone::signature::search_accounts::NSID.into(), 6777 + parameters: Some(params), 6778 + input: None, 6779 + encoding: None, 6780 + }, 6781 + ) 6782 + .await?; 6783 + match response { 6784 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6785 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6786 + } 6787 + } 6788 + } 6789 + impl<T> tools::ozone::team::Service<T> 6790 + where 6791 + T: atrium_xrpc::XrpcClient + Send + Sync, 6792 + { 6793 + #[allow(unused_variables)] 6794 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 6795 + Self { 6796 + xrpc, 6797 + _phantom: core::marker::PhantomData, 6798 + } 6799 + } 6800 + ///Add a member to the ozone team. Requires admin role. 6801 + pub async fn add_member( 6802 + &self, 6803 + input: crate::tools::ozone::team::add_member::Input, 6804 + ) -> atrium_xrpc::Result< 6805 + crate::tools::ozone::team::add_member::Output, 6806 + crate::tools::ozone::team::add_member::Error, 6807 + > { 6808 + let response = self 6809 + .xrpc 6810 + .send_xrpc::< 6811 + (), 6812 + _, 6813 + _, 6814 + _, 6815 + >( 6816 + &atrium_xrpc::XrpcRequest { 6817 + method: http::Method::POST, 6818 + nsid: crate::tools::ozone::team::add_member::NSID.into(), 6819 + parameters: None, 6820 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6821 + encoding: Some(String::from("application/json")), 6822 + }, 6823 + ) 6824 + .await?; 6825 + match response { 6826 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6827 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6828 + } 6829 + } 6830 + ///Delete a member from ozone team. Requires admin role. 6831 + pub async fn delete_member( 6832 + &self, 6833 + input: crate::tools::ozone::team::delete_member::Input, 6834 + ) -> atrium_xrpc::Result<(), crate::tools::ozone::team::delete_member::Error> { 6835 + let response = self 6836 + .xrpc 6837 + .send_xrpc::< 6838 + (), 6839 + _, 6840 + (), 6841 + _, 6842 + >( 6843 + &atrium_xrpc::XrpcRequest { 6844 + method: http::Method::POST, 6845 + nsid: crate::tools::ozone::team::delete_member::NSID.into(), 6846 + parameters: None, 6847 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6848 + encoding: Some(String::from("application/json")), 6849 + }, 6850 + ) 6851 + .await?; 6852 + match response { 6853 + atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()), 6854 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6855 + } 6856 + } 6857 + ///List all members with access to the ozone service. 6858 + pub async fn list_members( 6859 + &self, 6860 + params: crate::tools::ozone::team::list_members::Parameters, 6861 + ) -> atrium_xrpc::Result< 6862 + crate::tools::ozone::team::list_members::Output, 6863 + crate::tools::ozone::team::list_members::Error, 6864 + > { 6865 + let response = self 6866 + .xrpc 6867 + .send_xrpc::< 6868 + _, 6869 + (), 6870 + _, 6871 + _, 6872 + >( 6873 + &atrium_xrpc::XrpcRequest { 6874 + method: http::Method::GET, 6875 + nsid: crate::tools::ozone::team::list_members::NSID.into(), 6876 + parameters: Some(params), 6877 + input: None, 6878 + encoding: None, 6879 + }, 6880 + ) 6881 + .await?; 6882 + match response { 6883 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6884 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6885 + } 6886 + } 6887 + ///Update a member in the ozone service. Requires admin role. 6888 + pub async fn update_member( 6889 + &self, 6890 + input: crate::tools::ozone::team::update_member::Input, 6891 + ) -> atrium_xrpc::Result< 6892 + crate::tools::ozone::team::update_member::Output, 6893 + crate::tools::ozone::team::update_member::Error, 6894 + > { 6895 + let response = self 6896 + .xrpc 6897 + .send_xrpc::< 6898 + (), 6899 + _, 6900 + _, 6901 + _, 6902 + >( 6903 + &atrium_xrpc::XrpcRequest { 6904 + method: http::Method::POST, 6905 + nsid: crate::tools::ozone::team::update_member::NSID.into(), 6906 + parameters: None, 6907 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6908 + encoding: Some(String::from("application/json")), 6909 + }, 6910 + ) 6911 + .await?; 6912 + match response { 6913 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6914 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6915 + } 6916 + } 6917 + } 6918 + impl<T> tools::ozone::verification::Service<T> 6919 + where 6920 + T: atrium_xrpc::XrpcClient + Send + Sync, 6921 + { 6922 + #[allow(unused_variables)] 6923 + pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self { 6924 + Self { 6925 + xrpc, 6926 + _phantom: core::marker::PhantomData, 6927 + } 6928 + } 6929 + ///Grant verifications to multiple subjects. Allows batch processing of up to 100 verifications at once. 6930 + pub async fn grant_verifications( 6931 + &self, 6932 + input: crate::tools::ozone::verification::grant_verifications::Input, 6933 + ) -> atrium_xrpc::Result< 6934 + crate::tools::ozone::verification::grant_verifications::Output, 6935 + crate::tools::ozone::verification::grant_verifications::Error, 6936 + > { 6937 + let response = self 6938 + .xrpc 6939 + .send_xrpc::< 6940 + (), 6941 + _, 6942 + _, 6943 + _, 6944 + >( 6945 + &atrium_xrpc::XrpcRequest { 6946 + method: http::Method::POST, 6947 + nsid: crate::tools::ozone::verification::grant_verifications::NSID 6948 + .into(), 6949 + parameters: None, 6950 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 6951 + encoding: Some(String::from("application/json")), 6952 + }, 6953 + ) 6954 + .await?; 6955 + match response { 6956 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6957 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6958 + } 6959 + } 6960 + ///List verifications 6961 + pub async fn list_verifications( 6962 + &self, 6963 + params: crate::tools::ozone::verification::list_verifications::Parameters, 6964 + ) -> atrium_xrpc::Result< 6965 + crate::tools::ozone::verification::list_verifications::Output, 6966 + crate::tools::ozone::verification::list_verifications::Error, 6967 + > { 6968 + let response = self 6969 + .xrpc 6970 + .send_xrpc::< 6971 + _, 6972 + (), 6973 + _, 6974 + _, 6975 + >( 6976 + &atrium_xrpc::XrpcRequest { 6977 + method: http::Method::GET, 6978 + nsid: crate::tools::ozone::verification::list_verifications::NSID 6979 + .into(), 6980 + parameters: Some(params), 6981 + input: None, 6982 + encoding: None, 6983 + }, 6984 + ) 6985 + .await?; 6986 + match response { 6987 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 6988 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 6989 + } 6990 + } 6991 + ///Revoke previously granted verifications in batches of up to 100. 6992 + pub async fn revoke_verifications( 6993 + &self, 6994 + input: crate::tools::ozone::verification::revoke_verifications::Input, 6995 + ) -> atrium_xrpc::Result< 6996 + crate::tools::ozone::verification::revoke_verifications::Output, 6997 + crate::tools::ozone::verification::revoke_verifications::Error, 6998 + > { 6999 + let response = self 7000 + .xrpc 7001 + .send_xrpc::< 7002 + (), 7003 + _, 7004 + _, 7005 + _, 7006 + >( 7007 + &atrium_xrpc::XrpcRequest { 7008 + method: http::Method::POST, 7009 + nsid: crate::tools::ozone::verification::revoke_verifications::NSID 7010 + .into(), 7011 + parameters: None, 7012 + input: Some(atrium_xrpc::InputDataOrBytes::Data(input)), 7013 + encoding: Some(String::from("application/json")), 7014 + }, 7015 + ) 7016 + .await?; 7017 + match response { 7018 + atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data), 7019 + _ => Err(atrium_xrpc::Error::UnexpectedResponseType), 7020 + } 7021 + } 7022 + }
+3
crates/weaver-common/src/lexicons/com.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com` namespace. 3 + pub mod atproto;
+11
crates/weaver-common/src/lexicons/com/atproto.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto` namespace. 3 + pub mod admin; 4 + pub mod identity; 5 + pub mod label; 6 + pub mod lexicon; 7 + pub mod moderation; 8 + pub mod repo; 9 + pub mod server; 10 + pub mod sync; 11 + pub mod temp;
+18
crates/weaver-common/src/lexicons/com/atproto/admin.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin` namespace. 3 + pub mod defs; 4 + pub mod delete_account; 5 + pub mod disable_account_invites; 6 + pub mod disable_invite_codes; 7 + pub mod enable_account_invites; 8 + pub mod get_account_info; 9 + pub mod get_account_infos; 10 + pub mod get_invite_codes; 11 + pub mod get_subject_status; 12 + pub mod search_accounts; 13 + pub mod send_email; 14 + pub mod update_account_email; 15 + pub mod update_account_handle; 16 + pub mod update_account_password; 17 + pub mod update_account_signing_key; 18 + pub mod update_subject_status;
+60
crates/weaver-common/src/lexicons/com/atproto/admin/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct AccountViewData { 6 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 7 + pub deactivated_at: core::option::Option<atrium_api::types::string::Datetime>, 8 + pub did: atrium_api::types::string::Did, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub email: core::option::Option<String>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub email_confirmed_at: core::option::Option<atrium_api::types::string::Datetime>, 13 + pub handle: atrium_api::types::string::Handle, 14 + pub indexed_at: atrium_api::types::string::Datetime, 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub invite_note: core::option::Option<String>, 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub invited_by: core::option::Option<crate::com::atproto::server::defs::InviteCode>, 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub invites: core::option::Option< 21 + Vec<crate::com::atproto::server::defs::InviteCode>, 22 + >, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub invites_disabled: core::option::Option<bool>, 25 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 26 + pub related_records: core::option::Option<Vec<atrium_api::types::Unknown>>, 27 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 28 + pub threat_signatures: core::option::Option<Vec<ThreatSignature>>, 29 + } 30 + pub type AccountView = atrium_api::types::Object<AccountViewData>; 31 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 32 + #[serde(rename_all = "camelCase")] 33 + pub struct RepoBlobRefData { 34 + pub cid: atrium_api::types::string::Cid, 35 + pub did: atrium_api::types::string::Did, 36 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 37 + pub record_uri: core::option::Option<String>, 38 + } 39 + pub type RepoBlobRef = atrium_api::types::Object<RepoBlobRefData>; 40 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 + #[serde(rename_all = "camelCase")] 42 + pub struct RepoRefData { 43 + pub did: atrium_api::types::string::Did, 44 + } 45 + pub type RepoRef = atrium_api::types::Object<RepoRefData>; 46 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 47 + #[serde(rename_all = "camelCase")] 48 + pub struct StatusAttrData { 49 + pub applied: bool, 50 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 51 + pub r#ref: core::option::Option<String>, 52 + } 53 + pub type StatusAttr = atrium_api::types::Object<StatusAttrData>; 54 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 55 + #[serde(rename_all = "camelCase")] 56 + pub struct ThreatSignatureData { 57 + pub property: String, 58 + pub value: String, 59 + } 60 + pub type ThreatSignature = atrium_api::types::Object<ThreatSignatureData>;
+17
crates/weaver-common/src/lexicons/com/atproto/admin/delete_account.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.deleteAccount` namespace. 3 + pub const NSID: &str = "com.atproto.admin.deleteAccount"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub did: atrium_api::types::string::Did, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+20
crates/weaver-common/src/lexicons/com/atproto/admin/disable_account_invites.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.disableAccountInvites` namespace. 3 + pub const NSID: &str = "com.atproto.admin.disableAccountInvites"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub account: atrium_api::types::string::Did, 8 + ///Optional reason for disabled invites. 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub note: core::option::Option<String>, 11 + } 12 + pub type Input = atrium_api::types::Object<InputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error {} 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + Ok(()) 19 + } 20 + }
+20
crates/weaver-common/src/lexicons/com/atproto/admin/disable_invite_codes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.disableInviteCodes` namespace. 3 + pub const NSID: &str = "com.atproto.admin.disableInviteCodes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub accounts: core::option::Option<Vec<String>>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub codes: core::option::Option<Vec<String>>, 11 + } 12 + pub type Input = atrium_api::types::Object<InputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error {} 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + Ok(()) 19 + } 20 + }
+20
crates/weaver-common/src/lexicons/com/atproto/admin/enable_account_invites.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.enableAccountInvites` namespace. 3 + pub const NSID: &str = "com.atproto.admin.enableAccountInvites"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub account: atrium_api::types::string::Did, 8 + ///Optional reason for enabled invites. 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub note: core::option::Option<String>, 11 + } 12 + pub type Input = atrium_api::types::Object<InputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error {} 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + Ok(()) 19 + } 20 + }
+18
crates/weaver-common/src/lexicons/com/atproto/admin/get_account_info.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.getAccountInfo` namespace. 3 + pub const NSID: &str = "com.atproto.admin.getAccountInfo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub did: atrium_api::types::string::Did, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + pub type Output = crate::com::atproto::admin::defs::AccountView; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error {} 14 + impl std::fmt::Display for Error { 15 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 16 + Ok(()) 17 + } 18 + }
+23
crates/weaver-common/src/lexicons/com/atproto/admin/get_account_infos.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.getAccountInfos` namespace. 3 + pub const NSID: &str = "com.atproto.admin.getAccountInfos"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub dids: Vec<atrium_api::types::string::Did>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub infos: Vec<crate::com::atproto::admin::defs::AccountView>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+30
crates/weaver-common/src/lexicons/com/atproto/admin/get_invite_codes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.getInviteCodes` namespace. 3 + pub const NSID: &str = "com.atproto.admin.getInviteCodes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU16<500u16>>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub sort: core::option::Option<String>, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + pub codes: Vec<crate::com::atproto::server::defs::InviteCode>, 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub cursor: core::option::Option<String>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+42
crates/weaver-common/src/lexicons/com/atproto/admin/get_subject_status.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.getSubjectStatus` namespace. 3 + pub const NSID: &str = "com.atproto.admin.getSubjectStatus"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub blob: core::option::Option<atrium_api::types::string::Cid>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub did: core::option::Option<atrium_api::types::string::Did>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub uri: core::option::Option<String>, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub deactivated: core::option::Option<crate::com::atproto::admin::defs::StatusAttr>, 20 + pub subject: atrium_api::types::Union<OutputSubjectRefs>, 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub takedown: core::option::Option<crate::com::atproto::admin::defs::StatusAttr>, 23 + } 24 + pub type Output = atrium_api::types::Object<OutputData>; 25 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 + #[serde(tag = "error", content = "message")] 27 + pub enum Error {} 28 + impl std::fmt::Display for Error { 29 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 30 + Ok(()) 31 + } 32 + } 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(tag = "$type")] 35 + pub enum OutputSubjectRefs { 36 + #[serde(rename = "com.atproto.admin.defs#repoRef")] 37 + ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>), 38 + #[serde(rename = "com.atproto.repo.strongRef")] 39 + ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>), 40 + #[serde(rename = "com.atproto.admin.defs#repoBlobRef")] 41 + ComAtprotoAdminDefsRepoBlobRef(Box<crate::com::atproto::admin::defs::RepoBlobRef>), 42 + }
+30
crates/weaver-common/src/lexicons/com/atproto/admin/search_accounts.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.searchAccounts` namespace. 3 + pub const NSID: &str = "com.atproto.admin.searchAccounts"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub email: core::option::Option<String>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + pub accounts: Vec<crate::com::atproto::admin::defs::AccountView>, 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub cursor: core::option::Option<String>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+30
crates/weaver-common/src/lexicons/com/atproto/admin/send_email.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.sendEmail` namespace. 3 + pub const NSID: &str = "com.atproto.admin.sendEmail"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Additional comment by the sender that won't be used in the email itself but helpful to provide more context for moderators/reviewers 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub comment: core::option::Option<String>, 10 + pub content: String, 11 + pub recipient_did: atrium_api::types::string::Did, 12 + pub sender_did: atrium_api::types::string::Did, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub subject: core::option::Option<String>, 15 + } 16 + pub type Input = atrium_api::types::Object<InputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct OutputData { 20 + pub sent: bool, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + }
+19
crates/weaver-common/src/lexicons/com/atproto/admin/update_account_email.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.updateAccountEmail` namespace. 3 + pub const NSID: &str = "com.atproto.admin.updateAccountEmail"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///The handle or DID of the repo. 8 + pub account: atrium_api::types::string::AtIdentifier, 9 + pub email: String, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error {} 15 + impl std::fmt::Display for Error { 16 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 17 + Ok(()) 18 + } 19 + }
+18
crates/weaver-common/src/lexicons/com/atproto/admin/update_account_handle.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.updateAccountHandle` namespace. 3 + pub const NSID: &str = "com.atproto.admin.updateAccountHandle"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub did: atrium_api::types::string::Did, 8 + pub handle: atrium_api::types::string::Handle, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error {} 14 + impl std::fmt::Display for Error { 15 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 16 + Ok(()) 17 + } 18 + }
+18
crates/weaver-common/src/lexicons/com/atproto/admin/update_account_password.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.updateAccountPassword` namespace. 3 + pub const NSID: &str = "com.atproto.admin.updateAccountPassword"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub did: atrium_api::types::string::Did, 8 + pub password: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error {} 14 + impl std::fmt::Display for Error { 15 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 16 + Ok(()) 17 + } 18 + }
+19
crates/weaver-common/src/lexicons/com/atproto/admin/update_account_signing_key.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.updateAccountSigningKey` namespace. 3 + pub const NSID: &str = "com.atproto.admin.updateAccountSigningKey"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub did: atrium_api::types::string::Did, 8 + ///Did-key formatted public key 9 + pub signing_key: atrium_api::types::string::Did, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error {} 15 + impl std::fmt::Display for Error { 16 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 17 + Ok(()) 18 + } 19 + }
+49
crates/weaver-common/src/lexicons/com/atproto/admin/update_subject_status.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.admin.updateSubjectStatus` namespace. 3 + pub const NSID: &str = "com.atproto.admin.updateSubjectStatus"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub deactivated: core::option::Option<crate::com::atproto::admin::defs::StatusAttr>, 9 + pub subject: atrium_api::types::Union<InputSubjectRefs>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub takedown: core::option::Option<crate::com::atproto::admin::defs::StatusAttr>, 12 + } 13 + pub type Input = atrium_api::types::Object<InputData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + pub subject: atrium_api::types::Union<OutputSubjectRefs>, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub takedown: core::option::Option<crate::com::atproto::admin::defs::StatusAttr>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + } 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(tag = "$type")] 32 + pub enum InputSubjectRefs { 33 + #[serde(rename = "com.atproto.admin.defs#repoRef")] 34 + ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>), 35 + #[serde(rename = "com.atproto.repo.strongRef")] 36 + ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>), 37 + #[serde(rename = "com.atproto.admin.defs#repoBlobRef")] 38 + ComAtprotoAdminDefsRepoBlobRef(Box<crate::com::atproto::admin::defs::RepoBlobRef>), 39 + } 40 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 + #[serde(tag = "$type")] 42 + pub enum OutputSubjectRefs { 43 + #[serde(rename = "com.atproto.admin.defs#repoRef")] 44 + ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>), 45 + #[serde(rename = "com.atproto.repo.strongRef")] 46 + ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>), 47 + #[serde(rename = "com.atproto.admin.defs#repoBlobRef")] 48 + ComAtprotoAdminDefsRepoBlobRef(Box<crate::com::atproto::admin::defs::RepoBlobRef>), 49 + }
+12
crates/weaver-common/src/lexicons/com/atproto/identity.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity` namespace. 3 + pub mod defs; 4 + pub mod get_recommended_did_credentials; 5 + pub mod refresh_identity; 6 + pub mod request_plc_operation_signature; 7 + pub mod resolve_did; 8 + pub mod resolve_handle; 9 + pub mod resolve_identity; 10 + pub mod sign_plc_operation; 11 + pub mod submit_plc_operation; 12 + pub mod update_handle;
+12
crates/weaver-common/src/lexicons/com/atproto/identity/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct IdentityInfoData { 6 + pub did: atrium_api::types::string::Did, 7 + ///The complete DID document for the identity. 8 + pub did_doc: atrium_api::types::Unknown, 9 + ///The validated handle of the account; or 'handle.invalid' if the handle did not bi-directionally match the DID document. 10 + pub handle: atrium_api::types::string::Handle, 11 + } 12 + pub type IdentityInfo = atrium_api::types::Object<IdentityInfoData>;
+45
crates/weaver-common/src/lexicons/com/atproto/identity/refresh_identity.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.refreshIdentity` namespace. 3 + pub const NSID: &str = "com.atproto.identity.refreshIdentity"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub identifier: atrium_api::types::string::AtIdentifier, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + pub type Output = crate::com::atproto::identity::defs::IdentityInfo; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error { 14 + ///The resolution process confirmed that the handle does not resolve to any DID. 15 + HandleNotFound(Option<String>), 16 + ///The DID resolution process confirmed that there is no current DID. 17 + DidNotFound(Option<String>), 18 + ///The DID previously existed, but has been deactivated. 19 + DidDeactivated(Option<String>), 20 + } 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + match self { 24 + Error::HandleNotFound(msg) => { 25 + write!(_f, "HandleNotFound")?; 26 + if let Some(msg) = msg { 27 + write!(_f, ": {msg}")?; 28 + } 29 + } 30 + Error::DidNotFound(msg) => { 31 + write!(_f, "DidNotFound")?; 32 + if let Some(msg) = msg { 33 + write!(_f, ": {msg}")?; 34 + } 35 + } 36 + Error::DidDeactivated(msg) => { 37 + write!(_f, "DidDeactivated")?; 38 + if let Some(msg) = msg { 39 + write!(_f, ": {msg}")?; 40 + } 41 + } 42 + } 43 + Ok(()) 44 + } 45 + }
+11
crates/weaver-common/src/lexicons/com/atproto/identity/request_plc_operation_signature.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.requestPlcOperationSignature` namespace. 3 + pub const NSID: &str = "com.atproto.identity.requestPlcOperationSignature"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(tag = "error", content = "message")] 6 + pub enum Error {} 7 + impl std::fmt::Display for Error { 8 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 9 + Ok(()) 10 + } 11 + }
+44
crates/weaver-common/src/lexicons/com/atproto/identity/resolve_did.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.resolveDid` namespace. 3 + pub const NSID: &str = "com.atproto.identity.resolveDid"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///DID to resolve. 8 + pub did: atrium_api::types::string::Did, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + ///The complete DID document for the identity. 15 + pub did_doc: atrium_api::types::Unknown, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error { 21 + ///The DID resolution process confirmed that there is no current DID. 22 + DidNotFound(Option<String>), 23 + ///The DID previously existed, but has been deactivated. 24 + DidDeactivated(Option<String>), 25 + } 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + match self { 29 + Error::DidNotFound(msg) => { 30 + write!(_f, "DidNotFound")?; 31 + if let Some(msg) = msg { 32 + write!(_f, ": {msg}")?; 33 + } 34 + } 35 + Error::DidDeactivated(msg) => { 36 + write!(_f, "DidDeactivated")?; 37 + if let Some(msg) = msg { 38 + write!(_f, ": {msg}")?; 39 + } 40 + } 41 + } 42 + Ok(()) 43 + } 44 + }
+35
crates/weaver-common/src/lexicons/com/atproto/identity/resolve_handle.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.resolveHandle` namespace. 3 + pub const NSID: &str = "com.atproto.identity.resolveHandle"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The handle to resolve. 8 + pub handle: atrium_api::types::string::Handle, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub did: atrium_api::types::string::Did, 15 + } 16 + pub type Output = atrium_api::types::Object<OutputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(tag = "error", content = "message")] 19 + pub enum Error { 20 + ///The resolution process confirmed that the handle does not resolve to any DID. 21 + HandleNotFound(Option<String>), 22 + } 23 + impl std::fmt::Display for Error { 24 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 25 + match self { 26 + Error::HandleNotFound(msg) => { 27 + write!(_f, "HandleNotFound")?; 28 + if let Some(msg) = msg { 29 + write!(_f, ": {msg}")?; 30 + } 31 + } 32 + } 33 + Ok(()) 34 + } 35 + }
+46
crates/weaver-common/src/lexicons/com/atproto/identity/resolve_identity.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.resolveIdentity` namespace. 3 + pub const NSID: &str = "com.atproto.identity.resolveIdentity"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Handle or DID to resolve. 8 + pub identifier: atrium_api::types::string::AtIdentifier, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + pub type Output = crate::com::atproto::identity::defs::IdentityInfo; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error { 15 + ///The resolution process confirmed that the handle does not resolve to any DID. 16 + HandleNotFound(Option<String>), 17 + ///The DID resolution process confirmed that there is no current DID. 18 + DidNotFound(Option<String>), 19 + ///The DID previously existed, but has been deactivated. 20 + DidDeactivated(Option<String>), 21 + } 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + match self { 25 + Error::HandleNotFound(msg) => { 26 + write!(_f, "HandleNotFound")?; 27 + if let Some(msg) = msg { 28 + write!(_f, ": {msg}")?; 29 + } 30 + } 31 + Error::DidNotFound(msg) => { 32 + write!(_f, "DidNotFound")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + Error::DidDeactivated(msg) => { 38 + write!(_f, "DidDeactivated")?; 39 + if let Some(msg) = msg { 40 + write!(_f, ": {msg}")?; 41 + } 42 + } 43 + } 44 + Ok(()) 45 + } 46 + }
+34
crates/weaver-common/src/lexicons/com/atproto/identity/sign_plc_operation.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.signPlcOperation` namespace. 3 + pub const NSID: &str = "com.atproto.identity.signPlcOperation"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub also_known_as: core::option::Option<Vec<String>>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub rotation_keys: core::option::Option<Vec<String>>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub services: core::option::Option<atrium_api::types::Unknown>, 13 + ///A token received through com.atproto.identity.requestPlcOperationSignature 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub token: core::option::Option<String>, 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub verification_methods: core::option::Option<atrium_api::types::Unknown>, 18 + } 19 + pub type Input = atrium_api::types::Object<InputData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(rename_all = "camelCase")] 22 + pub struct OutputData { 23 + ///A signed DID PLC operation. 24 + pub operation: atrium_api::types::Unknown, 25 + } 26 + pub type Output = atrium_api::types::Object<OutputData>; 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(tag = "error", content = "message")] 29 + pub enum Error {} 30 + impl std::fmt::Display for Error { 31 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 32 + Ok(()) 33 + } 34 + }
+17
crates/weaver-common/src/lexicons/com/atproto/identity/submit_plc_operation.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.submitPlcOperation` namespace. 3 + pub const NSID: &str = "com.atproto.identity.submitPlcOperation"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub operation: atrium_api::types::Unknown, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+18
crates/weaver-common/src/lexicons/com/atproto/identity/update_handle.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.identity.updateHandle` namespace. 3 + pub const NSID: &str = "com.atproto.identity.updateHandle"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///The new handle. 8 + pub handle: atrium_api::types::string::Handle, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error {} 14 + impl std::fmt::Display for Error { 15 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 16 + Ok(()) 17 + } 18 + }
+5
crates/weaver-common/src/lexicons/com/atproto/label.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.label` namespace. 3 + pub mod defs; 4 + pub mod query_labels; 5 + pub mod subscribe_labels;
+82
crates/weaver-common/src/lexicons/com/atproto/label/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.label.defs` namespace. 3 + ///Metadata tag on an atproto resource (eg, repo or record). 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct LabelData { 7 + ///Optionally, CID specifying the specific version of 'uri' resource this label applies to. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 10 + ///Timestamp when this label was created. 11 + pub cts: atrium_api::types::string::Datetime, 12 + ///Timestamp at which this label expires (no longer applies). 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub exp: core::option::Option<atrium_api::types::string::Datetime>, 15 + ///If true, this is a negation label, overwriting a previous label. 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub neg: core::option::Option<bool>, 18 + ///Signature of dag-cbor encoded label. 19 + #[serde(default)] 20 + #[serde(with = "serde_bytes")] 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub sig: core::option::Option<Vec<u8>>, 23 + ///DID of the actor who created this label. 24 + pub src: atrium_api::types::string::Did, 25 + ///AT URI of the record, repository (account), or other resource that this label applies to. 26 + pub uri: String, 27 + ///The short string name of the value or type of this label. 28 + pub val: String, 29 + ///The AT Protocol version of the label object. 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub ver: core::option::Option<i64>, 32 + } 33 + pub type Label = atrium_api::types::Object<LabelData>; 34 + pub type LabelValue = String; 35 + ///Declares a label value and its expected interpretations and behaviors. 36 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 37 + #[serde(rename_all = "camelCase")] 38 + pub struct LabelValueDefinitionData { 39 + ///Does the user need to have adult content enabled in order to configure this label? 40 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 41 + pub adult_only: core::option::Option<bool>, 42 + ///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. 43 + pub blurs: String, 44 + ///The default setting for this label. 45 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 46 + pub default_setting: core::option::Option<String>, 47 + ///The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+). 48 + pub identifier: String, 49 + pub locales: Vec<LabelValueDefinitionStrings>, 50 + ///How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing. 51 + pub severity: String, 52 + } 53 + pub type LabelValueDefinition = atrium_api::types::Object<LabelValueDefinitionData>; 54 + ///Strings which describe the label in the UI, localized into a specific language. 55 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 56 + #[serde(rename_all = "camelCase")] 57 + pub struct LabelValueDefinitionStringsData { 58 + ///A longer description of what the label means and why it might be applied. 59 + pub description: String, 60 + ///The code of the language these strings are written in. 61 + pub lang: atrium_api::types::string::Language, 62 + ///A short human-readable name for the label. 63 + pub name: String, 64 + } 65 + pub type LabelValueDefinitionStrings = atrium_api::types::Object< 66 + LabelValueDefinitionStringsData, 67 + >; 68 + ///Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel. 69 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 70 + #[serde(rename_all = "camelCase")] 71 + pub struct SelfLabelData { 72 + ///The short string name of the value or type of this label. 73 + pub val: String, 74 + } 75 + pub type SelfLabel = atrium_api::types::Object<SelfLabelData>; 76 + ///Metadata tags on an atproto record, published by the author within the record. 77 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 78 + #[serde(rename_all = "camelCase")] 79 + pub struct SelfLabelsData { 80 + pub values: Vec<SelfLabel>, 81 + } 82 + pub type SelfLabels = atrium_api::types::Object<SelfLabelsData>;
+33
crates/weaver-common/src/lexicons/com/atproto/label/query_labels.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.label.queryLabels` namespace. 3 + pub const NSID: &str = "com.atproto.label.queryLabels"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<250u8>>, 11 + ///Optional list of label sources (DIDs) to filter on. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub sources: core::option::Option<Vec<atrium_api::types::string::Did>>, 14 + ///List of AT URI patterns to match (boolean 'OR'). Each may be a prefix (ending with '*'; will match inclusive of the string leading to '*'), or a full URI. 15 + pub uri_patterns: Vec<String>, 16 + } 17 + pub type Parameters = atrium_api::types::Object<ParametersData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct OutputData { 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub cursor: core::option::Option<String>, 23 + pub labels: Vec<crate::com::atproto::label::defs::Label>, 24 + } 25 + pub type Output = atrium_api::types::Object<OutputData>; 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(tag = "error", content = "message")] 28 + pub enum Error {} 29 + impl std::fmt::Display for Error { 30 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 31 + Ok(()) 32 + } 33 + }
+52
crates/weaver-common/src/lexicons/com/atproto/label/subscribe_labels.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.label.subscribeLabels` namespace. 3 + pub const NSID: &str = "com.atproto.label.subscribeLabels"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The last known event seq number to backfill from. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<i64>, 10 + } 11 + pub type Parameters = atrium_api::types::Object<ParametersData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error { 15 + FutureCursor(Option<String>), 16 + } 17 + impl std::fmt::Display for Error { 18 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 19 + match self { 20 + Error::FutureCursor(msg) => { 21 + write!(_f, "FutureCursor")?; 22 + if let Some(msg) = msg { 23 + write!(_f, ": {msg}")?; 24 + } 25 + } 26 + } 27 + Ok(()) 28 + } 29 + } 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(rename_all = "camelCase")] 32 + pub struct InfoData { 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub message: core::option::Option<String>, 35 + pub name: String, 36 + } 37 + pub type Info = atrium_api::types::Object<InfoData>; 38 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 39 + #[serde(rename_all = "camelCase")] 40 + pub struct LabelsData { 41 + pub labels: Vec<crate::com::atproto::label::defs::Label>, 42 + pub seq: i64, 43 + } 44 + pub type Labels = atrium_api::types::Object<LabelsData>; 45 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 46 + #[serde(tag = "$type")] 47 + pub enum Message { 48 + #[serde(rename = "com.atproto.label.subscribeLabels#labels")] 49 + Labels(Box<Labels>), 50 + #[serde(rename = "com.atproto.label.subscribeLabels#info")] 51 + Info(Box<Info>), 52 + }
+3
crates/weaver-common/src/lexicons/com/atproto/lexicon.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.lexicon` namespace. 3 + pub mod schema;
+15
crates/weaver-common/src/lexicons/com/atproto/lexicon/schema.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.lexicon.schema` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///Indicates the 'version' of the Lexicon language. Must be '1' for the current atproto/Lexicon schema system. 8 + pub lexicon: i64, 9 + } 10 + pub type Record = atrium_api::types::Object<RecordData>; 11 + impl From<atrium_api::types::Unknown> for RecordData { 12 + fn from(value: atrium_api::types::Unknown) -> Self { 13 + Self::try_from_unknown(value).unwrap() 14 + } 15 + }
+4
crates/weaver-common/src/lexicons/com/atproto/moderation.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.moderation` namespace. 3 + pub mod create_report; 4 + pub mod defs;
+50
crates/weaver-common/src/lexicons/com/atproto/moderation/create_report.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.moderation.createReport` namespace. 3 + pub const NSID: &str = "com.atproto.moderation.createReport"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Additional context about the content and violation. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub reason: core::option::Option<String>, 10 + ///Indicates the broad category of violation the report is for. 11 + pub reason_type: crate::com::atproto::moderation::defs::ReasonType, 12 + pub subject: atrium_api::types::Union<InputSubjectRefs>, 13 + } 14 + pub type Input = atrium_api::types::Object<InputData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + pub created_at: atrium_api::types::string::Datetime, 19 + pub id: i64, 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub reason: core::option::Option<String>, 22 + pub reason_type: crate::com::atproto::moderation::defs::ReasonType, 23 + pub reported_by: atrium_api::types::string::Did, 24 + pub subject: atrium_api::types::Union<OutputSubjectRefs>, 25 + } 26 + pub type Output = atrium_api::types::Object<OutputData>; 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(tag = "error", content = "message")] 29 + pub enum Error {} 30 + impl std::fmt::Display for Error { 31 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 32 + Ok(()) 33 + } 34 + } 35 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 36 + #[serde(tag = "$type")] 37 + pub enum InputSubjectRefs { 38 + #[serde(rename = "com.atproto.admin.defs#repoRef")] 39 + ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>), 40 + #[serde(rename = "com.atproto.repo.strongRef")] 41 + ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>), 42 + } 43 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 44 + #[serde(tag = "$type")] 45 + pub enum OutputSubjectRefs { 46 + #[serde(rename = "com.atproto.admin.defs#repoRef")] 47 + ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>), 48 + #[serde(rename = "com.atproto.repo.strongRef")] 49 + ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>), 50 + }
+19
crates/weaver-common/src/lexicons/com/atproto/moderation/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.moderation.defs` namespace. 3 + ///Appeal: appeal a previously taken moderation action 4 + pub const REASON_APPEAL: &str = "com.atproto.moderation.defs#reasonAppeal"; 5 + ///Misleading identity, affiliation, or content 6 + pub const REASON_MISLEADING: &str = "com.atproto.moderation.defs#reasonMisleading"; 7 + ///Other: reports not falling under another report category 8 + pub const REASON_OTHER: &str = "com.atproto.moderation.defs#reasonOther"; 9 + ///Rude, harassing, explicit, or otherwise unwelcoming behavior 10 + pub const REASON_RUDE: &str = "com.atproto.moderation.defs#reasonRude"; 11 + ///Unwanted or mislabeled sexual content 12 + pub const REASON_SEXUAL: &str = "com.atproto.moderation.defs#reasonSexual"; 13 + ///Spam: frequent unwanted promotion, replies, mentions 14 + pub const REASON_SPAM: &str = "com.atproto.moderation.defs#reasonSpam"; 15 + pub type ReasonType = String; 16 + ///Direct violation of server rules, laws, terms of service 17 + pub const REASON_VIOLATION: &str = "com.atproto.moderation.defs#reasonViolation"; 18 + ///Tag describing a type of subject that might be reported. 19 + pub type SubjectType = String;
+14
crates/weaver-common/src/lexicons/com/atproto/repo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo` namespace. 3 + pub mod apply_writes; 4 + pub mod create_record; 5 + pub mod defs; 6 + pub mod delete_record; 7 + pub mod describe_repo; 8 + pub mod get_record; 9 + pub mod import_repo; 10 + pub mod list_missing_blobs; 11 + pub mod list_records; 12 + pub mod put_record; 13 + pub mod strong_ref; 14 + pub mod upload_blob;
+115
crates/weaver-common/src/lexicons/com/atproto/repo/apply_writes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.applyWrites` namespace. 3 + pub const NSID: &str = "com.atproto.repo.applyWrites"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///The handle or DID of the repo (aka, current account). 8 + pub repo: atrium_api::types::string::AtIdentifier, 9 + ///If provided, the entire operation will fail if the current repo commit CID does not match this value. Used to prevent conflicting repo mutations. 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub swap_commit: core::option::Option<atrium_api::types::string::Cid>, 12 + ///Can be set to 'false' to skip Lexicon schema validation of record data across all operations, 'true' to require it, or leave unset to validate only for known Lexicons. 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub validate: core::option::Option<bool>, 15 + pub writes: Vec<InputWritesItem>, 16 + } 17 + pub type Input = atrium_api::types::Object<InputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct OutputData { 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub commit: core::option::Option<crate::com::atproto::repo::defs::CommitMeta>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub results: core::option::Option<Vec<OutputResultsItem>>, 25 + } 26 + pub type Output = atrium_api::types::Object<OutputData>; 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(tag = "error", content = "message")] 29 + pub enum Error { 30 + ///Indicates that the 'swapCommit' parameter did not match current commit. 31 + InvalidSwap(Option<String>), 32 + } 33 + impl std::fmt::Display for Error { 34 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 35 + match self { 36 + Error::InvalidSwap(msg) => { 37 + write!(_f, "InvalidSwap")?; 38 + if let Some(msg) = msg { 39 + write!(_f, ": {msg}")?; 40 + } 41 + } 42 + } 43 + Ok(()) 44 + } 45 + } 46 + ///Operation which creates a new record. 47 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 48 + #[serde(rename_all = "camelCase")] 49 + pub struct CreateData { 50 + pub collection: atrium_api::types::string::Nsid, 51 + ///NOTE: maxLength is redundant with record-key format. Keeping it temporarily to ensure backwards compatibility. 52 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 53 + pub rkey: core::option::Option<atrium_api::types::string::RecordKey>, 54 + pub value: atrium_api::types::Unknown, 55 + } 56 + pub type Create = atrium_api::types::Object<CreateData>; 57 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 58 + #[serde(rename_all = "camelCase")] 59 + pub struct CreateResultData { 60 + pub cid: atrium_api::types::string::Cid, 61 + pub uri: String, 62 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 63 + pub validation_status: core::option::Option<String>, 64 + } 65 + pub type CreateResult = atrium_api::types::Object<CreateResultData>; 66 + ///Operation which deletes an existing record. 67 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 68 + #[serde(rename_all = "camelCase")] 69 + pub struct DeleteData { 70 + pub collection: atrium_api::types::string::Nsid, 71 + pub rkey: atrium_api::types::string::RecordKey, 72 + } 73 + pub type Delete = atrium_api::types::Object<DeleteData>; 74 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 75 + #[serde(rename_all = "camelCase")] 76 + pub struct DeleteResultData {} 77 + pub type DeleteResult = atrium_api::types::Object<DeleteResultData>; 78 + ///Operation which updates an existing record. 79 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 80 + #[serde(rename_all = "camelCase")] 81 + pub struct UpdateData { 82 + pub collection: atrium_api::types::string::Nsid, 83 + pub rkey: atrium_api::types::string::RecordKey, 84 + pub value: atrium_api::types::Unknown, 85 + } 86 + pub type Update = atrium_api::types::Object<UpdateData>; 87 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 88 + #[serde(rename_all = "camelCase")] 89 + pub struct UpdateResultData { 90 + pub cid: atrium_api::types::string::Cid, 91 + pub uri: String, 92 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 93 + pub validation_status: core::option::Option<String>, 94 + } 95 + pub type UpdateResult = atrium_api::types::Object<UpdateResultData>; 96 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 97 + #[serde(tag = "$type")] 98 + pub enum InputWritesItem { 99 + #[serde(rename = "com.atproto.repo.applyWrites#create")] 100 + Create(Box<Create>), 101 + #[serde(rename = "com.atproto.repo.applyWrites#update")] 102 + Update(Box<Update>), 103 + #[serde(rename = "com.atproto.repo.applyWrites#delete")] 104 + Delete(Box<Delete>), 105 + } 106 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 107 + #[serde(tag = "$type")] 108 + pub enum OutputResultsItem { 109 + #[serde(rename = "com.atproto.repo.applyWrites#createResult")] 110 + CreateResult(Box<CreateResult>), 111 + #[serde(rename = "com.atproto.repo.applyWrites#updateResult")] 112 + UpdateResult(Box<UpdateResult>), 113 + #[serde(rename = "com.atproto.repo.applyWrites#deleteResult")] 114 + DeleteResult(Box<DeleteResult>), 115 + }
+53
crates/weaver-common/src/lexicons/com/atproto/repo/create_record.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.createRecord` namespace. 3 + pub const NSID: &str = "com.atproto.repo.createRecord"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///The NSID of the record collection. 8 + pub collection: atrium_api::types::string::Nsid, 9 + ///The record itself. Must contain a $type field. 10 + pub record: atrium_api::types::Unknown, 11 + ///The handle or DID of the repo (aka, current account). 12 + pub repo: atrium_api::types::string::AtIdentifier, 13 + ///The Record Key. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub rkey: core::option::Option<atrium_api::types::string::RecordKey>, 16 + ///Compare and swap with the previous commit by CID. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub swap_commit: core::option::Option<atrium_api::types::string::Cid>, 19 + ///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. 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub validate: core::option::Option<bool>, 22 + } 23 + pub type Input = atrium_api::types::Object<InputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(rename_all = "camelCase")] 26 + pub struct OutputData { 27 + pub cid: atrium_api::types::string::Cid, 28 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 29 + pub commit: core::option::Option<crate::com::atproto::repo::defs::CommitMeta>, 30 + pub uri: String, 31 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 32 + pub validation_status: core::option::Option<String>, 33 + } 34 + pub type Output = atrium_api::types::Object<OutputData>; 35 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 36 + #[serde(tag = "error", content = "message")] 37 + pub enum Error { 38 + ///Indicates that 'swapCommit' didn't match current repo commit. 39 + InvalidSwap(Option<String>), 40 + } 41 + impl std::fmt::Display for Error { 42 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 43 + match self { 44 + Error::InvalidSwap(msg) => { 45 + write!(_f, "InvalidSwap")?; 46 + if let Some(msg) = msg { 47 + write!(_f, ": {msg}")?; 48 + } 49 + } 50 + } 51 + Ok(()) 52 + } 53 + }
+9
crates/weaver-common/src/lexicons/com/atproto/repo/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct CommitMetaData { 6 + pub cid: atrium_api::types::string::Cid, 7 + pub rev: atrium_api::types::string::Tid, 8 + } 9 + pub type CommitMeta = atrium_api::types::Object<CommitMetaData>;
+45
crates/weaver-common/src/lexicons/com/atproto/repo/delete_record.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.deleteRecord` namespace. 3 + pub const NSID: &str = "com.atproto.repo.deleteRecord"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///The NSID of the record collection. 8 + pub collection: atrium_api::types::string::Nsid, 9 + ///The handle or DID of the repo (aka, current account). 10 + pub repo: atrium_api::types::string::AtIdentifier, 11 + ///The Record Key. 12 + pub rkey: atrium_api::types::string::RecordKey, 13 + ///Compare and swap with the previous commit by CID. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub swap_commit: core::option::Option<atrium_api::types::string::Cid>, 16 + ///Compare and swap with the previous record by CID. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub swap_record: core::option::Option<atrium_api::types::string::Cid>, 19 + } 20 + pub type Input = atrium_api::types::Object<InputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(rename_all = "camelCase")] 23 + pub struct OutputData { 24 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 25 + pub commit: core::option::Option<crate::com::atproto::repo::defs::CommitMeta>, 26 + } 27 + pub type Output = atrium_api::types::Object<OutputData>; 28 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 29 + #[serde(tag = "error", content = "message")] 30 + pub enum Error { 31 + InvalidSwap(Option<String>), 32 + } 33 + impl std::fmt::Display for Error { 34 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 35 + match self { 36 + Error::InvalidSwap(msg) => { 37 + write!(_f, "InvalidSwap")?; 38 + if let Some(msg) = msg { 39 + write!(_f, ": {msg}")?; 40 + } 41 + } 42 + } 43 + Ok(()) 44 + } 45 + }
+31
crates/weaver-common/src/lexicons/com/atproto/repo/describe_repo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.describeRepo` namespace. 3 + pub const NSID: &str = "com.atproto.repo.describeRepo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The handle or DID of the repo. 8 + pub repo: atrium_api::types::string::AtIdentifier, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + ///List of all the collections (NSIDs) for which this repo contains at least one record. 15 + pub collections: Vec<atrium_api::types::string::Nsid>, 16 + pub did: atrium_api::types::string::Did, 17 + ///The complete DID document for this account. 18 + pub did_doc: atrium_api::types::Unknown, 19 + pub handle: atrium_api::types::string::Handle, 20 + ///Indicates if handle is currently valid (resolves bi-directionally) 21 + pub handle_is_correct: bool, 22 + } 23 + pub type Output = atrium_api::types::Object<OutputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "error", content = "message")] 26 + pub enum Error {} 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + Ok(()) 30 + } 31 + }
+44
crates/weaver-common/src/lexicons/com/atproto/repo/get_record.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.getRecord` namespace. 3 + pub const NSID: &str = "com.atproto.repo.getRecord"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The CID of the version of the record. If not specified, then return the most recent version. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 10 + ///The NSID of the record collection. 11 + pub collection: atrium_api::types::string::Nsid, 12 + ///The handle or DID of the repo. 13 + pub repo: atrium_api::types::string::AtIdentifier, 14 + ///The Record Key. 15 + pub rkey: atrium_api::types::string::RecordKey, 16 + } 17 + pub type Parameters = atrium_api::types::Object<ParametersData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct OutputData { 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 23 + pub uri: String, 24 + pub value: atrium_api::types::Unknown, 25 + } 26 + pub type Output = atrium_api::types::Object<OutputData>; 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(tag = "error", content = "message")] 29 + pub enum Error { 30 + RecordNotFound(Option<String>), 31 + } 32 + impl std::fmt::Display for Error { 33 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 34 + match self { 35 + Error::RecordNotFound(msg) => { 36 + write!(_f, "RecordNotFound")?; 37 + if let Some(msg) = msg { 38 + write!(_f, ": {msg}")?; 39 + } 40 + } 41 + } 42 + Ok(()) 43 + } 44 + }
+11
crates/weaver-common/src/lexicons/com/atproto/repo/import_repo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.importRepo` namespace. 3 + pub const NSID: &str = "com.atproto.repo.importRepo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(tag = "error", content = "message")] 6 + pub enum Error {} 7 + impl std::fmt::Display for Error { 8 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 9 + Ok(()) 10 + } 11 + }
+35
crates/weaver-common/src/lexicons/com/atproto/repo/list_missing_blobs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.listMissingBlobs` namespace. 3 + pub const NSID: &str = "com.atproto.repo.listMissingBlobs"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU16<1000u16>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + pub blobs: Vec<RecordBlob>, 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + } 20 + pub type Output = atrium_api::types::Object<OutputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(tag = "error", content = "message")] 23 + pub enum Error {} 24 + impl std::fmt::Display for Error { 25 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 26 + Ok(()) 27 + } 28 + } 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(rename_all = "camelCase")] 31 + pub struct RecordBlobData { 32 + pub cid: atrium_api::types::string::Cid, 33 + pub record_uri: String, 34 + } 35 + pub type RecordBlob = atrium_api::types::Object<RecordBlobData>;
+44
crates/weaver-common/src/lexicons/com/atproto/repo/list_records.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.listRecords` namespace. 3 + pub const NSID: &str = "com.atproto.repo.listRecords"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The NSID of the record type. 8 + pub collection: atrium_api::types::string::Nsid, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub cursor: core::option::Option<String>, 11 + ///The number of records to return. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 14 + ///The handle or DID of the repo. 15 + pub repo: atrium_api::types::string::AtIdentifier, 16 + ///Flag to reverse the order of the returned records. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub reverse: core::option::Option<bool>, 19 + } 20 + pub type Parameters = atrium_api::types::Object<ParametersData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(rename_all = "camelCase")] 23 + pub struct OutputData { 24 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 25 + pub cursor: core::option::Option<String>, 26 + pub records: Vec<Record>, 27 + } 28 + pub type Output = atrium_api::types::Object<OutputData>; 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(tag = "error", content = "message")] 31 + pub enum Error {} 32 + impl std::fmt::Display for Error { 33 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 34 + Ok(()) 35 + } 36 + } 37 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 38 + #[serde(rename_all = "camelCase")] 39 + pub struct RecordData { 40 + pub cid: atrium_api::types::string::Cid, 41 + pub uri: String, 42 + pub value: atrium_api::types::Unknown, 43 + } 44 + pub type Record = atrium_api::types::Object<RecordData>;
+54
crates/weaver-common/src/lexicons/com/atproto/repo/put_record.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.putRecord` namespace. 3 + pub const NSID: &str = "com.atproto.repo.putRecord"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///The NSID of the record collection. 8 + pub collection: atrium_api::types::string::Nsid, 9 + ///The record to write. 10 + pub record: atrium_api::types::Unknown, 11 + ///The handle or DID of the repo (aka, current account). 12 + pub repo: atrium_api::types::string::AtIdentifier, 13 + ///The Record Key. 14 + pub rkey: atrium_api::types::string::RecordKey, 15 + ///Compare and swap with the previous commit by CID. 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub swap_commit: core::option::Option<atrium_api::types::string::Cid>, 18 + ///Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub swap_record: core::option::Option<atrium_api::types::string::Cid>, 21 + ///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. 22 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 23 + pub validate: core::option::Option<bool>, 24 + } 25 + pub type Input = atrium_api::types::Object<InputData>; 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(rename_all = "camelCase")] 28 + pub struct OutputData { 29 + pub cid: atrium_api::types::string::Cid, 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub commit: core::option::Option<crate::com::atproto::repo::defs::CommitMeta>, 32 + pub uri: String, 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub validation_status: core::option::Option<String>, 35 + } 36 + pub type Output = atrium_api::types::Object<OutputData>; 37 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 38 + #[serde(tag = "error", content = "message")] 39 + pub enum Error { 40 + InvalidSwap(Option<String>), 41 + } 42 + impl std::fmt::Display for Error { 43 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 44 + match self { 45 + Error::InvalidSwap(msg) => { 46 + write!(_f, "InvalidSwap")?; 47 + if let Some(msg) = msg { 48 + write!(_f, ": {msg}")?; 49 + } 50 + } 51 + } 52 + Ok(()) 53 + } 54 + }
+10
crates/weaver-common/src/lexicons/com/atproto/repo/strong_ref.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.strongRef` namespace. 3 + //!A URI with a content-hash fingerprint. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub cid: atrium_api::types::string::Cid, 8 + pub uri: String, 9 + } 10 + pub type Main = atrium_api::types::Object<MainData>;
+17
crates/weaver-common/src/lexicons/com/atproto/repo/upload_blob.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.repo.uploadBlob` namespace. 3 + pub const NSID: &str = "com.atproto.repo.uploadBlob"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub blob: atrium_api::types::BlobRef, 8 + } 9 + pub type Output = atrium_api::types::Object<OutputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+28
crates/weaver-common/src/lexicons/com/atproto/server.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server` namespace. 3 + pub mod activate_account; 4 + pub mod check_account_status; 5 + pub mod confirm_email; 6 + pub mod create_account; 7 + pub mod create_app_password; 8 + pub mod create_invite_code; 9 + pub mod create_invite_codes; 10 + pub mod create_session; 11 + pub mod deactivate_account; 12 + pub mod defs; 13 + pub mod delete_account; 14 + pub mod delete_session; 15 + pub mod describe_server; 16 + pub mod get_account_invite_codes; 17 + pub mod get_service_auth; 18 + pub mod get_session; 19 + pub mod list_app_passwords; 20 + pub mod refresh_session; 21 + pub mod request_account_delete; 22 + pub mod request_email_confirmation; 23 + pub mod request_email_update; 24 + pub mod request_password_reset; 25 + pub mod reserve_signing_key; 26 + pub mod reset_password; 27 + pub mod revoke_app_password; 28 + pub mod update_email;
+11
crates/weaver-common/src/lexicons/com/atproto/server/activate_account.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.activateAccount` namespace. 3 + pub const NSID: &str = "com.atproto.server.activateAccount"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(tag = "error", content = "message")] 6 + pub enum Error {} 7 + impl std::fmt::Display for Error { 8 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 9 + Ok(()) 10 + } 11 + }
+25
crates/weaver-common/src/lexicons/com/atproto/server/check_account_status.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.checkAccountStatus` namespace. 3 + pub const NSID: &str = "com.atproto.server.checkAccountStatus"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub activated: bool, 8 + pub expected_blobs: i64, 9 + pub imported_blobs: i64, 10 + pub indexed_records: i64, 11 + pub private_state_values: i64, 12 + pub repo_blocks: i64, 13 + pub repo_commit: atrium_api::types::string::Cid, 14 + pub repo_rev: String, 15 + pub valid_did: bool, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + }
+49
crates/weaver-common/src/lexicons/com/atproto/server/confirm_email.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.confirmEmail` namespace. 3 + pub const NSID: &str = "com.atproto.server.confirmEmail"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub email: String, 8 + pub token: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error { 14 + AccountNotFound(Option<String>), 15 + ExpiredToken(Option<String>), 16 + InvalidToken(Option<String>), 17 + InvalidEmail(Option<String>), 18 + } 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + match self { 22 + Error::AccountNotFound(msg) => { 23 + write!(_f, "AccountNotFound")?; 24 + if let Some(msg) = msg { 25 + write!(_f, ": {msg}")?; 26 + } 27 + } 28 + Error::ExpiredToken(msg) => { 29 + write!(_f, "ExpiredToken")?; 30 + if let Some(msg) = msg { 31 + write!(_f, ": {msg}")?; 32 + } 33 + } 34 + Error::InvalidToken(msg) => { 35 + write!(_f, "InvalidToken")?; 36 + if let Some(msg) = msg { 37 + write!(_f, ": {msg}")?; 38 + } 39 + } 40 + Error::InvalidEmail(msg) => { 41 + write!(_f, "InvalidEmail")?; 42 + if let Some(msg) = msg { 43 + write!(_f, ": {msg}")?; 44 + } 45 + } 46 + } 47 + Ok(()) 48 + } 49 + }
+104
crates/weaver-common/src/lexicons/com/atproto/server/create_account.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.createAccount` namespace. 3 + pub const NSID: &str = "com.atproto.server.createAccount"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Pre-existing atproto DID, being imported to a new account. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub did: core::option::Option<atrium_api::types::string::Did>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub email: core::option::Option<String>, 12 + ///Requested handle for the account. 13 + pub handle: atrium_api::types::string::Handle, 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub invite_code: core::option::Option<String>, 16 + ///Initial account password. May need to meet instance-specific password strength requirements. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub password: core::option::Option<String>, 19 + ///A signed DID PLC operation to be submitted as part of importing an existing account to this instance. NOTE: this optional field may be updated when full account migration is implemented. 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub plc_op: core::option::Option<atrium_api::types::Unknown>, 22 + ///DID PLC rotation key (aka, recovery key) to be included in PLC creation operation. 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub recovery_key: core::option::Option<String>, 25 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 26 + pub verification_code: core::option::Option<String>, 27 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 28 + pub verification_phone: core::option::Option<String>, 29 + } 30 + pub type Input = atrium_api::types::Object<InputData>; 31 + ///Account login session returned on successful account creation. 32 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 + #[serde(rename_all = "camelCase")] 34 + pub struct OutputData { 35 + pub access_jwt: String, 36 + ///The DID of the new account. 37 + pub did: atrium_api::types::string::Did, 38 + ///Complete DID document. 39 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 40 + pub did_doc: core::option::Option<atrium_api::types::Unknown>, 41 + pub handle: atrium_api::types::string::Handle, 42 + pub refresh_jwt: String, 43 + } 44 + pub type Output = atrium_api::types::Object<OutputData>; 45 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 46 + #[serde(tag = "error", content = "message")] 47 + pub enum Error { 48 + InvalidHandle(Option<String>), 49 + InvalidPassword(Option<String>), 50 + InvalidInviteCode(Option<String>), 51 + HandleNotAvailable(Option<String>), 52 + UnsupportedDomain(Option<String>), 53 + UnresolvableDid(Option<String>), 54 + IncompatibleDidDoc(Option<String>), 55 + } 56 + impl std::fmt::Display for Error { 57 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 58 + match self { 59 + Error::InvalidHandle(msg) => { 60 + write!(_f, "InvalidHandle")?; 61 + if let Some(msg) = msg { 62 + write!(_f, ": {msg}")?; 63 + } 64 + } 65 + Error::InvalidPassword(msg) => { 66 + write!(_f, "InvalidPassword")?; 67 + if let Some(msg) = msg { 68 + write!(_f, ": {msg}")?; 69 + } 70 + } 71 + Error::InvalidInviteCode(msg) => { 72 + write!(_f, "InvalidInviteCode")?; 73 + if let Some(msg) = msg { 74 + write!(_f, ": {msg}")?; 75 + } 76 + } 77 + Error::HandleNotAvailable(msg) => { 78 + write!(_f, "HandleNotAvailable")?; 79 + if let Some(msg) = msg { 80 + write!(_f, ": {msg}")?; 81 + } 82 + } 83 + Error::UnsupportedDomain(msg) => { 84 + write!(_f, "UnsupportedDomain")?; 85 + if let Some(msg) = msg { 86 + write!(_f, ": {msg}")?; 87 + } 88 + } 89 + Error::UnresolvableDid(msg) => { 90 + write!(_f, "UnresolvableDid")?; 91 + if let Some(msg) = msg { 92 + write!(_f, ": {msg}")?; 93 + } 94 + } 95 + Error::IncompatibleDidDoc(msg) => { 96 + write!(_f, "IncompatibleDidDoc")?; 97 + if let Some(msg) = msg { 98 + write!(_f, ": {msg}")?; 99 + } 100 + } 101 + } 102 + Ok(()) 103 + } 104 + }
+42
crates/weaver-common/src/lexicons/com/atproto/server/create_app_password.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.createAppPassword` namespace. 3 + pub const NSID: &str = "com.atproto.server.createAppPassword"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///A short name for the App Password, to help distinguish them. 8 + pub name: String, 9 + ///If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients. 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub privileged: core::option::Option<bool>, 12 + } 13 + pub type Input = atrium_api::types::Object<InputData>; 14 + pub type Output = AppPassword; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(tag = "error", content = "message")] 17 + pub enum Error { 18 + AccountTakedown(Option<String>), 19 + } 20 + impl std::fmt::Display for Error { 21 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 22 + match self { 23 + Error::AccountTakedown(msg) => { 24 + write!(_f, "AccountTakedown")?; 25 + if let Some(msg) = msg { 26 + write!(_f, ": {msg}")?; 27 + } 28 + } 29 + } 30 + Ok(()) 31 + } 32 + } 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(rename_all = "camelCase")] 35 + pub struct AppPasswordData { 36 + pub created_at: atrium_api::types::string::Datetime, 37 + pub name: String, 38 + pub password: String, 39 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 40 + pub privileged: core::option::Option<bool>, 41 + } 42 + pub type AppPassword = atrium_api::types::Object<AppPasswordData>;
+25
crates/weaver-common/src/lexicons/com/atproto/server/create_invite_code.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.createInviteCode` namespace. 3 + pub const NSID: &str = "com.atproto.server.createInviteCode"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub for_account: core::option::Option<atrium_api::types::string::Did>, 9 + pub use_count: i64, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(rename_all = "camelCase")] 14 + pub struct OutputData { 15 + pub code: String, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + }
+33
crates/weaver-common/src/lexicons/com/atproto/server/create_invite_codes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.createInviteCodes` namespace. 3 + pub const NSID: &str = "com.atproto.server.createInviteCodes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub code_count: i64, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub for_accounts: core::option::Option<Vec<atrium_api::types::string::Did>>, 10 + pub use_count: i64, 11 + } 12 + pub type Input = atrium_api::types::Object<InputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + pub codes: Vec<AccountCodes>, 17 + } 18 + pub type Output = atrium_api::types::Object<OutputData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(tag = "error", content = "message")] 21 + pub enum Error {} 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + Ok(()) 25 + } 26 + } 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(rename_all = "camelCase")] 29 + pub struct AccountCodesData { 30 + pub account: String, 31 + pub codes: Vec<String>, 32 + } 33 + pub type AccountCodes = atrium_api::types::Object<AccountCodesData>;
+63
crates/weaver-common/src/lexicons/com/atproto/server/create_session.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.createSession` namespace. 3 + pub const NSID: &str = "com.atproto.server.createSession"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///When true, instead of throwing error for takendown accounts, a valid response with a narrow scoped token will be returned 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub allow_takendown: core::option::Option<bool>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub auth_factor_token: core::option::Option<String>, 12 + ///Handle or other identifier supported by the server for the authenticating user. 13 + pub identifier: String, 14 + pub password: String, 15 + } 16 + pub type Input = atrium_api::types::Object<InputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct OutputData { 20 + pub access_jwt: String, 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub active: core::option::Option<bool>, 23 + pub did: atrium_api::types::string::Did, 24 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 25 + pub did_doc: core::option::Option<atrium_api::types::Unknown>, 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub email: core::option::Option<String>, 28 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 29 + pub email_auth_factor: core::option::Option<bool>, 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub email_confirmed: core::option::Option<bool>, 32 + pub handle: atrium_api::types::string::Handle, 33 + pub refresh_jwt: String, 34 + ///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. 35 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 36 + pub status: core::option::Option<String>, 37 + } 38 + pub type Output = atrium_api::types::Object<OutputData>; 39 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 40 + #[serde(tag = "error", content = "message")] 41 + pub enum Error { 42 + AccountTakedown(Option<String>), 43 + AuthFactorTokenRequired(Option<String>), 44 + } 45 + impl std::fmt::Display for Error { 46 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 47 + match self { 48 + Error::AccountTakedown(msg) => { 49 + write!(_f, "AccountTakedown")?; 50 + if let Some(msg) = msg { 51 + write!(_f, ": {msg}")?; 52 + } 53 + } 54 + Error::AuthFactorTokenRequired(msg) => { 55 + write!(_f, "AuthFactorTokenRequired")?; 56 + if let Some(msg) = msg { 57 + write!(_f, ": {msg}")?; 58 + } 59 + } 60 + } 61 + Ok(()) 62 + } 63 + }
+19
crates/weaver-common/src/lexicons/com/atproto/server/deactivate_account.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.deactivateAccount` namespace. 3 + pub const NSID: &str = "com.atproto.server.deactivateAccount"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///A recommendation to server as to how long they should hold onto the deactivated account before deleting. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub delete_after: core::option::Option<atrium_api::types::string::Datetime>, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error {} 15 + impl std::fmt::Display for Error { 16 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 17 + Ok(()) 18 + } 19 + }
+21
crates/weaver-common/src/lexicons/com/atproto/server/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct InviteCodeData { 6 + pub available: i64, 7 + pub code: String, 8 + pub created_at: atrium_api::types::string::Datetime, 9 + pub created_by: String, 10 + pub disabled: bool, 11 + pub for_account: String, 12 + pub uses: Vec<InviteCodeUse>, 13 + } 14 + pub type InviteCode = atrium_api::types::Object<InviteCodeData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct InviteCodeUseData { 18 + pub used_at: atrium_api::types::string::Datetime, 19 + pub used_by: atrium_api::types::string::Did, 20 + } 21 + pub type InviteCodeUse = atrium_api::types::Object<InviteCodeUseData>;
+36
crates/weaver-common/src/lexicons/com/atproto/server/delete_account.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.deleteAccount` namespace. 3 + pub const NSID: &str = "com.atproto.server.deleteAccount"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub did: atrium_api::types::string::Did, 8 + pub password: String, 9 + pub token: String, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error { 15 + ExpiredToken(Option<String>), 16 + InvalidToken(Option<String>), 17 + } 18 + impl std::fmt::Display for Error { 19 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 20 + match self { 21 + Error::ExpiredToken(msg) => { 22 + write!(_f, "ExpiredToken")?; 23 + if let Some(msg) = msg { 24 + write!(_f, ": {msg}")?; 25 + } 26 + } 27 + Error::InvalidToken(msg) => { 28 + write!(_f, "InvalidToken")?; 29 + if let Some(msg) = msg { 30 + write!(_f, ": {msg}")?; 31 + } 32 + } 33 + } 34 + Ok(()) 35 + } 36 + }
+11
crates/weaver-common/src/lexicons/com/atproto/server/delete_session.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.deleteSession` namespace. 3 + pub const NSID: &str = "com.atproto.server.deleteSession"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(tag = "error", content = "message")] 6 + pub enum Error {} 7 + impl std::fmt::Display for Error { 8 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 9 + Ok(()) 10 + } 11 + }
+47
crates/weaver-common/src/lexicons/com/atproto/server/describe_server.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.describeServer` namespace. 3 + pub const NSID: &str = "com.atproto.server.describeServer"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + ///List of domain suffixes that can be used in account handles. 8 + pub available_user_domains: Vec<String>, 9 + ///Contact information 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub contact: core::option::Option<Contact>, 12 + pub did: atrium_api::types::string::Did, 13 + ///If true, an invite code must be supplied to create an account on this instance. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub invite_code_required: core::option::Option<bool>, 16 + ///URLs of service policy documents. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub links: core::option::Option<Links>, 19 + ///If true, a phone verification token must be supplied to create an account on this instance. 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub phone_verification_required: core::option::Option<bool>, 22 + } 23 + pub type Output = atrium_api::types::Object<OutputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "error", content = "message")] 26 + pub enum Error {} 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + Ok(()) 30 + } 31 + } 32 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 + #[serde(rename_all = "camelCase")] 34 + pub struct ContactData { 35 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 36 + pub email: core::option::Option<String>, 37 + } 38 + pub type Contact = atrium_api::types::Object<ContactData>; 39 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 40 + #[serde(rename_all = "camelCase")] 41 + pub struct LinksData { 42 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 43 + pub privacy_policy: core::option::Option<String>, 44 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 45 + pub terms_of_service: core::option::Option<String>, 46 + } 47 + pub type Links = atrium_api::types::Object<LinksData>;
+37
crates/weaver-common/src/lexicons/com/atproto/server/get_account_invite_codes.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.getAccountInviteCodes` namespace. 3 + pub const NSID: &str = "com.atproto.server.getAccountInviteCodes"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Controls whether any new 'earned' but not 'created' invites should be created. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub create_available: core::option::Option<bool>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub include_used: core::option::Option<bool>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + pub codes: Vec<crate::com::atproto::server::defs::InviteCode>, 18 + } 19 + pub type Output = atrium_api::types::Object<OutputData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(tag = "error", content = "message")] 22 + pub enum Error { 23 + DuplicateCreate(Option<String>), 24 + } 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + match self { 28 + Error::DuplicateCreate(msg) => { 29 + write!(_f, "DuplicateCreate")?; 30 + if let Some(msg) = msg { 31 + write!(_f, ": {msg}")?; 32 + } 33 + } 34 + } 35 + Ok(()) 36 + } 37 + }
+41
crates/weaver-common/src/lexicons/com/atproto/server/get_service_auth.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.getServiceAuth` namespace. 3 + pub const NSID: &str = "com.atproto.server.getServiceAuth"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The DID of the service that the token will be used to authenticate with 8 + pub aud: atrium_api::types::string::Did, 9 + ///The time in Unix Epoch seconds that the JWT expires. Defaults to 60 seconds in the future. The service may enforce certain time bounds on tokens depending on the requested scope. 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub exp: core::option::Option<i64>, 12 + ///Lexicon (XRPC) method to bind the requested token to 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub lxm: core::option::Option<atrium_api::types::string::Nsid>, 15 + } 16 + pub type Parameters = atrium_api::types::Object<ParametersData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(rename_all = "camelCase")] 19 + pub struct OutputData { 20 + pub token: String, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error { 26 + ///Indicates that the requested expiration date is not a valid. May be in the past or may be reliant on the requested scopes. 27 + BadExpiration(Option<String>), 28 + } 29 + impl std::fmt::Display for Error { 30 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 31 + match self { 32 + Error::BadExpiration(msg) => { 33 + write!(_f, "BadExpiration")?; 34 + if let Some(msg) = msg { 35 + write!(_f, ": {msg}")?; 36 + } 37 + } 38 + } 39 + Ok(()) 40 + } 41 + }
+31
crates/weaver-common/src/lexicons/com/atproto/server/get_session.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.getSession` namespace. 3 + pub const NSID: &str = "com.atproto.server.getSession"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub active: core::option::Option<bool>, 9 + pub did: atrium_api::types::string::Did, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub did_doc: core::option::Option<atrium_api::types::Unknown>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub email: core::option::Option<String>, 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub email_auth_factor: core::option::Option<bool>, 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub email_confirmed: core::option::Option<bool>, 18 + pub handle: atrium_api::types::string::Handle, 19 + ///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. 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub status: core::option::Option<String>, 22 + } 23 + pub type Output = atrium_api::types::Object<OutputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "error", content = "message")] 26 + pub enum Error {} 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + Ok(()) 30 + } 31 + }
+36
crates/weaver-common/src/lexicons/com/atproto/server/list_app_passwords.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.listAppPasswords` namespace. 3 + pub const NSID: &str = "com.atproto.server.listAppPasswords"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub passwords: Vec<AppPassword>, 8 + } 9 + pub type Output = atrium_api::types::Object<OutputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error { 13 + AccountTakedown(Option<String>), 14 + } 15 + impl std::fmt::Display for Error { 16 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 17 + match self { 18 + Error::AccountTakedown(msg) => { 19 + write!(_f, "AccountTakedown")?; 20 + if let Some(msg) = msg { 21 + write!(_f, ": {msg}")?; 22 + } 23 + } 24 + } 25 + Ok(()) 26 + } 27 + } 28 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 29 + #[serde(rename_all = "camelCase")] 30 + pub struct AppPasswordData { 31 + pub created_at: atrium_api::types::string::Datetime, 32 + pub name: String, 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub privileged: core::option::Option<bool>, 35 + } 36 + pub type AppPassword = atrium_api::types::Object<AppPasswordData>;
+37
crates/weaver-common/src/lexicons/com/atproto/server/refresh_session.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.refreshSession` namespace. 3 + pub const NSID: &str = "com.atproto.server.refreshSession"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub access_jwt: String, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub active: core::option::Option<bool>, 10 + pub did: atrium_api::types::string::Did, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub did_doc: core::option::Option<atrium_api::types::Unknown>, 13 + pub handle: atrium_api::types::string::Handle, 14 + pub refresh_jwt: String, 15 + ///Hosting status of the account. If not specified, then assume 'active'. 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub status: core::option::Option<String>, 18 + } 19 + pub type Output = atrium_api::types::Object<OutputData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(tag = "error", content = "message")] 22 + pub enum Error { 23 + AccountTakedown(Option<String>), 24 + } 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + match self { 28 + Error::AccountTakedown(msg) => { 29 + write!(_f, "AccountTakedown")?; 30 + if let Some(msg) = msg { 31 + write!(_f, ": {msg}")?; 32 + } 33 + } 34 + } 35 + Ok(()) 36 + } 37 + }
+11
crates/weaver-common/src/lexicons/com/atproto/server/request_account_delete.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.requestAccountDelete` namespace. 3 + pub const NSID: &str = "com.atproto.server.requestAccountDelete"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(tag = "error", content = "message")] 6 + pub enum Error {} 7 + impl std::fmt::Display for Error { 8 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 9 + Ok(()) 10 + } 11 + }
+11
crates/weaver-common/src/lexicons/com/atproto/server/request_email_confirmation.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.requestEmailConfirmation` namespace. 3 + pub const NSID: &str = "com.atproto.server.requestEmailConfirmation"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(tag = "error", content = "message")] 6 + pub enum Error {} 7 + impl std::fmt::Display for Error { 8 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 9 + Ok(()) 10 + } 11 + }
+17
crates/weaver-common/src/lexicons/com/atproto/server/request_email_update.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.requestEmailUpdate` namespace. 3 + pub const NSID: &str = "com.atproto.server.requestEmailUpdate"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub token_required: bool, 8 + } 9 + pub type Output = atrium_api::types::Object<OutputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+17
crates/weaver-common/src/lexicons/com/atproto/server/request_password_reset.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.requestPasswordReset` namespace. 3 + pub const NSID: &str = "com.atproto.server.requestPasswordReset"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub email: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+26
crates/weaver-common/src/lexicons/com/atproto/server/reserve_signing_key.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.reserveSigningKey` namespace. 3 + pub const NSID: &str = "com.atproto.server.reserveSigningKey"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///The DID to reserve a key for. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub did: core::option::Option<atrium_api::types::string::Did>, 10 + } 11 + pub type Input = atrium_api::types::Object<InputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(rename_all = "camelCase")] 14 + pub struct OutputData { 15 + ///The public key for the reserved signing key, in did:key serialization. 16 + pub signing_key: String, 17 + } 18 + pub type Output = atrium_api::types::Object<OutputData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(tag = "error", content = "message")] 21 + pub enum Error {} 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + Ok(()) 25 + } 26 + }
+35
crates/weaver-common/src/lexicons/com/atproto/server/reset_password.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.resetPassword` namespace. 3 + pub const NSID: &str = "com.atproto.server.resetPassword"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub password: String, 8 + pub token: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error { 14 + ExpiredToken(Option<String>), 15 + InvalidToken(Option<String>), 16 + } 17 + impl std::fmt::Display for Error { 18 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 19 + match self { 20 + Error::ExpiredToken(msg) => { 21 + write!(_f, "ExpiredToken")?; 22 + if let Some(msg) = msg { 23 + write!(_f, ": {msg}")?; 24 + } 25 + } 26 + Error::InvalidToken(msg) => { 27 + write!(_f, "InvalidToken")?; 28 + if let Some(msg) = msg { 29 + write!(_f, ": {msg}")?; 30 + } 31 + } 32 + } 33 + Ok(()) 34 + } 35 + }
+17
crates/weaver-common/src/lexicons/com/atproto/server/revoke_app_password.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.revokeAppPassword` namespace. 3 + pub const NSID: &str = "com.atproto.server.revokeAppPassword"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub name: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+46
crates/weaver-common/src/lexicons/com/atproto/server/update_email.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.server.updateEmail` namespace. 3 + pub const NSID: &str = "com.atproto.server.updateEmail"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub email: String, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub email_auth_factor: core::option::Option<bool>, 10 + ///Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub token: core::option::Option<String>, 13 + } 14 + pub type Input = atrium_api::types::Object<InputData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(tag = "error", content = "message")] 17 + pub enum Error { 18 + ExpiredToken(Option<String>), 19 + InvalidToken(Option<String>), 20 + TokenRequired(Option<String>), 21 + } 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + match self { 25 + Error::ExpiredToken(msg) => { 26 + write!(_f, "ExpiredToken")?; 27 + if let Some(msg) = msg { 28 + write!(_f, ": {msg}")?; 29 + } 30 + } 31 + Error::InvalidToken(msg) => { 32 + write!(_f, "InvalidToken")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + Error::TokenRequired(msg) => { 38 + write!(_f, "TokenRequired")?; 39 + if let Some(msg) = msg { 40 + write!(_f, ": {msg}")?; 41 + } 42 + } 43 + } 44 + Ok(()) 45 + } 46 + }
+19
crates/weaver-common/src/lexicons/com/atproto/sync.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync` namespace. 3 + pub mod defs; 4 + pub mod get_blob; 5 + pub mod get_blocks; 6 + pub mod get_checkout; 7 + pub mod get_head; 8 + pub mod get_host_status; 9 + pub mod get_latest_commit; 10 + pub mod get_record; 11 + pub mod get_repo; 12 + pub mod get_repo_status; 13 + pub mod list_blobs; 14 + pub mod list_hosts; 15 + pub mod list_repos; 16 + pub mod list_repos_by_collection; 17 + pub mod notify_of_update; 18 + pub mod request_crawl; 19 + pub mod subscribe_repos;
+3
crates/weaver-common/src/lexicons/com/atproto/sync/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.defs` namespace. 3 + pub type HostStatus = String;
+58
crates/weaver-common/src/lexicons/com/atproto/sync/get_blob.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getBlob` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getBlob"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The CID of the blob to fetch 8 + pub cid: atrium_api::types::string::Cid, 9 + ///The DID of the account. 10 + pub did: atrium_api::types::string::Did, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error { 16 + BlobNotFound(Option<String>), 17 + RepoNotFound(Option<String>), 18 + RepoTakendown(Option<String>), 19 + RepoSuspended(Option<String>), 20 + RepoDeactivated(Option<String>), 21 + } 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + match self { 25 + Error::BlobNotFound(msg) => { 26 + write!(_f, "BlobNotFound")?; 27 + if let Some(msg) = msg { 28 + write!(_f, ": {msg}")?; 29 + } 30 + } 31 + Error::RepoNotFound(msg) => { 32 + write!(_f, "RepoNotFound")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + Error::RepoTakendown(msg) => { 38 + write!(_f, "RepoTakendown")?; 39 + if let Some(msg) = msg { 40 + write!(_f, ": {msg}")?; 41 + } 42 + } 43 + Error::RepoSuspended(msg) => { 44 + write!(_f, "RepoSuspended")?; 45 + if let Some(msg) = msg { 46 + write!(_f, ": {msg}")?; 47 + } 48 + } 49 + Error::RepoDeactivated(msg) => { 50 + write!(_f, "RepoDeactivated")?; 51 + if let Some(msg) = msg { 52 + write!(_f, ": {msg}")?; 53 + } 54 + } 55 + } 56 + Ok(()) 57 + } 58 + }
+57
crates/weaver-common/src/lexicons/com/atproto/sync/get_blocks.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getBlocks` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getBlocks"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub cids: Vec<atrium_api::types::string::Cid>, 8 + ///The DID of the repo. 9 + pub did: atrium_api::types::string::Did, 10 + } 11 + pub type Parameters = atrium_api::types::Object<ParametersData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error { 15 + BlockNotFound(Option<String>), 16 + RepoNotFound(Option<String>), 17 + RepoTakendown(Option<String>), 18 + RepoSuspended(Option<String>), 19 + RepoDeactivated(Option<String>), 20 + } 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + match self { 24 + Error::BlockNotFound(msg) => { 25 + write!(_f, "BlockNotFound")?; 26 + if let Some(msg) = msg { 27 + write!(_f, ": {msg}")?; 28 + } 29 + } 30 + Error::RepoNotFound(msg) => { 31 + write!(_f, "RepoNotFound")?; 32 + if let Some(msg) = msg { 33 + write!(_f, ": {msg}")?; 34 + } 35 + } 36 + Error::RepoTakendown(msg) => { 37 + write!(_f, "RepoTakendown")?; 38 + if let Some(msg) = msg { 39 + write!(_f, ": {msg}")?; 40 + } 41 + } 42 + Error::RepoSuspended(msg) => { 43 + write!(_f, "RepoSuspended")?; 44 + if let Some(msg) = msg { 45 + write!(_f, ": {msg}")?; 46 + } 47 + } 48 + Error::RepoDeactivated(msg) => { 49 + write!(_f, "RepoDeactivated")?; 50 + if let Some(msg) = msg { 51 + write!(_f, ": {msg}")?; 52 + } 53 + } 54 + } 55 + Ok(()) 56 + } 57 + }
+18
crates/weaver-common/src/lexicons/com/atproto/sync/get_checkout.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getCheckout` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getCheckout"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The DID of the repo. 8 + pub did: atrium_api::types::string::Did, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error {} 14 + impl std::fmt::Display for Error { 15 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 16 + Ok(()) 17 + } 18 + }
+34
crates/weaver-common/src/lexicons/com/atproto/sync/get_head.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getHead` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getHead"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The DID of the repo. 8 + pub did: atrium_api::types::string::Did, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub root: atrium_api::types::string::Cid, 15 + } 16 + pub type Output = atrium_api::types::Object<OutputData>; 17 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 + #[serde(tag = "error", content = "message")] 19 + pub enum Error { 20 + HeadNotFound(Option<String>), 21 + } 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + match self { 25 + Error::HeadNotFound(msg) => { 26 + write!(_f, "HeadNotFound")?; 27 + if let Some(msg) = msg { 28 + write!(_f, ": {msg}")?; 29 + } 30 + } 31 + } 32 + Ok(()) 33 + } 34 + }
+42
crates/weaver-common/src/lexicons/com/atproto/sync/get_host_status.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getHostStatus` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getHostStatus"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Hostname of the host (eg, PDS or relay) being queried. 8 + pub hostname: String, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + ///Number of accounts on the server which are associated with the upstream host. Note that the upstream may actually have more accounts. 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub account_count: core::option::Option<i64>, 17 + pub hostname: String, 18 + ///Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor). 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub seq: core::option::Option<i64>, 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub status: core::option::Option<crate::com::atproto::sync::defs::HostStatus>, 23 + } 24 + pub type Output = atrium_api::types::Object<OutputData>; 25 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 + #[serde(tag = "error", content = "message")] 27 + pub enum Error { 28 + HostNotFound(Option<String>), 29 + } 30 + impl std::fmt::Display for Error { 31 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 32 + match self { 33 + Error::HostNotFound(msg) => { 34 + write!(_f, "HostNotFound")?; 35 + if let Some(msg) = msg { 36 + write!(_f, ": {msg}")?; 37 + } 38 + } 39 + } 40 + Ok(()) 41 + } 42 + }
+56
crates/weaver-common/src/lexicons/com/atproto/sync/get_latest_commit.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getLatestCommit` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getLatestCommit"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The DID of the repo. 8 + pub did: atrium_api::types::string::Did, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub cid: atrium_api::types::string::Cid, 15 + pub rev: atrium_api::types::string::Tid, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error { 21 + RepoNotFound(Option<String>), 22 + RepoTakendown(Option<String>), 23 + RepoSuspended(Option<String>), 24 + RepoDeactivated(Option<String>), 25 + } 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + match self { 29 + Error::RepoNotFound(msg) => { 30 + write!(_f, "RepoNotFound")?; 31 + if let Some(msg) = msg { 32 + write!(_f, ": {msg}")?; 33 + } 34 + } 35 + Error::RepoTakendown(msg) => { 36 + write!(_f, "RepoTakendown")?; 37 + if let Some(msg) = msg { 38 + write!(_f, ": {msg}")?; 39 + } 40 + } 41 + Error::RepoSuspended(msg) => { 42 + write!(_f, "RepoSuspended")?; 43 + if let Some(msg) = msg { 44 + write!(_f, ": {msg}")?; 45 + } 46 + } 47 + Error::RepoDeactivated(msg) => { 48 + write!(_f, "RepoDeactivated")?; 49 + if let Some(msg) = msg { 50 + write!(_f, ": {msg}")?; 51 + } 52 + } 53 + } 54 + Ok(()) 55 + } 56 + }
+59
crates/weaver-common/src/lexicons/com/atproto/sync/get_record.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getRecord` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getRecord"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub collection: atrium_api::types::string::Nsid, 8 + ///The DID of the repo. 9 + pub did: atrium_api::types::string::Did, 10 + ///Record Key 11 + pub rkey: atrium_api::types::string::RecordKey, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(tag = "error", content = "message")] 16 + pub enum Error { 17 + RecordNotFound(Option<String>), 18 + RepoNotFound(Option<String>), 19 + RepoTakendown(Option<String>), 20 + RepoSuspended(Option<String>), 21 + RepoDeactivated(Option<String>), 22 + } 23 + impl std::fmt::Display for Error { 24 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 25 + match self { 26 + Error::RecordNotFound(msg) => { 27 + write!(_f, "RecordNotFound")?; 28 + if let Some(msg) = msg { 29 + write!(_f, ": {msg}")?; 30 + } 31 + } 32 + Error::RepoNotFound(msg) => { 33 + write!(_f, "RepoNotFound")?; 34 + if let Some(msg) = msg { 35 + write!(_f, ": {msg}")?; 36 + } 37 + } 38 + Error::RepoTakendown(msg) => { 39 + write!(_f, "RepoTakendown")?; 40 + if let Some(msg) = msg { 41 + write!(_f, ": {msg}")?; 42 + } 43 + } 44 + Error::RepoSuspended(msg) => { 45 + write!(_f, "RepoSuspended")?; 46 + if let Some(msg) = msg { 47 + write!(_f, ": {msg}")?; 48 + } 49 + } 50 + Error::RepoDeactivated(msg) => { 51 + write!(_f, "RepoDeactivated")?; 52 + if let Some(msg) = msg { 53 + write!(_f, ": {msg}")?; 54 + } 55 + } 56 + } 57 + Ok(()) 58 + } 59 + }
+52
crates/weaver-common/src/lexicons/com/atproto/sync/get_repo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getRepo` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getRepo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The DID of the repo. 8 + pub did: atrium_api::types::string::Did, 9 + ///The revision ('rev') of the repo to create a diff from. 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub since: core::option::Option<atrium_api::types::string::Tid>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(tag = "error", content = "message")] 16 + pub enum Error { 17 + RepoNotFound(Option<String>), 18 + RepoTakendown(Option<String>), 19 + RepoSuspended(Option<String>), 20 + RepoDeactivated(Option<String>), 21 + } 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + match self { 25 + Error::RepoNotFound(msg) => { 26 + write!(_f, "RepoNotFound")?; 27 + if let Some(msg) = msg { 28 + write!(_f, ": {msg}")?; 29 + } 30 + } 31 + Error::RepoTakendown(msg) => { 32 + write!(_f, "RepoTakendown")?; 33 + if let Some(msg) = msg { 34 + write!(_f, ": {msg}")?; 35 + } 36 + } 37 + Error::RepoSuspended(msg) => { 38 + write!(_f, "RepoSuspended")?; 39 + if let Some(msg) = msg { 40 + write!(_f, ": {msg}")?; 41 + } 42 + } 43 + Error::RepoDeactivated(msg) => { 44 + write!(_f, "RepoDeactivated")?; 45 + if let Some(msg) = msg { 46 + write!(_f, ": {msg}")?; 47 + } 48 + } 49 + } 50 + Ok(()) 51 + } 52 + }
+41
crates/weaver-common/src/lexicons/com/atproto/sync/get_repo_status.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.getRepoStatus` namespace. 3 + pub const NSID: &str = "com.atproto.sync.getRepoStatus"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The DID of the repo. 8 + pub did: atrium_api::types::string::Did, 9 + } 10 + pub type Parameters = atrium_api::types::Object<ParametersData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub active: bool, 15 + pub did: atrium_api::types::string::Did, 16 + ///Optional field, the current rev of the repo, if active=true 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub rev: core::option::Option<atrium_api::types::string::Tid>, 19 + ///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. 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub status: core::option::Option<String>, 22 + } 23 + pub type Output = atrium_api::types::Object<OutputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "error", content = "message")] 26 + pub enum Error { 27 + RepoNotFound(Option<String>), 28 + } 29 + impl std::fmt::Display for Error { 30 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 31 + match self { 32 + Error::RepoNotFound(msg) => { 33 + write!(_f, "RepoNotFound")?; 34 + if let Some(msg) = msg { 35 + write!(_f, ": {msg}")?; 36 + } 37 + } 38 + } 39 + Ok(()) 40 + } 41 + }
+64
crates/weaver-common/src/lexicons/com/atproto/sync/list_blobs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.listBlobs` namespace. 3 + pub const NSID: &str = "com.atproto.sync.listBlobs"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + ///The DID of the repo. 10 + pub did: atrium_api::types::string::Did, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU16<1000u16>>, 13 + ///Optional revision of the repo to list blobs since. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub since: core::option::Option<atrium_api::types::string::Tid>, 16 + } 17 + pub type Parameters = atrium_api::types::Object<ParametersData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct OutputData { 21 + pub cids: Vec<atrium_api::types::string::Cid>, 22 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 23 + pub cursor: core::option::Option<String>, 24 + } 25 + pub type Output = atrium_api::types::Object<OutputData>; 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(tag = "error", content = "message")] 28 + pub enum Error { 29 + RepoNotFound(Option<String>), 30 + RepoTakendown(Option<String>), 31 + RepoSuspended(Option<String>), 32 + RepoDeactivated(Option<String>), 33 + } 34 + impl std::fmt::Display for Error { 35 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 36 + match self { 37 + Error::RepoNotFound(msg) => { 38 + write!(_f, "RepoNotFound")?; 39 + if let Some(msg) = msg { 40 + write!(_f, ": {msg}")?; 41 + } 42 + } 43 + Error::RepoTakendown(msg) => { 44 + write!(_f, "RepoTakendown")?; 45 + if let Some(msg) = msg { 46 + write!(_f, ": {msg}")?; 47 + } 48 + } 49 + Error::RepoSuspended(msg) => { 50 + write!(_f, "RepoSuspended")?; 51 + if let Some(msg) = msg { 52 + write!(_f, ": {msg}")?; 53 + } 54 + } 55 + Error::RepoDeactivated(msg) => { 56 + write!(_f, "RepoDeactivated")?; 57 + if let Some(msg) = msg { 58 + write!(_f, ": {msg}")?; 59 + } 60 + } 61 + } 62 + Ok(()) 63 + } 64 + }
+43
crates/weaver-common/src/lexicons/com/atproto/sync/list_hosts.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.listHosts` namespace. 3 + pub const NSID: &str = "com.atproto.sync.listHosts"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU16<1000u16>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub cursor: core::option::Option<String>, 18 + ///Sort order is not formally specified. Recommended order is by time host was first seen by the server, with oldest first. 19 + pub hosts: Vec<Host>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + } 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(rename_all = "camelCase")] 32 + pub struct HostData { 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub account_count: core::option::Option<i64>, 35 + ///hostname of server; not a URL (no scheme) 36 + pub hostname: String, 37 + ///Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor). 38 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 39 + pub seq: core::option::Option<i64>, 40 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 41 + pub status: core::option::Option<crate::com::atproto::sync::defs::HostStatus>, 42 + } 43 + pub type Host = atrium_api::types::Object<HostData>;
+42
crates/weaver-common/src/lexicons/com/atproto/sync/list_repos.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.listRepos` namespace. 3 + pub const NSID: &str = "com.atproto.sync.listRepos"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU16<1000u16>>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub cursor: core::option::Option<String>, 18 + pub repos: Vec<Repo>, 19 + } 20 + pub type Output = atrium_api::types::Object<OutputData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(tag = "error", content = "message")] 23 + pub enum Error {} 24 + impl std::fmt::Display for Error { 25 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 26 + Ok(()) 27 + } 28 + } 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(rename_all = "camelCase")] 31 + pub struct RepoData { 32 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 33 + pub active: core::option::Option<bool>, 34 + pub did: atrium_api::types::string::Did, 35 + ///Current repo commit CID 36 + pub head: atrium_api::types::string::Cid, 37 + pub rev: atrium_api::types::string::Tid, 38 + ///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. 39 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 40 + pub status: core::option::Option<String>, 41 + } 42 + pub type Repo = atrium_api::types::Object<RepoData>;
+36
crates/weaver-common/src/lexicons/com/atproto/sync/list_repos_by_collection.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.listReposByCollection` namespace. 3 + pub const NSID: &str = "com.atproto.sync.listReposByCollection"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub collection: atrium_api::types::string::Nsid, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<String>, 10 + ///Maximum size of response set. Recommend setting a large maximum (1000+) when enumerating large DID lists. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU16<2000u16>>, 13 + } 14 + pub type Parameters = atrium_api::types::Object<ParametersData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(rename_all = "camelCase")] 17 + pub struct OutputData { 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub cursor: core::option::Option<String>, 20 + pub repos: Vec<Repo>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + } 31 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 32 + #[serde(rename_all = "camelCase")] 33 + pub struct RepoData { 34 + pub did: atrium_api::types::string::Did, 35 + } 36 + pub type Repo = atrium_api::types::Object<RepoData>;
+18
crates/weaver-common/src/lexicons/com/atproto/sync/notify_of_update.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.notifyOfUpdate` namespace. 3 + pub const NSID: &str = "com.atproto.sync.notifyOfUpdate"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Hostname of the current service (usually a PDS) that is notifying of update. 8 + pub hostname: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error {} 14 + impl std::fmt::Display for Error { 15 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 16 + Ok(()) 17 + } 18 + }
+28
crates/weaver-common/src/lexicons/com/atproto/sync/request_crawl.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.requestCrawl` namespace. 3 + pub const NSID: &str = "com.atproto.sync.requestCrawl"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Hostname of the current service (eg, PDS) that is requesting to be crawled. 8 + pub hostname: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error { 14 + HostBanned(Option<String>), 15 + } 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + match self { 19 + Error::HostBanned(msg) => { 20 + write!(_f, "HostBanned")?; 21 + if let Some(msg) = msg { 22 + write!(_f, ": {msg}")?; 23 + } 24 + } 25 + } 26 + Ok(()) 27 + } 28 + }
+147
crates/weaver-common/src/lexicons/com/atproto/sync/subscribe_repos.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.sync.subscribeRepos` namespace. 3 + pub const NSID: &str = "com.atproto.sync.subscribeRepos"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///The last known event seq number to backfill from. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub cursor: core::option::Option<i64>, 10 + } 11 + pub type Parameters = atrium_api::types::Object<ParametersData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error { 15 + FutureCursor(Option<String>), 16 + ///If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection. 17 + ConsumerTooSlow(Option<String>), 18 + } 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + match self { 22 + Error::FutureCursor(msg) => { 23 + write!(_f, "FutureCursor")?; 24 + if let Some(msg) = msg { 25 + write!(_f, ": {msg}")?; 26 + } 27 + } 28 + Error::ConsumerTooSlow(msg) => { 29 + write!(_f, "ConsumerTooSlow")?; 30 + if let Some(msg) = msg { 31 + write!(_f, ": {msg}")?; 32 + } 33 + } 34 + } 35 + Ok(()) 36 + } 37 + } 38 + ///Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active. 39 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 40 + #[serde(rename_all = "camelCase")] 41 + pub struct AccountData { 42 + ///Indicates that the account has a repository which can be fetched from the host that emitted this event. 43 + pub active: bool, 44 + pub did: atrium_api::types::string::Did, 45 + pub seq: i64, 46 + ///If active=false, this optional field indicates a reason for why the account is not active. 47 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 48 + pub status: core::option::Option<String>, 49 + pub time: atrium_api::types::string::Datetime, 50 + } 51 + pub type Account = atrium_api::types::Object<AccountData>; 52 + ///Represents an update of repository state. Note that empty commits are allowed, which include no repo data changes, but an update to rev and signature. 53 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 54 + #[serde(rename_all = "camelCase")] 55 + pub struct CommitData { 56 + pub blobs: Vec<atrium_api::types::CidLink>, 57 + ///CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included as a block, and the commit block CID must be the first entry in the CAR header 'roots' list. 58 + #[serde(with = "serde_bytes")] 59 + pub blocks: Vec<u8>, 60 + ///Repo commit object CID. 61 + pub commit: atrium_api::types::CidLink, 62 + pub ops: Vec<RepoOp>, 63 + ///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. 64 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 65 + pub prev_data: core::option::Option<atrium_api::types::CidLink>, 66 + ///DEPRECATED -- unused 67 + pub rebase: bool, 68 + ///The repo this event comes from. Note that all other message types name this field 'did'. 69 + pub repo: atrium_api::types::string::Did, 70 + ///The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event. 71 + pub rev: atrium_api::types::string::Tid, 72 + ///The stream sequence number of this message. 73 + pub seq: i64, 74 + ///The rev of the last emitted commit from this repo (if any). 75 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 76 + pub since: core::option::Option<atrium_api::types::string::Tid>, 77 + ///Timestamp of when this message was originally broadcast. 78 + pub time: atrium_api::types::string::Datetime, 79 + ///DEPRECATED -- replaced by #sync event and data limits. Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data. 80 + pub too_big: bool, 81 + } 82 + pub type Commit = atrium_api::types::Object<CommitData>; 83 + ///Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache. 84 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 85 + #[serde(rename_all = "camelCase")] 86 + pub struct IdentityData { 87 + pub did: atrium_api::types::string::Did, 88 + ///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. 89 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 90 + pub handle: core::option::Option<atrium_api::types::string::Handle>, 91 + pub seq: i64, 92 + pub time: atrium_api::types::string::Datetime, 93 + } 94 + pub type Identity = atrium_api::types::Object<IdentityData>; 95 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 96 + #[serde(rename_all = "camelCase")] 97 + pub struct InfoData { 98 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 99 + pub message: core::option::Option<String>, 100 + pub name: String, 101 + } 102 + pub type Info = atrium_api::types::Object<InfoData>; 103 + ///A repo operation, ie a mutation of a single record. 104 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 105 + #[serde(rename_all = "camelCase")] 106 + pub struct RepoOpData { 107 + pub action: String, 108 + ///For creates and updates, the new record CID. For deletions, null. 109 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 110 + pub cid: core::option::Option<atrium_api::types::CidLink>, 111 + pub path: String, 112 + ///For updates and deletes, the previous record CID (required for inductive firehose). For creations, field should not be defined. 113 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 114 + pub prev: core::option::Option<atrium_api::types::CidLink>, 115 + } 116 + pub type RepoOp = atrium_api::types::Object<RepoOpData>; 117 + ///Updates the repo to a new state, without necessarily including that state on the firehose. Used to recover from broken commit streams, data loss incidents, or in situations where upstream host does not know recent state of the repository. 118 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 119 + #[serde(rename_all = "camelCase")] 120 + pub struct SyncData { 121 + ///CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first 'root'. 122 + #[serde(with = "serde_bytes")] 123 + pub blocks: Vec<u8>, 124 + ///The account this repo event corresponds to. Must match that in the commit object. 125 + pub did: atrium_api::types::string::Did, 126 + ///The rev of the commit. This value must match that in the commit object. 127 + pub rev: String, 128 + ///The stream sequence number of this message. 129 + pub seq: i64, 130 + ///Timestamp of when this message was originally broadcast. 131 + pub time: atrium_api::types::string::Datetime, 132 + } 133 + pub type Sync = atrium_api::types::Object<SyncData>; 134 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 135 + #[serde(tag = "$type")] 136 + pub enum Message { 137 + #[serde(rename = "com.atproto.sync.subscribeRepos#commit")] 138 + Commit(Box<Commit>), 139 + #[serde(rename = "com.atproto.sync.subscribeRepos#sync")] 140 + Sync(Box<Sync>), 141 + #[serde(rename = "com.atproto.sync.subscribeRepos#identity")] 142 + Identity(Box<Identity>), 143 + #[serde(rename = "com.atproto.sync.subscribeRepos#account")] 144 + Account(Box<Account>), 145 + #[serde(rename = "com.atproto.sync.subscribeRepos#info")] 146 + Info(Box<Info>), 147 + }
+6
crates/weaver-common/src/lexicons/com/atproto/temp.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.temp` namespace. 3 + pub mod add_reserved_handle; 4 + pub mod check_signup_queue; 5 + pub mod fetch_labels; 6 + pub mod request_phone_verification;
+21
crates/weaver-common/src/lexicons/com/atproto/temp/add_reserved_handle.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.temp.addReservedHandle` namespace. 3 + pub const NSID: &str = "com.atproto.temp.addReservedHandle"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub handle: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData {} 13 + pub type Output = atrium_api::types::Object<OutputData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(tag = "error", content = "message")] 16 + pub enum Error {} 17 + impl std::fmt::Display for Error { 18 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 19 + Ok(()) 20 + } 21 + }
+21
crates/weaver-common/src/lexicons/com/atproto/temp/check_signup_queue.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.temp.checkSignupQueue` namespace. 3 + pub const NSID: &str = "com.atproto.temp.checkSignupQueue"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub activated: bool, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub estimated_time_ms: core::option::Option<i64>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub place_in_queue: core::option::Option<i64>, 12 + } 13 + pub type Output = atrium_api::types::Object<OutputData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(tag = "error", content = "message")] 16 + pub enum Error {} 17 + impl std::fmt::Display for Error { 18 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 19 + Ok(()) 20 + } 21 + }
+26
crates/weaver-common/src/lexicons/com/atproto/temp/fetch_labels.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.temp.fetchLabels` namespace. 3 + pub const NSID: &str = "com.atproto.temp.fetchLabels"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<250u8>>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub since: core::option::Option<i64>, 11 + } 12 + pub type Parameters = atrium_api::types::Object<ParametersData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(rename_all = "camelCase")] 15 + pub struct OutputData { 16 + pub labels: Vec<crate::com::atproto::label::defs::Label>, 17 + } 18 + pub type Output = atrium_api::types::Object<OutputData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(tag = "error", content = "message")] 21 + pub enum Error {} 22 + impl std::fmt::Display for Error { 23 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 24 + Ok(()) 25 + } 26 + }
+17
crates/weaver-common/src/lexicons/com/atproto/temp/request_phone_verification.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `com.atproto.temp.requestPhoneVerification` namespace. 3 + pub const NSID: &str = "com.atproto.temp.requestPhoneVerification"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub phone_number: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+3
crates/weaver-common/src/lexicons/mod.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + pub mod record; 3 + pub mod sh;
+27
crates/weaver-common/src/lexicons/record.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!A collection of known record types. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(tag = "$type")] 5 + pub enum KnownRecord { 6 + #[serde(rename = "sh.tangled.actor.profile")] 7 + LexiconsShTangledActorProfile( 8 + Box<crate::lexicons::sh::tangled::actor::profile::Record>, 9 + ), 10 + } 11 + impl From<crate::lexicons::sh::tangled::actor::profile::Record> for KnownRecord { 12 + fn from(record: crate::lexicons::sh::tangled::actor::profile::Record) -> Self { 13 + KnownRecord::LexiconsShTangledActorProfile(Box::new(record)) 14 + } 15 + } 16 + impl From<crate::lexicons::sh::tangled::actor::profile::RecordData> for KnownRecord { 17 + fn from( 18 + record_data: crate::lexicons::sh::tangled::actor::profile::RecordData, 19 + ) -> Self { 20 + KnownRecord::LexiconsShTangledActorProfile(Box::new(record_data.into())) 21 + } 22 + } 23 + impl Into<atrium_api::types::Unknown> for KnownRecord { 24 + fn into(self) -> atrium_api::types::Unknown { 25 + atrium_api::types::TryIntoUnknown::try_into_unknown(&self).unwrap() 26 + } 27 + }
+4
crates/weaver-common/src/lexicons/sh.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh` namespace. 3 + pub mod tangled; 4 + pub mod weaver;
+3
crates/weaver-common/src/lexicons/sh/tangled.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.tangled` namespace. 3 + pub mod actor;
+9
crates/weaver-common/src/lexicons/sh/tangled/actor.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.tangled.actor` namespace. 3 + pub mod profile; 4 + #[derive(Debug)] 5 + pub struct Profile; 6 + impl atrium_api::types::Collection for Profile { 7 + const NSID: &'static str = "sh.tangled.actor.profile"; 8 + type Record = profile::Record; 9 + }
+28
crates/weaver-common/src/lexicons/sh/tangled/actor/profile.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.tangled.actor.profile` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///Include link to this account on Bluesky. 8 + pub bluesky: bool, 9 + ///Free-form profile description text. 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub description: core::option::Option<String>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub links: core::option::Option<Vec<String>>, 14 + ///Free-form location text. 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub location: core::option::Option<String>, 17 + ///Any ATURI, it is up to appviews to validate these fields. 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub pinned_repositories: core::option::Option<Vec<String>>, 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub stats: core::option::Option<Vec<String>>, 22 + } 23 + pub type Record = atrium_api::types::Object<RecordData>; 24 + impl From<atrium_api::types::Unknown> for RecordData { 25 + fn from(value: atrium_api::types::Unknown) -> Self { 26 + Self::try_from_unknown(value).unwrap() 27 + } 28 + }
+5
crates/weaver-common/src/lexicons/sh/weaver.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver` namespace. 3 + pub mod actor; 4 + pub mod embed; 5 + pub mod notebook;
+4
crates/weaver-common/src/lexicons/sh/weaver/actor.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.actor` namespace. 3 + pub mod defs; 4 + pub mod profile;
+23
crates/weaver-common/src/lexicons/sh/weaver/actor/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.actor.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct ProfileViewData { 6 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 7 + pub avatar: core::option::Option<String>, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub description: core::option::Option<String>, 12 + pub did: atrium_api::types::string::Did, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub display_name: core::option::Option<String>, 15 + pub handle: atrium_api::types::string::Handle, 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub indexed_at: core::option::Option<atrium_api::types::string::Datetime>, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub status: core::option::Option<StatusView>, 22 + } 23 + pub type ProfileView = atrium_api::types::Object<ProfileViewData>;
+40
crates/weaver-common/src/lexicons/sh/weaver/actor/profile.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.actor.profile` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///Small image to be displayed next to posts from account. AKA, 'profile picture' 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub avatar: core::option::Option<atrium_api::types::BlobRef>, 10 + ///Include link to this account on Bluesky. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub bluesky: core::option::Option<bool>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 15 + ///Free-form profile description text. 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub description: core::option::Option<String>, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub display_name: core::option::Option<String>, 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub links: core::option::Option<Vec<String>>, 22 + ///Free-form location text. 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub location: core::option::Option<String>, 25 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 26 + pub pinned_post: core::option::Option<crate::com::atproto::repo::strong_ref::Main>, 27 + ///Pronouns to use in user-generated content. 28 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 29 + pub pronouns: core::option::Option<PronounsList>, 30 + ///Include link to this account on Tangled. 31 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 32 + pub tangled: core::option::Option<bool>, 33 + } 34 + pub type Record = atrium_api::types::Object<RecordData>; 35 + impl From<atrium_api::types::Unknown> for RecordData { 36 + fn from(value: atrium_api::types::Unknown) -> Self { 37 + Self::try_from_unknown(value).unwrap() 38 + } 39 + } 40 + pub type PronounsList = Vec<String>;
+7
crates/weaver-common/src/lexicons/sh/weaver/embed.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.embed` namespace. 3 + pub mod defs; 4 + pub mod images; 5 + pub mod record_with_media; 6 + pub mod records; 7 + pub mod video;
+18
crates/weaver-common/src/lexicons/sh/weaver/embed/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.embed.defs` namespace. 3 + ///Proportional size of the embed relative to the viewport in larger windows. The dimensions are percentage out of 100. Could we use more granularity? Maybe, but come on. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct PercentSizeData { 7 + pub height: i64, 8 + pub width: i64, 9 + } 10 + pub type PercentSize = atrium_api::types::Object<PercentSizeData>; 11 + ///Pixel-exact embed size. The dimensions are logical pixels, subject to scaling, so 200px at X2 scale is 400px. 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(rename_all = "camelCase")] 14 + pub struct PixelSizeData { 15 + pub height: i64, 16 + pub width: i64, 17 + } 18 + pub type PixelSize = atrium_api::types::Object<PixelSizeData>;
+32
crates/weaver-common/src/lexicons/sh/weaver/embed/images.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.embed.images` namespace. 3 + //!A set of images embedded in a blog post. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub images: Vec<Image>, 8 + } 9 + pub type Main = atrium_api::types::Object<MainData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct ImageData { 13 + ///alt text description of the image 14 + pub alt: String, 15 + ///Blurhash string for the image, used for low-resolution placeholders. This must be a valid Blurhash string. 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub blurhash: core::option::Option<String>, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub dimensions: core::option::Option<atrium_api::types::Union<ImageDimensionsRefs>>, 20 + pub image: atrium_api::types::BlobRef, 21 + } 22 + pub type Image = atrium_api::types::Object<ImageData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "$type")] 25 + pub enum ImageDimensionsRefs { 26 + #[serde(rename = "app.bsky.embed.defs#aspectRatio")] 27 + AppBskyEmbedDefsAspectRatio(Box<crate::app::bsky::embed::defs::AspectRatio>), 28 + #[serde(rename = "sh.weaver.embed.defs#percentSize")] 29 + ShWeaverEmbedDefsPercentSize(Box<crate::sh::weaver::embed::defs::PercentSize>), 30 + #[serde(rename = "sh.weaver.embed.defs#pixelSize")] 31 + ShWeaverEmbedDefsPixelSize(Box<crate::sh::weaver::embed::defs::PixelSize>), 32 + }
+61
crates/weaver-common/src/lexicons/sh/weaver/embed/record_with_media.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.embed.recordWithMedia` namespace. 3 + //!A representation of a record embedded in a Weaver record (eg, a notebook entry), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub media: atrium_api::types::Union<MainMediaRefs>, 8 + pub record: atrium_api::types::Union<MainRecordRefs>, 9 + } 10 + pub type Main = atrium_api::types::Object<MainData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct ViewData { 14 + pub media: atrium_api::types::Union<ViewMediaRefs>, 15 + pub record: atrium_api::types::Union<ViewRecordRefs>, 16 + } 17 + pub type View = atrium_api::types::Object<ViewData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "$type")] 20 + pub enum MainMediaRefs { 21 + #[serde(rename = "sh.weaver.embed.images")] 22 + ShWeaverEmbedImagesMain(Box<crate::sh::weaver::embed::images::Main>), 23 + #[serde(rename = "sh.weaver.embed.external")] 24 + ShWeaverEmbedExternalMain(Box<crate::sh::weaver::embed::external::Main>), 25 + #[serde(rename = "app.bsky.embed.images")] 26 + AppBskyEmbedImagesMain(Box<crate::app::bsky::embed::images::Main>), 27 + #[serde(rename = "app.bsky.embed.video")] 28 + AppBskyEmbedVideoMain(Box<crate::app::bsky::embed::video::Main>), 29 + #[serde(rename = "app.bsky.embed.external")] 30 + AppBskyEmbedExternalMain(Box<crate::app::bsky::embed::external::Main>), 31 + } 32 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 + #[serde(tag = "$type")] 34 + pub enum MainRecordRefs { 35 + #[serde(rename = "app.bsky.embed.record")] 36 + AppBskyEmbedRecordMain(Box<crate::app::bsky::embed::record::Main>), 37 + #[serde(rename = "sh.weaver.embed.record")] 38 + ShWeaverEmbedRecordMain(Box<crate::sh::weaver::embed::record::Main>), 39 + } 40 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 + #[serde(tag = "$type")] 42 + pub enum ViewMediaRefs { 43 + #[serde(rename = "sh.weaver.embed.images#view")] 44 + ShWeaverEmbedImagesView(Box<crate::sh::weaver::embed::images::View>), 45 + #[serde(rename = "sh.weaver.embed.external#view")] 46 + ShWeaverEmbedExternalView(Box<crate::sh::weaver::embed::external::View>), 47 + #[serde(rename = "app.bsky.embed.images#view")] 48 + AppBskyEmbedImagesView(Box<crate::app::bsky::embed::images::View>), 49 + #[serde(rename = "app.bsky.embed.video#view")] 50 + AppBskyEmbedVideoView(Box<crate::app::bsky::embed::video::View>), 51 + #[serde(rename = "app.bsky.embed.external#view")] 52 + AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>), 53 + } 54 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 55 + #[serde(tag = "$type")] 56 + pub enum ViewRecordRefs { 57 + #[serde(rename = "sh.weaver.embed.record#view")] 58 + ShWeaverEmbedRecordView(Box<crate::sh::weaver::embed::record::View>), 59 + #[serde(rename = "app.bsky.embed.record#view")] 60 + AppBskyEmbedRecordView(Box<crate::app::bsky::embed::record::View>), 61 + }
+35
crates/weaver-common/src/lexicons/sh/weaver/embed/records.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.embed.records` namespace. 3 + //!A set of records embedded in a blog post. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + pub records: Vec<External>, 8 + } 9 + pub type Main = atrium_api::types::Object<MainData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct ExternalData { 13 + pub description: String, 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub thumb: core::option::Option<atrium_api::types::BlobRef>, 16 + pub title: String, 17 + pub uri: String, 18 + } 19 + pub type External = atrium_api::types::Object<ExternalData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(rename_all = "camelCase")] 22 + pub struct ViewData { 23 + pub external: ViewExternal, 24 + } 25 + pub type View = atrium_api::types::Object<ViewData>; 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(rename_all = "camelCase")] 28 + pub struct ViewExternalData { 29 + pub description: String, 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub thumb: core::option::Option<String>, 32 + pub title: String, 33 + pub uri: String, 34 + } 35 + pub type ViewExternal = atrium_api::types::Object<ViewExternalData>;
+37
crates/weaver-common/src/lexicons/sh/weaver/embed/video.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.embed.video` namespace. 3 + //!A video embedded in a Weaver record (eg, a notebook entry). 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct MainData { 7 + ///Alt text description of the video, for accessibility. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub alt: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub aspect_ratio: core::option::Option<crate::app::bsky::embed::defs::AspectRatio>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub captions: core::option::Option<Vec<Caption>>, 14 + ///The mp4 video file. May be up to 100mb, formerly limited to 50mb. 15 + pub video: atrium_api::types::BlobRef, 16 + } 17 + pub type Main = atrium_api::types::Object<MainData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct CaptionData { 21 + pub file: atrium_api::types::BlobRef, 22 + pub lang: atrium_api::types::string::Language, 23 + } 24 + pub type Caption = atrium_api::types::Object<CaptionData>; 25 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 + #[serde(rename_all = "camelCase")] 27 + pub struct ViewData { 28 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 29 + pub alt: core::option::Option<String>, 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub aspect_ratio: core::option::Option<crate::app::bsky::embed::defs::AspectRatio>, 32 + pub cid: atrium_api::types::string::Cid, 33 + pub playlist: String, 34 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 35 + pub thumbnail: core::option::Option<String>, 36 + } 37 + pub type View = atrium_api::types::Object<ViewData>;
+5
crates/weaver-common/src/lexicons/sh/weaver/notebook.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.notebook` namespace. 3 + pub mod authors; 4 + pub mod defs; 5 + pub mod entry;
+40
crates/weaver-common/src/lexicons/sh/weaver/notebook/authors.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.notebook.authors` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + pub author_list: Vec<AuthorListItem>, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 10 + } 11 + pub type Record = atrium_api::types::Object<RecordData>; 12 + impl From<atrium_api::types::Unknown> for RecordData { 13 + fn from(value: atrium_api::types::Unknown) -> Self { 14 + Self::try_from_unknown(value).unwrap() 15 + } 16 + } 17 + ///A single author in a Weaver notebook. 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct AuthorListItemData { 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub index: core::option::Option<i64>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub profile: core::option::Option< 25 + atrium_api::types::Union<AuthorListItemProfileRefs>, 26 + >, 27 + } 28 + pub type AuthorListItem = atrium_api::types::Object<AuthorListItemData>; 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(tag = "$type")] 31 + pub enum AuthorListItemProfileRefs { 32 + #[serde(rename = "app.bsky.actor.defs#profileViewBasic")] 33 + AppBskyActorDefsProfileViewBasic( 34 + Box<crate::app::bsky::actor::defs::ProfileViewBasic>, 35 + ), 36 + #[serde(rename = "sh.weaver.actor.profile")] 37 + ShWeaverActorProfileMain(Box<crate::sh::weaver::actor::profile::Main>), 38 + #[serde(rename = "sh.tangled.actor.defs#profileView")] 39 + ShTangledActorDefsProfileView(Box<crate::sh::tangled::actor::defs::ProfileView>), 40 + }
+18
crates/weaver-common/src/lexicons/sh/weaver/notebook/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.notebook.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct EntryViewData { 6 + pub cid: atrium_api::types::string::Cid, 7 + pub uri: String, 8 + } 9 + pub type EntryView = atrium_api::types::Object<EntryViewData>; 10 + ///View of a rendered and cached notebook entry 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct RenderedViewData { 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub css: core::option::Option<atrium_api::types::BlobRef>, 16 + pub html: atrium_api::types::BlobRef, 17 + } 18 + pub type RenderedView = atrium_api::types::Object<RenderedViewData>;
+28
crates/weaver-common/src/lexicons/sh/weaver/notebook/entry.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `sh.weaver.notebook.entry` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + ///The content of the notebook entry. This should be some flavor of Markdown. 8 + pub content: String, 9 + pub created_at: CreatedAt, 10 + ///The set of images, if any, embedded in the notebook entry. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub images: core::option::Option<crate::sh::weaver::embed::images::Main>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub tags: core::option::Option<Tags>, 15 + pub title: Title, 16 + } 17 + pub type Record = atrium_api::types::Object<RecordData>; 18 + impl From<atrium_api::types::Unknown> for RecordData { 19 + fn from(value: atrium_api::types::Unknown) -> Self { 20 + Self::try_from_unknown(value).unwrap() 21 + } 22 + } 23 + ///The date and time when the notebook entry was created. This is used for sorting and displaying the entry's creation date. 24 + pub type CreatedAt = String; 25 + ///An array of tags associated with the notebook entry. Tags can help categorize and organize entries. 26 + pub type Tags = Vec<String>; 27 + ///The title of the notebook entry. 28 + pub type Title = String;
+3
crates/weaver-common/src/lexicons/tools.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools` namespace. 3 + pub mod ozone;
+11
crates/weaver-common/src/lexicons/tools/ozone.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone` namespace. 3 + pub mod communication; 4 + pub mod hosting; 5 + pub mod moderation; 6 + pub mod server; 7 + pub mod set; 8 + pub mod setting; 9 + pub mod signature; 10 + pub mod team; 11 + pub mod verification;
+7
crates/weaver-common/src/lexicons/tools/ozone/communication.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.communication` namespace. 3 + pub mod create_template; 4 + pub mod defs; 5 + pub mod delete_template; 6 + pub mod list_templates; 7 + pub mod update_template;
+39
crates/weaver-common/src/lexicons/tools/ozone/communication/create_template.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.communication.createTemplate` namespace. 3 + pub const NSID: &str = "tools.ozone.communication.createTemplate"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Content of the template, markdown supported, can contain variable placeholders. 8 + pub content_markdown: String, 9 + ///DID of the user who is creating the template. 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub created_by: core::option::Option<atrium_api::types::string::Did>, 12 + ///Message language. 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub lang: core::option::Option<atrium_api::types::string::Language>, 15 + ///Name of the template. 16 + pub name: String, 17 + ///Subject of the message, used in emails. 18 + pub subject: String, 19 + } 20 + pub type Input = atrium_api::types::Object<InputData>; 21 + pub type Output = crate::tools::ozone::communication::defs::TemplateView; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error { 25 + DuplicateTemplateName(Option<String>), 26 + } 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + match self { 30 + Error::DuplicateTemplateName(msg) => { 31 + write!(_f, "DuplicateTemplateName")?; 32 + if let Some(msg) = msg { 33 + write!(_f, ": {msg}")?; 34 + } 35 + } 36 + } 37 + Ok(()) 38 + } 39 + }
+23
crates/weaver-common/src/lexicons/tools/ozone/communication/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.communication.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct TemplateViewData { 6 + ///Subject of the message, used in emails. 7 + pub content_markdown: String, 8 + pub created_at: atrium_api::types::string::Datetime, 9 + pub disabled: bool, 10 + pub id: String, 11 + ///Message language. 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub lang: core::option::Option<atrium_api::types::string::Language>, 14 + ///DID of the user who last updated the template. 15 + pub last_updated_by: atrium_api::types::string::Did, 16 + ///Name of the template. 17 + pub name: String, 18 + ///Content of the template, can contain markdown and variable placeholders. 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub subject: core::option::Option<String>, 21 + pub updated_at: atrium_api::types::string::Datetime, 22 + } 23 + pub type TemplateView = atrium_api::types::Object<TemplateViewData>;
+17
crates/weaver-common/src/lexicons/tools/ozone/communication/delete_template.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.communication.deleteTemplate` namespace. 3 + pub const NSID: &str = "tools.ozone.communication.deleteTemplate"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub id: String, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error {} 13 + impl std::fmt::Display for Error { 14 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 15 + Ok(()) 16 + } 17 + }
+19
crates/weaver-common/src/lexicons/tools/ozone/communication/list_templates.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.communication.listTemplates` namespace. 3 + pub const NSID: &str = "tools.ozone.communication.listTemplates"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + pub communication_templates: Vec< 8 + crate::tools::ozone::communication::defs::TemplateView, 9 + >, 10 + } 11 + pub type Output = atrium_api::types::Object<OutputData>; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error {} 15 + impl std::fmt::Display for Error { 16 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 17 + Ok(()) 18 + } 19 + }
+46
crates/weaver-common/src/lexicons/tools/ozone/communication/update_template.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.communication.updateTemplate` namespace. 3 + pub const NSID: &str = "tools.ozone.communication.updateTemplate"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Content of the template, markdown supported, can contain variable placeholders. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub content_markdown: core::option::Option<String>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub disabled: core::option::Option<bool>, 12 + ///ID of the template to be updated. 13 + pub id: String, 14 + ///Message language. 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub lang: core::option::Option<atrium_api::types::string::Language>, 17 + ///Name of the template. 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub name: core::option::Option<String>, 20 + ///Subject of the message, used in emails. 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub subject: core::option::Option<String>, 23 + ///DID of the user who is updating the template. 24 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 25 + pub updated_by: core::option::Option<atrium_api::types::string::Did>, 26 + } 27 + pub type Input = atrium_api::types::Object<InputData>; 28 + pub type Output = crate::tools::ozone::communication::defs::TemplateView; 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(tag = "error", content = "message")] 31 + pub enum Error { 32 + DuplicateTemplateName(Option<String>), 33 + } 34 + impl std::fmt::Display for Error { 35 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 36 + match self { 37 + Error::DuplicateTemplateName(msg) => { 38 + write!(_f, "DuplicateTemplateName")?; 39 + if let Some(msg) = msg { 40 + write!(_f, ": {msg}")?; 41 + } 42 + } 43 + } 44 + Ok(()) 45 + } 46 + }
+3
crates/weaver-common/src/lexicons/tools/ozone/hosting.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.hosting` namespace. 3 + pub mod get_account_history;
+84
crates/weaver-common/src/lexicons/tools/ozone/hosting/get_account_history.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.hosting.getAccountHistory` namespace. 3 + pub const NSID: &str = "tools.ozone.hosting.getAccountHistory"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + pub did: atrium_api::types::string::Did, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub events: core::option::Option<Vec<String>>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 14 + } 15 + pub type Parameters = atrium_api::types::Object<ParametersData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(rename_all = "camelCase")] 18 + pub struct OutputData { 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub cursor: core::option::Option<String>, 21 + pub events: Vec<Event>, 22 + } 23 + pub type Output = atrium_api::types::Object<OutputData>; 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "error", content = "message")] 26 + pub enum Error {} 27 + impl std::fmt::Display for Error { 28 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 29 + Ok(()) 30 + } 31 + } 32 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 + #[serde(rename_all = "camelCase")] 34 + pub struct AccountCreatedData { 35 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 36 + pub email: core::option::Option<String>, 37 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 38 + pub handle: core::option::Option<atrium_api::types::string::Handle>, 39 + } 40 + pub type AccountCreated = atrium_api::types::Object<AccountCreatedData>; 41 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 42 + #[serde(rename_all = "camelCase")] 43 + pub struct EmailConfirmedData { 44 + pub email: String, 45 + } 46 + pub type EmailConfirmed = atrium_api::types::Object<EmailConfirmedData>; 47 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 48 + #[serde(rename_all = "camelCase")] 49 + pub struct EmailUpdatedData { 50 + pub email: String, 51 + } 52 + pub type EmailUpdated = atrium_api::types::Object<EmailUpdatedData>; 53 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 54 + #[serde(rename_all = "camelCase")] 55 + pub struct EventData { 56 + pub created_at: atrium_api::types::string::Datetime, 57 + pub created_by: String, 58 + pub details: atrium_api::types::Union<EventDetailsRefs>, 59 + } 60 + pub type Event = atrium_api::types::Object<EventData>; 61 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 62 + #[serde(rename_all = "camelCase")] 63 + pub struct HandleUpdatedData { 64 + pub handle: atrium_api::types::string::Handle, 65 + } 66 + pub type HandleUpdated = atrium_api::types::Object<HandleUpdatedData>; 67 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 68 + #[serde(rename_all = "camelCase")] 69 + pub struct PasswordUpdatedData {} 70 + pub type PasswordUpdated = atrium_api::types::Object<PasswordUpdatedData>; 71 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 72 + #[serde(tag = "$type")] 73 + pub enum EventDetailsRefs { 74 + #[serde(rename = "tools.ozone.hosting.getAccountHistory#accountCreated")] 75 + AccountCreated(Box<AccountCreated>), 76 + #[serde(rename = "tools.ozone.hosting.getAccountHistory#emailUpdated")] 77 + EmailUpdated(Box<EmailUpdated>), 78 + #[serde(rename = "tools.ozone.hosting.getAccountHistory#emailConfirmed")] 79 + EmailConfirmed(Box<EmailConfirmed>), 80 + #[serde(rename = "tools.ozone.hosting.getAccountHistory#passwordUpdated")] 81 + PasswordUpdated(Box<PasswordUpdated>), 82 + #[serde(rename = "tools.ozone.hosting.getAccountHistory#handleUpdated")] 83 + HandleUpdated(Box<HandleUpdated>), 84 + }
+14
crates/weaver-common/src/lexicons/tools/ozone/moderation.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation` namespace. 3 + pub mod defs; 4 + pub mod emit_event; 5 + pub mod get_event; 6 + pub mod get_record; 7 + pub mod get_records; 8 + pub mod get_repo; 9 + pub mod get_reporter_stats; 10 + pub mod get_repos; 11 + pub mod get_subjects; 12 + pub mod query_events; 13 + pub mod query_statuses; 14 + pub mod search_repos;
+690
crates/weaver-common/src/lexicons/tools/ozone/moderation/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.defs` namespace. 3 + ///Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct AccountEventData { 7 + ///Indicates that the account has a repository which can be fetched from the host that emitted this event. 8 + pub active: bool, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub comment: core::option::Option<String>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub status: core::option::Option<String>, 13 + pub timestamp: atrium_api::types::string::Datetime, 14 + } 15 + pub type AccountEvent = atrium_api::types::Object<AccountEventData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(rename_all = "camelCase")] 18 + pub struct AccountHostingData { 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub deactivated_at: core::option::Option<atrium_api::types::string::Datetime>, 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub deleted_at: core::option::Option<atrium_api::types::string::Datetime>, 25 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 26 + pub reactivated_at: core::option::Option<atrium_api::types::string::Datetime>, 27 + pub status: String, 28 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 29 + pub updated_at: core::option::Option<atrium_api::types::string::Datetime>, 30 + } 31 + pub type AccountHosting = atrium_api::types::Object<AccountHostingData>; 32 + ///Statistics about a particular account subject 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(rename_all = "camelCase")] 35 + pub struct AccountStatsData { 36 + ///Total number of appeals against a moderation action on the account 37 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 38 + pub appeal_count: core::option::Option<i64>, 39 + ///Number of times the account was escalated 40 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 41 + pub escalate_count: core::option::Option<i64>, 42 + ///Total number of reports on the account 43 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 44 + pub report_count: core::option::Option<i64>, 45 + ///Number of times the account was suspended 46 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 47 + pub suspend_count: core::option::Option<i64>, 48 + ///Number of times the account was taken down 49 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 50 + pub takedown_count: core::option::Option<i64>, 51 + } 52 + pub type AccountStats = atrium_api::types::Object<AccountStatsData>; 53 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 54 + #[serde(rename_all = "camelCase")] 55 + pub struct BlobViewData { 56 + pub cid: atrium_api::types::string::Cid, 57 + pub created_at: atrium_api::types::string::Datetime, 58 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 59 + pub details: core::option::Option<atrium_api::types::Union<BlobViewDetailsRefs>>, 60 + pub mime_type: String, 61 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 62 + pub moderation: core::option::Option<Moderation>, 63 + pub size: i64, 64 + } 65 + pub type BlobView = atrium_api::types::Object<BlobViewData>; 66 + ///Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. 67 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 68 + #[serde(rename_all = "camelCase")] 69 + pub struct IdentityEventData { 70 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 71 + pub comment: core::option::Option<String>, 72 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 73 + pub handle: core::option::Option<atrium_api::types::string::Handle>, 74 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 75 + pub pds_host: core::option::Option<String>, 76 + pub timestamp: atrium_api::types::string::Datetime, 77 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 78 + pub tombstone: core::option::Option<bool>, 79 + } 80 + pub type IdentityEvent = atrium_api::types::Object<IdentityEventData>; 81 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 82 + #[serde(rename_all = "camelCase")] 83 + pub struct ImageDetailsData { 84 + pub height: i64, 85 + pub width: i64, 86 + } 87 + pub type ImageDetails = atrium_api::types::Object<ImageDetailsData>; 88 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 89 + #[serde(rename_all = "camelCase")] 90 + pub struct ModEventAcknowledgeData { 91 + ///If true, all other reports on content authored by this account will be resolved (acknowledged). 92 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 93 + pub acknowledge_account_subjects: core::option::Option<bool>, 94 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 95 + pub comment: core::option::Option<String>, 96 + } 97 + pub type ModEventAcknowledge = atrium_api::types::Object<ModEventAcknowledgeData>; 98 + ///Add a comment to a subject. An empty comment will clear any previously set sticky comment. 99 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 100 + #[serde(rename_all = "camelCase")] 101 + pub struct ModEventCommentData { 102 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 103 + pub comment: core::option::Option<String>, 104 + ///Make the comment persistent on the subject 105 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 106 + pub sticky: core::option::Option<bool>, 107 + } 108 + pub type ModEventComment = atrium_api::types::Object<ModEventCommentData>; 109 + ///Divert a record's blobs to a 3rd party service for further scanning/tagging 110 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 111 + #[serde(rename_all = "camelCase")] 112 + pub struct ModEventDivertData { 113 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 114 + pub comment: core::option::Option<String>, 115 + } 116 + pub type ModEventDivert = atrium_api::types::Object<ModEventDivertData>; 117 + ///Keep a log of outgoing email to a user 118 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 119 + #[serde(rename_all = "camelCase")] 120 + pub struct ModEventEmailData { 121 + ///Additional comment about the outgoing comm. 122 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 123 + pub comment: core::option::Option<String>, 124 + ///The content of the email sent to the user. 125 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 126 + pub content: core::option::Option<String>, 127 + ///The subject line of the email sent to the user. 128 + pub subject_line: String, 129 + } 130 + pub type ModEventEmail = atrium_api::types::Object<ModEventEmailData>; 131 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 132 + #[serde(rename_all = "camelCase")] 133 + pub struct ModEventEscalateData { 134 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 135 + pub comment: core::option::Option<String>, 136 + } 137 + pub type ModEventEscalate = atrium_api::types::Object<ModEventEscalateData>; 138 + ///Apply/Negate labels on a subject 139 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 140 + #[serde(rename_all = "camelCase")] 141 + pub struct ModEventLabelData { 142 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 143 + pub comment: core::option::Option<String>, 144 + pub create_label_vals: Vec<String>, 145 + ///Indicates how long the label will remain on the subject. Only applies on labels that are being added. 146 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 147 + pub duration_in_hours: core::option::Option<i64>, 148 + pub negate_label_vals: Vec<String>, 149 + } 150 + pub type ModEventLabel = atrium_api::types::Object<ModEventLabelData>; 151 + ///Mute incoming reports on a subject 152 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 153 + #[serde(rename_all = "camelCase")] 154 + pub struct ModEventMuteData { 155 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 156 + pub comment: core::option::Option<String>, 157 + ///Indicates how long the subject should remain muted. 158 + pub duration_in_hours: i64, 159 + } 160 + pub type ModEventMute = atrium_api::types::Object<ModEventMuteData>; 161 + ///Mute incoming reports from an account 162 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 163 + #[serde(rename_all = "camelCase")] 164 + pub struct ModEventMuteReporterData { 165 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 166 + pub comment: core::option::Option<String>, 167 + ///Indicates how long the account should remain muted. Falsy value here means a permanent mute. 168 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 169 + pub duration_in_hours: core::option::Option<i64>, 170 + } 171 + pub type ModEventMuteReporter = atrium_api::types::Object<ModEventMuteReporterData>; 172 + ///Set priority score of the subject. Higher score means higher priority. 173 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 174 + #[serde(rename_all = "camelCase")] 175 + pub struct ModEventPriorityScoreData { 176 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 177 + pub comment: core::option::Option<String>, 178 + pub score: atrium_api::types::LimitedU8<100u8>, 179 + } 180 + pub type ModEventPriorityScore = atrium_api::types::Object<ModEventPriorityScoreData>; 181 + ///Report a subject 182 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 183 + #[serde(rename_all = "camelCase")] 184 + pub struct ModEventReportData { 185 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 186 + pub comment: core::option::Option<String>, 187 + ///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. 188 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 189 + pub is_reporter_muted: core::option::Option<bool>, 190 + pub report_type: crate::com::atproto::moderation::defs::ReasonType, 191 + } 192 + pub type ModEventReport = atrium_api::types::Object<ModEventReportData>; 193 + ///Resolve appeal on a subject 194 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 195 + #[serde(rename_all = "camelCase")] 196 + pub struct ModEventResolveAppealData { 197 + ///Describe resolution. 198 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 199 + pub comment: core::option::Option<String>, 200 + } 201 + pub type ModEventResolveAppeal = atrium_api::types::Object<ModEventResolveAppealData>; 202 + ///Revert take down action on a subject 203 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 204 + #[serde(rename_all = "camelCase")] 205 + pub struct ModEventReverseTakedownData { 206 + ///Describe reasoning behind the reversal. 207 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 208 + pub comment: core::option::Option<String>, 209 + } 210 + pub type ModEventReverseTakedown = atrium_api::types::Object< 211 + ModEventReverseTakedownData, 212 + >; 213 + ///Add/Remove a tag on a subject 214 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 215 + #[serde(rename_all = "camelCase")] 216 + pub struct ModEventTagData { 217 + ///Tags to be added to the subject. If already exists, won't be duplicated. 218 + pub add: Vec<String>, 219 + ///Additional comment about added/removed tags. 220 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 221 + pub comment: core::option::Option<String>, 222 + ///Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated. 223 + pub remove: Vec<String>, 224 + } 225 + pub type ModEventTag = atrium_api::types::Object<ModEventTagData>; 226 + ///Take down a subject permanently or temporarily 227 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 228 + #[serde(rename_all = "camelCase")] 229 + pub struct ModEventTakedownData { 230 + ///If true, all other reports on content authored by this account will be resolved (acknowledged). 231 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 232 + pub acknowledge_account_subjects: core::option::Option<bool>, 233 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 234 + pub comment: core::option::Option<String>, 235 + ///Indicates how long the takedown should be in effect before automatically expiring. 236 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 237 + pub duration_in_hours: core::option::Option<i64>, 238 + ///Names/Keywords of the policies that drove the decision. 239 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 240 + pub policies: core::option::Option<Vec<String>>, 241 + } 242 + pub type ModEventTakedown = atrium_api::types::Object<ModEventTakedownData>; 243 + ///Unmute action on a subject 244 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 245 + #[serde(rename_all = "camelCase")] 246 + pub struct ModEventUnmuteData { 247 + ///Describe reasoning behind the reversal. 248 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 249 + pub comment: core::option::Option<String>, 250 + } 251 + pub type ModEventUnmute = atrium_api::types::Object<ModEventUnmuteData>; 252 + ///Unmute incoming reports from an account 253 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 254 + #[serde(rename_all = "camelCase")] 255 + pub struct ModEventUnmuteReporterData { 256 + ///Describe reasoning behind the reversal. 257 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 258 + pub comment: core::option::Option<String>, 259 + } 260 + pub type ModEventUnmuteReporter = atrium_api::types::Object<ModEventUnmuteReporterData>; 261 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 262 + #[serde(rename_all = "camelCase")] 263 + pub struct ModEventViewData { 264 + pub created_at: atrium_api::types::string::Datetime, 265 + pub created_by: atrium_api::types::string::Did, 266 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 267 + pub creator_handle: core::option::Option<String>, 268 + pub event: atrium_api::types::Union<ModEventViewEventRefs>, 269 + pub id: i64, 270 + pub subject: atrium_api::types::Union<ModEventViewSubjectRefs>, 271 + pub subject_blob_cids: Vec<String>, 272 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 273 + pub subject_handle: core::option::Option<String>, 274 + } 275 + pub type ModEventView = atrium_api::types::Object<ModEventViewData>; 276 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 277 + #[serde(rename_all = "camelCase")] 278 + pub struct ModEventViewDetailData { 279 + pub created_at: atrium_api::types::string::Datetime, 280 + pub created_by: atrium_api::types::string::Did, 281 + pub event: atrium_api::types::Union<ModEventViewDetailEventRefs>, 282 + pub id: i64, 283 + pub subject: atrium_api::types::Union<ModEventViewDetailSubjectRefs>, 284 + pub subject_blobs: Vec<BlobView>, 285 + } 286 + pub type ModEventViewDetail = atrium_api::types::Object<ModEventViewDetailData>; 287 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 288 + #[serde(rename_all = "camelCase")] 289 + pub struct ModerationData { 290 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 291 + pub subject_status: core::option::Option<SubjectStatusView>, 292 + } 293 + pub type Moderation = atrium_api::types::Object<ModerationData>; 294 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 295 + #[serde(rename_all = "camelCase")] 296 + pub struct ModerationDetailData { 297 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 298 + pub subject_status: core::option::Option<SubjectStatusView>, 299 + } 300 + pub type ModerationDetail = atrium_api::types::Object<ModerationDetailData>; 301 + ///Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. 302 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 303 + #[serde(rename_all = "camelCase")] 304 + pub struct RecordEventData { 305 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 306 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 307 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 308 + pub comment: core::option::Option<String>, 309 + pub op: String, 310 + pub timestamp: atrium_api::types::string::Datetime, 311 + } 312 + pub type RecordEvent = atrium_api::types::Object<RecordEventData>; 313 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 314 + #[serde(rename_all = "camelCase")] 315 + pub struct RecordHostingData { 316 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 317 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 318 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 319 + pub deleted_at: core::option::Option<atrium_api::types::string::Datetime>, 320 + pub status: String, 321 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 322 + pub updated_at: core::option::Option<atrium_api::types::string::Datetime>, 323 + } 324 + pub type RecordHosting = atrium_api::types::Object<RecordHostingData>; 325 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 326 + #[serde(rename_all = "camelCase")] 327 + pub struct RecordViewData { 328 + pub blob_cids: Vec<atrium_api::types::string::Cid>, 329 + pub cid: atrium_api::types::string::Cid, 330 + pub indexed_at: atrium_api::types::string::Datetime, 331 + pub moderation: Moderation, 332 + pub repo: RepoView, 333 + pub uri: String, 334 + pub value: atrium_api::types::Unknown, 335 + } 336 + pub type RecordView = atrium_api::types::Object<RecordViewData>; 337 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 338 + #[serde(rename_all = "camelCase")] 339 + pub struct RecordViewDetailData { 340 + pub blobs: Vec<BlobView>, 341 + pub cid: atrium_api::types::string::Cid, 342 + pub indexed_at: atrium_api::types::string::Datetime, 343 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 344 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 345 + pub moderation: ModerationDetail, 346 + pub repo: RepoView, 347 + pub uri: String, 348 + pub value: atrium_api::types::Unknown, 349 + } 350 + pub type RecordViewDetail = atrium_api::types::Object<RecordViewDetailData>; 351 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 352 + #[serde(rename_all = "camelCase")] 353 + pub struct RecordViewNotFoundData { 354 + pub uri: String, 355 + } 356 + pub type RecordViewNotFound = atrium_api::types::Object<RecordViewNotFoundData>; 357 + ///Statistics about a set of record subject items 358 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 359 + #[serde(rename_all = "camelCase")] 360 + pub struct RecordsStatsData { 361 + ///Number of items that were appealed at least once 362 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 363 + pub appealed_count: core::option::Option<i64>, 364 + ///Number of items that were escalated at least once 365 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 366 + pub escalated_count: core::option::Option<i64>, 367 + ///Number of item currently in "reviewOpen" or "reviewEscalated" state 368 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 369 + pub pending_count: core::option::Option<i64>, 370 + ///Number of item currently in "reviewNone" or "reviewClosed" state 371 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 372 + pub processed_count: core::option::Option<i64>, 373 + ///Number of items that were reported at least once 374 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 375 + pub reported_count: core::option::Option<i64>, 376 + ///Total number of item in the set 377 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 378 + pub subject_count: core::option::Option<i64>, 379 + ///Number of item currently taken down 380 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 381 + pub takendown_count: core::option::Option<i64>, 382 + ///Cumulative sum of the number of reports on the items in the set 383 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 384 + pub total_reports: core::option::Option<i64>, 385 + } 386 + pub type RecordsStats = atrium_api::types::Object<RecordsStatsData>; 387 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 388 + #[serde(rename_all = "camelCase")] 389 + pub struct RepoViewData { 390 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 391 + pub deactivated_at: core::option::Option<atrium_api::types::string::Datetime>, 392 + pub did: atrium_api::types::string::Did, 393 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 394 + pub email: core::option::Option<String>, 395 + pub handle: atrium_api::types::string::Handle, 396 + pub indexed_at: atrium_api::types::string::Datetime, 397 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 398 + pub invite_note: core::option::Option<String>, 399 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 400 + pub invited_by: core::option::Option<crate::com::atproto::server::defs::InviteCode>, 401 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 402 + pub invites_disabled: core::option::Option<bool>, 403 + pub moderation: Moderation, 404 + pub related_records: Vec<atrium_api::types::Unknown>, 405 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 406 + pub threat_signatures: core::option::Option< 407 + Vec<crate::com::atproto::admin::defs::ThreatSignature>, 408 + >, 409 + } 410 + pub type RepoView = atrium_api::types::Object<RepoViewData>; 411 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 412 + #[serde(rename_all = "camelCase")] 413 + pub struct RepoViewDetailData { 414 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 415 + pub deactivated_at: core::option::Option<atrium_api::types::string::Datetime>, 416 + pub did: atrium_api::types::string::Did, 417 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 418 + pub email: core::option::Option<String>, 419 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 420 + pub email_confirmed_at: core::option::Option<atrium_api::types::string::Datetime>, 421 + pub handle: atrium_api::types::string::Handle, 422 + pub indexed_at: atrium_api::types::string::Datetime, 423 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 424 + pub invite_note: core::option::Option<String>, 425 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 426 + pub invited_by: core::option::Option<crate::com::atproto::server::defs::InviteCode>, 427 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 428 + pub invites: core::option::Option< 429 + Vec<crate::com::atproto::server::defs::InviteCode>, 430 + >, 431 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 432 + pub invites_disabled: core::option::Option<bool>, 433 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 434 + pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>, 435 + pub moderation: ModerationDetail, 436 + pub related_records: Vec<atrium_api::types::Unknown>, 437 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 438 + pub threat_signatures: core::option::Option< 439 + Vec<crate::com::atproto::admin::defs::ThreatSignature>, 440 + >, 441 + } 442 + pub type RepoViewDetail = atrium_api::types::Object<RepoViewDetailData>; 443 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 444 + #[serde(rename_all = "camelCase")] 445 + pub struct RepoViewNotFoundData { 446 + pub did: atrium_api::types::string::Did, 447 + } 448 + pub type RepoViewNotFound = atrium_api::types::Object<RepoViewNotFoundData>; 449 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 450 + #[serde(rename_all = "camelCase")] 451 + pub struct ReporterStatsData { 452 + ///The total number of reports made by the user on accounts. 453 + pub account_report_count: i64, 454 + pub did: atrium_api::types::string::Did, 455 + ///The total number of accounts labeled as a result of the user's reports. 456 + pub labeled_account_count: i64, 457 + ///The total number of records labeled as a result of the user's reports. 458 + pub labeled_record_count: i64, 459 + ///The total number of reports made by the user on records. 460 + pub record_report_count: i64, 461 + ///The total number of accounts reported by the user. 462 + pub reported_account_count: i64, 463 + ///The total number of records reported by the user. 464 + pub reported_record_count: i64, 465 + ///The total number of accounts taken down as a result of the user's reports. 466 + pub takendown_account_count: i64, 467 + ///The total number of records taken down as a result of the user's reports. 468 + pub takendown_record_count: i64, 469 + } 470 + pub type ReporterStats = atrium_api::types::Object<ReporterStatsData>; 471 + ///Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator 472 + pub const REVIEW_CLOSED: &str = "tools.ozone.moderation.defs#reviewClosed"; 473 + ///Moderator review status of a subject: Escalated. Indicates that the subject was escalated for review by a moderator 474 + pub const REVIEW_ESCALATED: &str = "tools.ozone.moderation.defs#reviewEscalated"; 475 + ///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 476 + pub const REVIEW_NONE: &str = "tools.ozone.moderation.defs#reviewNone"; 477 + ///Moderator review status of a subject: Open. Indicates that the subject needs to be reviewed by a moderator 478 + pub const REVIEW_OPEN: &str = "tools.ozone.moderation.defs#reviewOpen"; 479 + pub type SubjectReviewState = String; 480 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 481 + #[serde(rename_all = "camelCase")] 482 + pub struct SubjectStatusViewData { 483 + ///Statistics related to the account subject 484 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 485 + pub account_stats: core::option::Option<AccountStats>, 486 + ///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. 487 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 488 + pub appealed: core::option::Option<bool>, 489 + ///Sticky comment on the subject. 490 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 491 + pub comment: core::option::Option<String>, 492 + ///Timestamp referencing the first moderation status impacting event was emitted on the subject 493 + pub created_at: atrium_api::types::string::Datetime, 494 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 495 + pub hosting: core::option::Option< 496 + atrium_api::types::Union<SubjectStatusViewHostingRefs>, 497 + >, 498 + pub id: i64, 499 + ///Timestamp referencing when the author of the subject appealed a moderation action 500 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 501 + pub last_appealed_at: core::option::Option<atrium_api::types::string::Datetime>, 502 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 503 + pub last_reported_at: core::option::Option<atrium_api::types::string::Datetime>, 504 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 505 + pub last_reviewed_at: core::option::Option<atrium_api::types::string::Datetime>, 506 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 507 + pub last_reviewed_by: core::option::Option<atrium_api::types::string::Did>, 508 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 509 + pub mute_reporting_until: core::option::Option<atrium_api::types::string::Datetime>, 510 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 511 + pub mute_until: core::option::Option<atrium_api::types::string::Datetime>, 512 + ///Numeric value representing the level of priority. Higher score means higher priority. 513 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 514 + pub priority_score: core::option::Option<atrium_api::types::LimitedU8<100u8>>, 515 + ///Statistics related to the record subjects authored by the subject's account 516 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 517 + pub records_stats: core::option::Option<RecordsStats>, 518 + pub review_state: SubjectReviewState, 519 + pub subject: atrium_api::types::Union<SubjectStatusViewSubjectRefs>, 520 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 521 + pub subject_blob_cids: core::option::Option<Vec<atrium_api::types::string::Cid>>, 522 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 523 + pub subject_repo_handle: core::option::Option<String>, 524 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 525 + pub suspend_until: core::option::Option<atrium_api::types::string::Datetime>, 526 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 527 + pub tags: core::option::Option<Vec<String>>, 528 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 529 + pub takendown: core::option::Option<bool>, 530 + ///Timestamp referencing when the last update was made to the moderation status of the subject 531 + pub updated_at: atrium_api::types::string::Datetime, 532 + } 533 + pub type SubjectStatusView = atrium_api::types::Object<SubjectStatusViewData>; 534 + ///Detailed view of a subject. For record subjects, the author's repo and profile will be returned. 535 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 536 + #[serde(rename_all = "camelCase")] 537 + pub struct SubjectViewData { 538 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 539 + pub profile: core::option::Option<atrium_api::types::Union<SubjectViewProfileRefs>>, 540 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 541 + pub record: core::option::Option<RecordViewDetail>, 542 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 543 + pub repo: core::option::Option<RepoViewDetail>, 544 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 545 + pub status: core::option::Option<SubjectStatusView>, 546 + pub subject: String, 547 + pub r#type: crate::com::atproto::moderation::defs::SubjectType, 548 + } 549 + pub type SubjectView = atrium_api::types::Object<SubjectViewData>; 550 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 551 + #[serde(rename_all = "camelCase")] 552 + pub struct VideoDetailsData { 553 + pub height: i64, 554 + pub length: i64, 555 + pub width: i64, 556 + } 557 + pub type VideoDetails = atrium_api::types::Object<VideoDetailsData>; 558 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 559 + #[serde(tag = "$type")] 560 + pub enum BlobViewDetailsRefs { 561 + #[serde(rename = "tools.ozone.moderation.defs#imageDetails")] 562 + ImageDetails(Box<ImageDetails>), 563 + #[serde(rename = "tools.ozone.moderation.defs#videoDetails")] 564 + VideoDetails(Box<VideoDetails>), 565 + } 566 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 567 + #[serde(tag = "$type")] 568 + pub enum ModEventViewDetailEventRefs { 569 + #[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")] 570 + ModEventTakedown(Box<ModEventTakedown>), 571 + #[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")] 572 + ModEventReverseTakedown(Box<ModEventReverseTakedown>), 573 + #[serde(rename = "tools.ozone.moderation.defs#modEventComment")] 574 + ModEventComment(Box<ModEventComment>), 575 + #[serde(rename = "tools.ozone.moderation.defs#modEventReport")] 576 + ModEventReport(Box<ModEventReport>), 577 + #[serde(rename = "tools.ozone.moderation.defs#modEventLabel")] 578 + ModEventLabel(Box<ModEventLabel>), 579 + #[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")] 580 + ModEventAcknowledge(Box<ModEventAcknowledge>), 581 + #[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")] 582 + ModEventEscalate(Box<ModEventEscalate>), 583 + #[serde(rename = "tools.ozone.moderation.defs#modEventMute")] 584 + ModEventMute(Box<ModEventMute>), 585 + #[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")] 586 + ModEventUnmute(Box<ModEventUnmute>), 587 + #[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")] 588 + ModEventMuteReporter(Box<ModEventMuteReporter>), 589 + #[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")] 590 + ModEventUnmuteReporter(Box<ModEventUnmuteReporter>), 591 + #[serde(rename = "tools.ozone.moderation.defs#modEventEmail")] 592 + ModEventEmail(Box<ModEventEmail>), 593 + #[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")] 594 + ModEventResolveAppeal(Box<ModEventResolveAppeal>), 595 + #[serde(rename = "tools.ozone.moderation.defs#modEventDivert")] 596 + ModEventDivert(Box<ModEventDivert>), 597 + #[serde(rename = "tools.ozone.moderation.defs#modEventTag")] 598 + ModEventTag(Box<ModEventTag>), 599 + #[serde(rename = "tools.ozone.moderation.defs#accountEvent")] 600 + AccountEvent(Box<AccountEvent>), 601 + #[serde(rename = "tools.ozone.moderation.defs#identityEvent")] 602 + IdentityEvent(Box<IdentityEvent>), 603 + #[serde(rename = "tools.ozone.moderation.defs#recordEvent")] 604 + RecordEvent(Box<RecordEvent>), 605 + #[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")] 606 + ModEventPriorityScore(Box<ModEventPriorityScore>), 607 + } 608 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 609 + #[serde(tag = "$type")] 610 + pub enum ModEventViewDetailSubjectRefs { 611 + #[serde(rename = "tools.ozone.moderation.defs#repoView")] 612 + RepoView(Box<RepoView>), 613 + #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")] 614 + RepoViewNotFound(Box<RepoViewNotFound>), 615 + #[serde(rename = "tools.ozone.moderation.defs#recordView")] 616 + RecordView(Box<RecordView>), 617 + #[serde(rename = "tools.ozone.moderation.defs#recordViewNotFound")] 618 + RecordViewNotFound(Box<RecordViewNotFound>), 619 + } 620 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 621 + #[serde(tag = "$type")] 622 + pub enum ModEventViewEventRefs { 623 + #[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")] 624 + ModEventTakedown(Box<ModEventTakedown>), 625 + #[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")] 626 + ModEventReverseTakedown(Box<ModEventReverseTakedown>), 627 + #[serde(rename = "tools.ozone.moderation.defs#modEventComment")] 628 + ModEventComment(Box<ModEventComment>), 629 + #[serde(rename = "tools.ozone.moderation.defs#modEventReport")] 630 + ModEventReport(Box<ModEventReport>), 631 + #[serde(rename = "tools.ozone.moderation.defs#modEventLabel")] 632 + ModEventLabel(Box<ModEventLabel>), 633 + #[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")] 634 + ModEventAcknowledge(Box<ModEventAcknowledge>), 635 + #[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")] 636 + ModEventEscalate(Box<ModEventEscalate>), 637 + #[serde(rename = "tools.ozone.moderation.defs#modEventMute")] 638 + ModEventMute(Box<ModEventMute>), 639 + #[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")] 640 + ModEventUnmute(Box<ModEventUnmute>), 641 + #[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")] 642 + ModEventMuteReporter(Box<ModEventMuteReporter>), 643 + #[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")] 644 + ModEventUnmuteReporter(Box<ModEventUnmuteReporter>), 645 + #[serde(rename = "tools.ozone.moderation.defs#modEventEmail")] 646 + ModEventEmail(Box<ModEventEmail>), 647 + #[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")] 648 + ModEventResolveAppeal(Box<ModEventResolveAppeal>), 649 + #[serde(rename = "tools.ozone.moderation.defs#modEventDivert")] 650 + ModEventDivert(Box<ModEventDivert>), 651 + #[serde(rename = "tools.ozone.moderation.defs#modEventTag")] 652 + ModEventTag(Box<ModEventTag>), 653 + #[serde(rename = "tools.ozone.moderation.defs#accountEvent")] 654 + AccountEvent(Box<AccountEvent>), 655 + #[serde(rename = "tools.ozone.moderation.defs#identityEvent")] 656 + IdentityEvent(Box<IdentityEvent>), 657 + #[serde(rename = "tools.ozone.moderation.defs#recordEvent")] 658 + RecordEvent(Box<RecordEvent>), 659 + #[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")] 660 + ModEventPriorityScore(Box<ModEventPriorityScore>), 661 + } 662 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 663 + #[serde(tag = "$type")] 664 + pub enum ModEventViewSubjectRefs { 665 + #[serde(rename = "com.atproto.admin.defs#repoRef")] 666 + ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>), 667 + #[serde(rename = "com.atproto.repo.strongRef")] 668 + ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>), 669 + #[serde(rename = "chat.bsky.convo.defs#messageRef")] 670 + ChatBskyConvoDefsMessageRef(Box<crate::chat::bsky::convo::defs::MessageRef>), 671 + } 672 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 673 + #[serde(tag = "$type")] 674 + pub enum SubjectStatusViewHostingRefs { 675 + #[serde(rename = "tools.ozone.moderation.defs#accountHosting")] 676 + AccountHosting(Box<AccountHosting>), 677 + #[serde(rename = "tools.ozone.moderation.defs#recordHosting")] 678 + RecordHosting(Box<RecordHosting>), 679 + } 680 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 681 + #[serde(tag = "$type")] 682 + pub enum SubjectStatusViewSubjectRefs { 683 + #[serde(rename = "com.atproto.admin.defs#repoRef")] 684 + ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>), 685 + #[serde(rename = "com.atproto.repo.strongRef")] 686 + ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>), 687 + } 688 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 689 + #[serde(tag = "$type")] 690 + pub enum SubjectViewProfileRefs {}
+120
crates/weaver-common/src/lexicons/tools/ozone/moderation/emit_event.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.emitEvent` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.emitEvent"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub created_by: atrium_api::types::string::Did, 8 + pub event: atrium_api::types::Union<InputEventRefs>, 9 + pub subject: atrium_api::types::Union<InputSubjectRefs>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub subject_blob_cids: core::option::Option<Vec<atrium_api::types::string::Cid>>, 12 + } 13 + pub type Input = atrium_api::types::Object<InputData>; 14 + pub type Output = crate::tools::ozone::moderation::defs::ModEventView; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(tag = "error", content = "message")] 17 + pub enum Error { 18 + SubjectHasAction(Option<String>), 19 + } 20 + impl std::fmt::Display for Error { 21 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 22 + match self { 23 + Error::SubjectHasAction(msg) => { 24 + write!(_f, "SubjectHasAction")?; 25 + if let Some(msg) = msg { 26 + write!(_f, ": {msg}")?; 27 + } 28 + } 29 + } 30 + Ok(()) 31 + } 32 + } 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(tag = "$type")] 35 + pub enum InputEventRefs { 36 + #[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")] 37 + ToolsOzoneModerationDefsModEventTakedown( 38 + Box<crate::tools::ozone::moderation::defs::ModEventTakedown>, 39 + ), 40 + #[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")] 41 + ToolsOzoneModerationDefsModEventAcknowledge( 42 + Box<crate::tools::ozone::moderation::defs::ModEventAcknowledge>, 43 + ), 44 + #[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")] 45 + ToolsOzoneModerationDefsModEventEscalate( 46 + Box<crate::tools::ozone::moderation::defs::ModEventEscalate>, 47 + ), 48 + #[serde(rename = "tools.ozone.moderation.defs#modEventComment")] 49 + ToolsOzoneModerationDefsModEventComment( 50 + Box<crate::tools::ozone::moderation::defs::ModEventComment>, 51 + ), 52 + #[serde(rename = "tools.ozone.moderation.defs#modEventLabel")] 53 + ToolsOzoneModerationDefsModEventLabel( 54 + Box<crate::tools::ozone::moderation::defs::ModEventLabel>, 55 + ), 56 + #[serde(rename = "tools.ozone.moderation.defs#modEventReport")] 57 + ToolsOzoneModerationDefsModEventReport( 58 + Box<crate::tools::ozone::moderation::defs::ModEventReport>, 59 + ), 60 + #[serde(rename = "tools.ozone.moderation.defs#modEventMute")] 61 + ToolsOzoneModerationDefsModEventMute( 62 + Box<crate::tools::ozone::moderation::defs::ModEventMute>, 63 + ), 64 + #[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")] 65 + ToolsOzoneModerationDefsModEventUnmute( 66 + Box<crate::tools::ozone::moderation::defs::ModEventUnmute>, 67 + ), 68 + #[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")] 69 + ToolsOzoneModerationDefsModEventMuteReporter( 70 + Box<crate::tools::ozone::moderation::defs::ModEventMuteReporter>, 71 + ), 72 + #[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")] 73 + ToolsOzoneModerationDefsModEventUnmuteReporter( 74 + Box<crate::tools::ozone::moderation::defs::ModEventUnmuteReporter>, 75 + ), 76 + #[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")] 77 + ToolsOzoneModerationDefsModEventReverseTakedown( 78 + Box<crate::tools::ozone::moderation::defs::ModEventReverseTakedown>, 79 + ), 80 + #[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")] 81 + ToolsOzoneModerationDefsModEventResolveAppeal( 82 + Box<crate::tools::ozone::moderation::defs::ModEventResolveAppeal>, 83 + ), 84 + #[serde(rename = "tools.ozone.moderation.defs#modEventEmail")] 85 + ToolsOzoneModerationDefsModEventEmail( 86 + Box<crate::tools::ozone::moderation::defs::ModEventEmail>, 87 + ), 88 + #[serde(rename = "tools.ozone.moderation.defs#modEventDivert")] 89 + ToolsOzoneModerationDefsModEventDivert( 90 + Box<crate::tools::ozone::moderation::defs::ModEventDivert>, 91 + ), 92 + #[serde(rename = "tools.ozone.moderation.defs#modEventTag")] 93 + ToolsOzoneModerationDefsModEventTag( 94 + Box<crate::tools::ozone::moderation::defs::ModEventTag>, 95 + ), 96 + #[serde(rename = "tools.ozone.moderation.defs#accountEvent")] 97 + ToolsOzoneModerationDefsAccountEvent( 98 + Box<crate::tools::ozone::moderation::defs::AccountEvent>, 99 + ), 100 + #[serde(rename = "tools.ozone.moderation.defs#identityEvent")] 101 + ToolsOzoneModerationDefsIdentityEvent( 102 + Box<crate::tools::ozone::moderation::defs::IdentityEvent>, 103 + ), 104 + #[serde(rename = "tools.ozone.moderation.defs#recordEvent")] 105 + ToolsOzoneModerationDefsRecordEvent( 106 + Box<crate::tools::ozone::moderation::defs::RecordEvent>, 107 + ), 108 + #[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")] 109 + ToolsOzoneModerationDefsModEventPriorityScore( 110 + Box<crate::tools::ozone::moderation::defs::ModEventPriorityScore>, 111 + ), 112 + } 113 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 114 + #[serde(tag = "$type")] 115 + pub enum InputSubjectRefs { 116 + #[serde(rename = "com.atproto.admin.defs#repoRef")] 117 + ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>), 118 + #[serde(rename = "com.atproto.repo.strongRef")] 119 + ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>), 120 + }
+18
crates/weaver-common/src/lexicons/tools/ozone/moderation/get_event.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.getEvent` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.getEvent"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub id: i64, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + pub type Output = crate::tools::ozone::moderation::defs::ModEventViewDetail; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error {} 14 + impl std::fmt::Display for Error { 15 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 16 + Ok(()) 17 + } 18 + }
+30
crates/weaver-common/src/lexicons/tools/ozone/moderation/get_record.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.getRecord` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.getRecord"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cid: core::option::Option<atrium_api::types::string::Cid>, 9 + pub uri: String, 10 + } 11 + pub type Parameters = atrium_api::types::Object<ParametersData>; 12 + pub type Output = crate::tools::ozone::moderation::defs::RecordViewDetail; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error { 16 + RecordNotFound(Option<String>), 17 + } 18 + impl std::fmt::Display for Error { 19 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 20 + match self { 21 + Error::RecordNotFound(msg) => { 22 + write!(_f, "RecordNotFound")?; 23 + if let Some(msg) = msg { 24 + write!(_f, ": {msg}")?; 25 + } 26 + } 27 + } 28 + Ok(()) 29 + } 30 + }
+35
crates/weaver-common/src/lexicons/tools/ozone/moderation/get_records.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.getRecords` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.getRecords"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub uris: Vec<String>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub records: Vec<atrium_api::types::Union<OutputRecordsItem>>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + } 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "$type")] 26 + pub enum OutputRecordsItem { 27 + #[serde(rename = "tools.ozone.moderation.defs#recordViewDetail")] 28 + ToolsOzoneModerationDefsRecordViewDetail( 29 + Box<crate::tools::ozone::moderation::defs::RecordViewDetail>, 30 + ), 31 + #[serde(rename = "tools.ozone.moderation.defs#recordViewNotFound")] 32 + ToolsOzoneModerationDefsRecordViewNotFound( 33 + Box<crate::tools::ozone::moderation::defs::RecordViewNotFound>, 34 + ), 35 + }
+28
crates/weaver-common/src/lexicons/tools/ozone/moderation/get_repo.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.getRepo` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.getRepo"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub did: atrium_api::types::string::Did, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + pub type Output = crate::tools::ozone::moderation::defs::RepoViewDetail; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(tag = "error", content = "message")] 13 + pub enum Error { 14 + RepoNotFound(Option<String>), 15 + } 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + match self { 19 + Error::RepoNotFound(msg) => { 20 + write!(_f, "RepoNotFound")?; 21 + if let Some(msg) = msg { 22 + write!(_f, ": {msg}")?; 23 + } 24 + } 25 + } 26 + Ok(()) 27 + } 28 + }
+23
crates/weaver-common/src/lexicons/tools/ozone/moderation/get_reporter_stats.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.getReporterStats` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.getReporterStats"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub dids: Vec<atrium_api::types::string::Did>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub stats: Vec<crate::tools::ozone::moderation::defs::ReporterStats>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+35
crates/weaver-common/src/lexicons/tools/ozone/moderation/get_repos.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.getRepos` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.getRepos"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub dids: Vec<atrium_api::types::string::Did>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub repos: Vec<atrium_api::types::Union<OutputReposItem>>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + } 24 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 + #[serde(tag = "$type")] 26 + pub enum OutputReposItem { 27 + #[serde(rename = "tools.ozone.moderation.defs#repoViewDetail")] 28 + ToolsOzoneModerationDefsRepoViewDetail( 29 + Box<crate::tools::ozone::moderation::defs::RepoViewDetail>, 30 + ), 31 + #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")] 32 + ToolsOzoneModerationDefsRepoViewNotFound( 33 + Box<crate::tools::ozone::moderation::defs::RepoViewNotFound>, 34 + ), 35 + }
+23
crates/weaver-common/src/lexicons/tools/ozone/moderation/get_subjects.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.getSubjects` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.getSubjects"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub subjects: Vec<String>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub subjects: Vec<crate::tools::ozone::moderation::defs::SubjectView>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+75
crates/weaver-common/src/lexicons/tools/ozone/moderation/query_events.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.queryEvents` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.queryEvents"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///If specified, only events where all of these labels were added are returned 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub added_labels: core::option::Option<Vec<String>>, 10 + ///If specified, only events where all of these tags were added are returned 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub added_tags: core::option::Option<Vec<String>>, 13 + ///If specified, only events where the subject belongs to the given collections will be returned. When subjectType is set to 'account', this will be ignored. 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub collections: core::option::Option<Vec<atrium_api::types::string::Nsid>>, 16 + ///If specified, only events with comments containing the keyword are returned. Apply || separator to use multiple keywords and match using OR condition. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub comment: core::option::Option<String>, 19 + ///Retrieve events created after a given timestamp 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub created_after: core::option::Option<atrium_api::types::string::Datetime>, 22 + ///Retrieve events created before a given timestamp 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub created_before: core::option::Option<atrium_api::types::string::Datetime>, 25 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 26 + pub created_by: core::option::Option<atrium_api::types::string::Did>, 27 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 28 + pub cursor: core::option::Option<String>, 29 + ///If true, only events with comments are returned 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub has_comment: core::option::Option<bool>, 32 + ///If true, events on all record types (posts, lists, profile etc.) or records from given 'collections' param, owned by the did are returned. 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub include_all_user_records: core::option::Option<bool>, 35 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 36 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 37 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 38 + pub policies: core::option::Option<Vec<String>>, 39 + ///If specified, only events where all of these labels were removed are returned 40 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 41 + pub removed_labels: core::option::Option<Vec<String>>, 42 + ///If specified, only events where all of these tags were removed are returned 43 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 44 + pub removed_tags: core::option::Option<Vec<String>>, 45 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 46 + pub report_types: core::option::Option<Vec<String>>, 47 + ///Sort direction for the events. Defaults to descending order of created at timestamp. 48 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 49 + pub sort_direction: core::option::Option<String>, 50 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 51 + pub subject: core::option::Option<String>, 52 + ///If specified, only events where the subject is of the given type (account or record) will be returned. When this is set to 'account' the 'collections' parameter will be ignored. When includeAllUserRecords or subject is set, this will be ignored. 53 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 54 + pub subject_type: core::option::Option<String>, 55 + ///The types of events (fully qualified string in the format of tools.ozone.moderation.defs#modEvent<name>) to filter by. If not specified, all events are returned. 56 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 57 + pub types: core::option::Option<Vec<String>>, 58 + } 59 + pub type Parameters = atrium_api::types::Object<ParametersData>; 60 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 61 + #[serde(rename_all = "camelCase")] 62 + pub struct OutputData { 63 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 64 + pub cursor: core::option::Option<String>, 65 + pub events: Vec<crate::tools::ozone::moderation::defs::ModEventView>, 66 + } 67 + pub type Output = atrium_api::types::Object<OutputData>; 68 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 69 + #[serde(tag = "error", content = "message")] 70 + pub enum Error {} 71 + impl std::fmt::Display for Error { 72 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 73 + Ok(()) 74 + } 75 + }
+123
crates/weaver-common/src/lexicons/tools/ozone/moderation/query_statuses.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.queryStatuses` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.queryStatuses"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Get subjects in unresolved appealed status 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub appealed: core::option::Option<bool>, 10 + ///If specified, subjects belonging to the given collections will be returned. When subjectType is set to 'account', this will be ignored. 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub collections: core::option::Option<Vec<atrium_api::types::string::Nsid>>, 13 + ///Search subjects by keyword from comments 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub comment: core::option::Option<String>, 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub cursor: core::option::Option<String>, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub exclude_tags: core::option::Option<Vec<String>>, 20 + ///Search subjects where the associated record/account was deleted after a given timestamp 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub hosting_deleted_after: core::option::Option<atrium_api::types::string::Datetime>, 23 + ///Search subjects where the associated record/account was deleted before a given timestamp 24 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 25 + pub hosting_deleted_before: core::option::Option< 26 + atrium_api::types::string::Datetime, 27 + >, 28 + ///Search subjects by the status of the associated record/account 29 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 30 + pub hosting_statuses: core::option::Option<Vec<String>>, 31 + ///Search subjects where the associated record/account was updated after a given timestamp 32 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 33 + pub hosting_updated_after: core::option::Option<atrium_api::types::string::Datetime>, 34 + ///Search subjects where the associated record/account was updated before a given timestamp 35 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 36 + pub hosting_updated_before: core::option::Option< 37 + atrium_api::types::string::Datetime, 38 + >, 39 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 40 + pub ignore_subjects: core::option::Option<Vec<String>>, 41 + ///All subjects, or subjects from given 'collections' param, belonging to the account specified in the 'subject' param will be returned. 42 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 43 + pub include_all_user_records: core::option::Option<bool>, 44 + ///By default, we don't include muted subjects in the results. Set this to true to include them. 45 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 46 + pub include_muted: core::option::Option<bool>, 47 + ///Get all subject statuses that were reviewed by a specific moderator 48 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 49 + pub last_reviewed_by: core::option::Option<atrium_api::types::string::Did>, 50 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 51 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 52 + ///If specified, only subjects that belong to an account that has at least this many suspensions will be returned. 53 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 54 + pub min_account_suspend_count: core::option::Option<i64>, 55 + ///If specified, only subjects that have priority score value above the given value will be returned. 56 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 57 + pub min_priority_score: core::option::Option<atrium_api::types::LimitedU8<100u8>>, 58 + ///If specified, only subjects that belong to an account that has at least this many reported records will be returned. 59 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 60 + pub min_reported_records_count: core::option::Option<i64>, 61 + ///If specified, only subjects that belong to an account that has at least this many taken down records will be returned. 62 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 63 + pub min_takendown_records_count: core::option::Option<i64>, 64 + ///When set to true, only muted subjects and reporters will be returned. 65 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 66 + pub only_muted: core::option::Option<bool>, 67 + ///Number of queues being used by moderators. Subjects will be split among all queues. 68 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 69 + pub queue_count: core::option::Option<i64>, 70 + ///Index of the queue to fetch subjects from. Works only when queueCount value is specified. 71 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 72 + pub queue_index: core::option::Option<i64>, 73 + ///A seeder to shuffle/balance the queue items. 74 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 75 + pub queue_seed: core::option::Option<String>, 76 + ///Search subjects reported after a given timestamp 77 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 78 + pub reported_after: core::option::Option<atrium_api::types::string::Datetime>, 79 + ///Search subjects reported before a given timestamp 80 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 81 + pub reported_before: core::option::Option<atrium_api::types::string::Datetime>, 82 + ///Specify when fetching subjects in a certain state 83 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 84 + pub review_state: core::option::Option<String>, 85 + ///Search subjects reviewed after a given timestamp 86 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 87 + pub reviewed_after: core::option::Option<atrium_api::types::string::Datetime>, 88 + ///Search subjects reviewed before a given timestamp 89 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 90 + pub reviewed_before: core::option::Option<atrium_api::types::string::Datetime>, 91 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 92 + pub sort_direction: core::option::Option<String>, 93 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 94 + pub sort_field: core::option::Option<String>, 95 + ///The subject to get the status for. 96 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 97 + pub subject: core::option::Option<String>, 98 + ///If specified, subjects of the given type (account or record) will be returned. When this is set to 'account' the 'collections' parameter will be ignored. When includeAllUserRecords or subject is set, this will be ignored. 99 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 100 + pub subject_type: core::option::Option<String>, 101 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 102 + pub tags: core::option::Option<Vec<String>>, 103 + ///Get subjects that were taken down 104 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 105 + pub takendown: core::option::Option<bool>, 106 + } 107 + pub type Parameters = atrium_api::types::Object<ParametersData>; 108 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 109 + #[serde(rename_all = "camelCase")] 110 + pub struct OutputData { 111 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 112 + pub cursor: core::option::Option<String>, 113 + pub subject_statuses: Vec<crate::tools::ozone::moderation::defs::SubjectStatusView>, 114 + } 115 + pub type Output = atrium_api::types::Object<OutputData>; 116 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 117 + #[serde(tag = "error", content = "message")] 118 + pub enum Error {} 119 + impl std::fmt::Display for Error { 120 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 121 + Ok(()) 122 + } 123 + }
+33
crates/weaver-common/src/lexicons/tools/ozone/moderation/search_repos.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.moderation.searchRepos` namespace. 3 + pub const NSID: &str = "tools.ozone.moderation.searchRepos"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub q: core::option::Option<String>, 13 + ///DEPRECATED: use 'q' instead 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub term: core::option::Option<String>, 16 + } 17 + pub type Parameters = atrium_api::types::Object<ParametersData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(rename_all = "camelCase")] 20 + pub struct OutputData { 21 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 22 + pub cursor: core::option::Option<String>, 23 + pub repos: Vec<crate::tools::ozone::moderation::defs::RepoView>, 24 + } 25 + pub type Output = atrium_api::types::Object<OutputData>; 26 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 + #[serde(tag = "error", content = "message")] 28 + pub enum Error {} 29 + impl std::fmt::Display for Error { 30 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 31 + Ok(()) 32 + } 33 + }
+3
crates/weaver-common/src/lexicons/tools/ozone/server.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.server` namespace. 3 + pub mod get_config;
+43
crates/weaver-common/src/lexicons/tools/ozone/server/get_config.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.server.getConfig` namespace. 3 + pub const NSID: &str = "tools.ozone.server.getConfig"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct OutputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub appview: core::option::Option<ServiceConfig>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub blob_divert: core::option::Option<ServiceConfig>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub chat: core::option::Option<ServiceConfig>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub pds: core::option::Option<ServiceConfig>, 15 + ///The did of the verifier used for verification. 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub verifier_did: core::option::Option<atrium_api::types::string::Did>, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub viewer: core::option::Option<ViewerConfig>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + } 30 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 + #[serde(rename_all = "camelCase")] 32 + pub struct ServiceConfigData { 33 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 34 + pub url: core::option::Option<String>, 35 + } 36 + pub type ServiceConfig = atrium_api::types::Object<ServiceConfigData>; 37 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 38 + #[serde(rename_all = "camelCase")] 39 + pub struct ViewerConfigData { 40 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 41 + pub role: core::option::Option<String>, 42 + } 43 + pub type ViewerConfig = atrium_api::types::Object<ViewerConfigData>;
+9
crates/weaver-common/src/lexicons/tools/ozone/set.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.set` namespace. 3 + pub mod add_values; 4 + pub mod defs; 5 + pub mod delete_set; 6 + pub mod delete_values; 7 + pub mod get_values; 8 + pub mod query_sets; 9 + pub mod upsert_set;
+20
crates/weaver-common/src/lexicons/tools/ozone/set/add_values.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.set.addValues` namespace. 3 + pub const NSID: &str = "tools.ozone.set.addValues"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Name of the set to add values to 8 + pub name: String, 9 + ///Array of string values to add to the set 10 + pub values: Vec<String>, 11 + } 12 + pub type Input = atrium_api::types::Object<InputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error {} 16 + impl std::fmt::Display for Error { 17 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 18 + Ok(()) 19 + } 20 + }
+21
crates/weaver-common/src/lexicons/tools/ozone/set/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.set.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct SetData { 6 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 7 + pub description: core::option::Option<String>, 8 + pub name: String, 9 + } 10 + pub type Set = atrium_api::types::Object<SetData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct SetViewData { 14 + pub created_at: atrium_api::types::string::Datetime, 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub description: core::option::Option<String>, 17 + pub name: String, 18 + pub set_size: i64, 19 + pub updated_at: atrium_api::types::string::Datetime, 20 + } 21 + pub type SetView = atrium_api::types::Object<SetViewData>;
+33
crates/weaver-common/src/lexicons/tools/ozone/set/delete_set.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.set.deleteSet` namespace. 3 + pub const NSID: &str = "tools.ozone.set.deleteSet"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Name of the set to delete 8 + pub name: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData {} 14 + pub type Output = atrium_api::types::Object<OutputData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(tag = "error", content = "message")] 17 + pub enum Error { 18 + ///set with the given name does not exist 19 + SetNotFound(Option<String>), 20 + } 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + match self { 24 + Error::SetNotFound(msg) => { 25 + write!(_f, "SetNotFound")?; 26 + if let Some(msg) = msg { 27 + write!(_f, ": {msg}")?; 28 + } 29 + } 30 + } 31 + Ok(()) 32 + } 33 + }
+31
crates/weaver-common/src/lexicons/tools/ozone/set/delete_values.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.set.deleteValues` namespace. 3 + pub const NSID: &str = "tools.ozone.set.deleteValues"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Name of the set to delete values from 8 + pub name: String, 9 + ///Array of string values to delete from the set 10 + pub values: Vec<String>, 11 + } 12 + pub type Input = atrium_api::types::Object<InputData>; 13 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 + #[serde(tag = "error", content = "message")] 15 + pub enum Error { 16 + ///set with the given name does not exist 17 + SetNotFound(Option<String>), 18 + } 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + match self { 22 + Error::SetNotFound(msg) => { 23 + write!(_f, "SetNotFound")?; 24 + if let Some(msg) = msg { 25 + write!(_f, ": {msg}")?; 26 + } 27 + } 28 + } 29 + Ok(()) 30 + } 31 + }
+41
crates/weaver-common/src/lexicons/tools/ozone/set/get_values.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.set.getValues` namespace. 3 + pub const NSID: &str = "tools.ozone.set.getValues"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU16<1000u16>>, 11 + pub name: String, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub cursor: core::option::Option<String>, 19 + pub set: crate::tools::ozone::set::defs::SetView, 20 + pub values: Vec<String>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error { 26 + ///set with the given name does not exist 27 + SetNotFound(Option<String>), 28 + } 29 + impl std::fmt::Display for Error { 30 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 31 + match self { 32 + Error::SetNotFound(msg) => { 33 + write!(_f, "SetNotFound")?; 34 + if let Some(msg) = msg { 35 + write!(_f, ": {msg}")?; 36 + } 37 + } 38 + } 39 + Ok(()) 40 + } 41 + }
+35
crates/weaver-common/src/lexicons/tools/ozone/set/query_sets.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.set.querySets` namespace. 3 + pub const NSID: &str = "tools.ozone.set.querySets"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub name_prefix: core::option::Option<String>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub sort_by: core::option::Option<String>, 15 + ///Defaults to ascending order of name field. 16 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 17 + pub sort_direction: core::option::Option<String>, 18 + } 19 + pub type Parameters = atrium_api::types::Object<ParametersData>; 20 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 + #[serde(rename_all = "camelCase")] 22 + pub struct OutputData { 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub cursor: core::option::Option<String>, 25 + pub sets: Vec<crate::tools::ozone::set::defs::SetView>, 26 + } 27 + pub type Output = atrium_api::types::Object<OutputData>; 28 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 29 + #[serde(tag = "error", content = "message")] 30 + pub enum Error {} 31 + impl std::fmt::Display for Error { 32 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 33 + Ok(()) 34 + } 35 + }
+13
crates/weaver-common/src/lexicons/tools/ozone/set/upsert_set.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.set.upsertSet` namespace. 3 + pub const NSID: &str = "tools.ozone.set.upsertSet"; 4 + pub type Input = crate::tools::ozone::set::defs::Set; 5 + pub type Output = crate::tools::ozone::set::defs::SetView; 6 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 7 + #[serde(tag = "error", content = "message")] 8 + pub enum Error {} 9 + impl std::fmt::Display for Error { 10 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 11 + Ok(()) 12 + } 13 + }
+6
crates/weaver-common/src/lexicons/tools/ozone/setting.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.setting` namespace. 3 + pub mod defs; 4 + pub mod list_options; 5 + pub mod remove_options; 6 + pub mod upsert_option;
+21
crates/weaver-common/src/lexicons/tools/ozone/setting/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.setting.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct OptionData { 6 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 7 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 8 + pub created_by: atrium_api::types::string::Did, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub description: core::option::Option<String>, 11 + pub did: atrium_api::types::string::Did, 12 + pub key: atrium_api::types::string::Nsid, 13 + pub last_updated_by: atrium_api::types::string::Did, 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub manager_role: core::option::Option<String>, 16 + pub scope: String, 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub updated_at: core::option::Option<atrium_api::types::string::Datetime>, 19 + pub value: atrium_api::types::Unknown, 20 + } 21 + pub type Option = atrium_api::types::Object<OptionData>;
+36
crates/weaver-common/src/lexicons/tools/ozone/setting/list_options.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.setting.listOptions` namespace. 3 + pub const NSID: &str = "tools.ozone.setting.listOptions"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + ///Filter for only the specified keys. Ignored if prefix is provided 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub keys: core::option::Option<Vec<atrium_api::types::string::Nsid>>, 12 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 13 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 14 + ///Filter keys by prefix 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub prefix: core::option::Option<String>, 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub scope: core::option::Option<String>, 19 + } 20 + pub type Parameters = atrium_api::types::Object<ParametersData>; 21 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 + #[serde(rename_all = "camelCase")] 23 + pub struct OutputData { 24 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 25 + pub cursor: core::option::Option<String>, 26 + pub options: Vec<crate::tools::ozone::setting::defs::Option>, 27 + } 28 + pub type Output = atrium_api::types::Object<OutputData>; 29 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 + #[serde(tag = "error", content = "message")] 31 + pub enum Error {} 32 + impl std::fmt::Display for Error { 33 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 34 + Ok(()) 35 + } 36 + }
+22
crates/weaver-common/src/lexicons/tools/ozone/setting/remove_options.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.setting.removeOptions` namespace. 3 + pub const NSID: &str = "tools.ozone.setting.removeOptions"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub keys: Vec<atrium_api::types::string::Nsid>, 8 + pub scope: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData {} 14 + pub type Output = atrium_api::types::Object<OutputData>; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(tag = "error", content = "message")] 17 + pub enum Error {} 18 + impl std::fmt::Display for Error { 19 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 20 + Ok(()) 21 + } 22 + }
+29
crates/weaver-common/src/lexicons/tools/ozone/setting/upsert_option.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.setting.upsertOption` namespace. 3 + pub const NSID: &str = "tools.ozone.setting.upsertOption"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub description: core::option::Option<String>, 9 + pub key: atrium_api::types::string::Nsid, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub manager_role: core::option::Option<String>, 12 + pub scope: String, 13 + pub value: atrium_api::types::Unknown, 14 + } 15 + pub type Input = atrium_api::types::Object<InputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(rename_all = "camelCase")] 18 + pub struct OutputData { 19 + pub option: crate::tools::ozone::setting::defs::Option, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + }
+6
crates/weaver-common/src/lexicons/tools/ozone/signature.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.signature` namespace. 3 + pub mod defs; 4 + pub mod find_correlation; 5 + pub mod find_related_accounts; 6 + pub mod search_accounts;
+9
crates/weaver-common/src/lexicons/tools/ozone/signature/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.signature.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct SigDetailData { 6 + pub property: String, 7 + pub value: String, 8 + } 9 + pub type SigDetail = atrium_api::types::Object<SigDetailData>;
+23
crates/weaver-common/src/lexicons/tools/ozone/signature/find_correlation.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.signature.findCorrelation` namespace. 3 + pub const NSID: &str = "tools.ozone.signature.findCorrelation"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + pub dids: Vec<atrium_api::types::string::Did>, 8 + } 9 + pub type Parameters = atrium_api::types::Object<ParametersData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(rename_all = "camelCase")] 12 + pub struct OutputData { 13 + pub details: Vec<crate::tools::ozone::signature::defs::SigDetail>, 14 + } 15 + pub type Output = atrium_api::types::Object<OutputData>; 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(tag = "error", content = "message")] 18 + pub enum Error {} 19 + impl std::fmt::Display for Error { 20 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 21 + Ok(()) 22 + } 23 + }
+29
crates/weaver-common/src/lexicons/tools/ozone/signature/search_accounts.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.signature.searchAccounts` namespace. 3 + pub const NSID: &str = "tools.ozone.signature.searchAccounts"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 11 + pub values: Vec<String>, 12 + } 13 + pub type Parameters = atrium_api::types::Object<ParametersData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + pub accounts: Vec<crate::com::atproto::admin::defs::AccountView>, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub cursor: core::option::Option<String>, 20 + } 21 + pub type Output = atrium_api::types::Object<OutputData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(tag = "error", content = "message")] 24 + pub enum Error {} 25 + impl std::fmt::Display for Error { 26 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 27 + Ok(()) 28 + } 29 + }
+7
crates/weaver-common/src/lexicons/tools/ozone/team.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.team` namespace. 3 + pub mod add_member; 4 + pub mod defs; 5 + pub mod delete_member; 6 + pub mod list_members; 7 + pub mod update_member;
+30
crates/weaver-common/src/lexicons/tools/ozone/team/add_member.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.team.addMember` namespace. 3 + pub const NSID: &str = "tools.ozone.team.addMember"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub did: atrium_api::types::string::Did, 8 + pub role: String, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + pub type Output = crate::tools::ozone::team::defs::Member; 12 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 + #[serde(tag = "error", content = "message")] 14 + pub enum Error { 15 + ///Member already exists in the team. 16 + MemberAlreadyExists(Option<String>), 17 + } 18 + impl std::fmt::Display for Error { 19 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 20 + match self { 21 + Error::MemberAlreadyExists(msg) => { 22 + write!(_f, "MemberAlreadyExists")?; 23 + if let Some(msg) = msg { 24 + write!(_f, ": {msg}")?; 25 + } 26 + } 27 + } 28 + Ok(()) 29 + } 30 + }
+29
crates/weaver-common/src/lexicons/tools/ozone/team/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.team.defs` namespace. 3 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 + #[serde(rename_all = "camelCase")] 5 + pub struct MemberData { 6 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 7 + pub created_at: core::option::Option<atrium_api::types::string::Datetime>, 8 + pub did: atrium_api::types::string::Did, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub disabled: core::option::Option<bool>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub last_updated_by: core::option::Option<String>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub profile: core::option::Option< 15 + crate::app::bsky::actor::defs::ProfileViewDetailed, 16 + >, 17 + pub role: String, 18 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 19 + pub updated_at: core::option::Option<atrium_api::types::string::Datetime>, 20 + } 21 + pub type Member = atrium_api::types::Object<MemberData>; 22 + ///Admin role. Highest level of access, can perform all actions. 23 + pub const ROLE_ADMIN: &str = "tools.ozone.team.defs#roleAdmin"; 24 + ///Moderator role. Can perform most actions. 25 + pub const ROLE_MODERATOR: &str = "tools.ozone.team.defs#roleModerator"; 26 + ///Triage role. Mostly intended for monitoring and escalating issues. 27 + pub const ROLE_TRIAGE: &str = "tools.ozone.team.defs#roleTriage"; 28 + ///Verifier role. Only allowed to issue verifications. 29 + pub const ROLE_VERIFIER: &str = "tools.ozone.team.defs#roleVerifier";
+36
crates/weaver-common/src/lexicons/tools/ozone/team/delete_member.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.team.deleteMember` namespace. 3 + pub const NSID: &str = "tools.ozone.team.deleteMember"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub did: atrium_api::types::string::Did, 8 + } 9 + pub type Input = atrium_api::types::Object<InputData>; 10 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 + #[serde(tag = "error", content = "message")] 12 + pub enum Error { 13 + ///The member being deleted does not exist 14 + MemberNotFound(Option<String>), 15 + ///You can not delete yourself from the team 16 + CannotDeleteSelf(Option<String>), 17 + } 18 + impl std::fmt::Display for Error { 19 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 20 + match self { 21 + Error::MemberNotFound(msg) => { 22 + write!(_f, "MemberNotFound")?; 23 + if let Some(msg) = msg { 24 + write!(_f, ": {msg}")?; 25 + } 26 + } 27 + Error::CannotDeleteSelf(msg) => { 28 + write!(_f, "CannotDeleteSelf")?; 29 + if let Some(msg) = msg { 30 + write!(_f, ": {msg}")?; 31 + } 32 + } 33 + } 34 + Ok(()) 35 + } 36 + }
+34
crates/weaver-common/src/lexicons/tools/ozone/team/list_members.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.team.listMembers` namespace. 3 + pub const NSID: &str = "tools.ozone.team.listMembers"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub cursor: core::option::Option<String>, 9 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 10 + pub disabled: core::option::Option<bool>, 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 13 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 14 + pub q: core::option::Option<String>, 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub roles: core::option::Option<Vec<String>>, 17 + } 18 + pub type Parameters = atrium_api::types::Object<ParametersData>; 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(rename_all = "camelCase")] 21 + pub struct OutputData { 22 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 23 + pub cursor: core::option::Option<String>, 24 + pub members: Vec<crate::tools::ozone::team::defs::Member>, 25 + } 26 + pub type Output = atrium_api::types::Object<OutputData>; 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(tag = "error", content = "message")] 29 + pub enum Error {} 30 + impl std::fmt::Display for Error { 31 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 32 + Ok(()) 33 + } 34 + }
+33
crates/weaver-common/src/lexicons/tools/ozone/team/update_member.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.team.updateMember` namespace. 3 + pub const NSID: &str = "tools.ozone.team.updateMember"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + pub did: atrium_api::types::string::Did, 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub disabled: core::option::Option<bool>, 10 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 11 + pub role: core::option::Option<String>, 12 + } 13 + pub type Input = atrium_api::types::Object<InputData>; 14 + pub type Output = crate::tools::ozone::team::defs::Member; 15 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 + #[serde(tag = "error", content = "message")] 17 + pub enum Error { 18 + ///The member being updated does not exist in the team 19 + MemberNotFound(Option<String>), 20 + } 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + match self { 24 + Error::MemberNotFound(msg) => { 25 + write!(_f, "MemberNotFound")?; 26 + if let Some(msg) = msg { 27 + write!(_f, ": {msg}")?; 28 + } 29 + } 30 + } 31 + Ok(()) 32 + } 33 + }
+6
crates/weaver-common/src/lexicons/tools/ozone/verification.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.verification` namespace. 3 + pub mod defs; 4 + pub mod grant_verifications; 5 + pub mod list_verifications; 6 + pub mod revoke_verifications;
+75
crates/weaver-common/src/lexicons/tools/ozone/verification/defs.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.verification.defs` namespace. 3 + ///Verification data for the associated subject. 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct VerificationViewData { 7 + ///Timestamp when the verification was created. 8 + pub created_at: atrium_api::types::string::Datetime, 9 + ///Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. 10 + pub display_name: String, 11 + ///Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. 12 + pub handle: atrium_api::types::string::Handle, 13 + ///The user who issued this verification. 14 + pub issuer: atrium_api::types::string::Did, 15 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 16 + pub issuer_profile: core::option::Option< 17 + atrium_api::types::Union<VerificationViewIssuerProfileRefs>, 18 + >, 19 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 20 + pub issuer_repo: core::option::Option< 21 + atrium_api::types::Union<VerificationViewIssuerRepoRefs>, 22 + >, 23 + ///Describes the reason for revocation, also indicating that the verification is no longer valid. 24 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 25 + pub revoke_reason: core::option::Option<String>, 26 + ///Timestamp when the verification was revoked. 27 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 28 + pub revoked_at: core::option::Option<atrium_api::types::string::Datetime>, 29 + ///The user who revoked this verification. 30 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 31 + pub revoked_by: core::option::Option<atrium_api::types::string::Did>, 32 + ///The subject of the verification. 33 + pub subject: atrium_api::types::string::Did, 34 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 35 + pub subject_profile: core::option::Option< 36 + atrium_api::types::Union<VerificationViewSubjectProfileRefs>, 37 + >, 38 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 39 + pub subject_repo: core::option::Option< 40 + atrium_api::types::Union<VerificationViewSubjectRepoRefs>, 41 + >, 42 + ///The AT-URI of the verification record. 43 + pub uri: String, 44 + } 45 + pub type VerificationView = atrium_api::types::Object<VerificationViewData>; 46 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 47 + #[serde(tag = "$type")] 48 + pub enum VerificationViewIssuerProfileRefs {} 49 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 50 + #[serde(tag = "$type")] 51 + pub enum VerificationViewIssuerRepoRefs { 52 + #[serde(rename = "tools.ozone.moderation.defs#repoViewDetail")] 53 + ToolsOzoneModerationDefsRepoViewDetail( 54 + Box<crate::tools::ozone::moderation::defs::RepoViewDetail>, 55 + ), 56 + #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")] 57 + ToolsOzoneModerationDefsRepoViewNotFound( 58 + Box<crate::tools::ozone::moderation::defs::RepoViewNotFound>, 59 + ), 60 + } 61 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 62 + #[serde(tag = "$type")] 63 + pub enum VerificationViewSubjectProfileRefs {} 64 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 65 + #[serde(tag = "$type")] 66 + pub enum VerificationViewSubjectRepoRefs { 67 + #[serde(rename = "tools.ozone.moderation.defs#repoViewDetail")] 68 + ToolsOzoneModerationDefsRepoViewDetail( 69 + Box<crate::tools::ozone::moderation::defs::RepoViewDetail>, 70 + ), 71 + #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")] 72 + ToolsOzoneModerationDefsRepoViewNotFound( 73 + Box<crate::tools::ozone::moderation::defs::RepoViewNotFound>, 74 + ), 75 + }
+49
crates/weaver-common/src/lexicons/tools/ozone/verification/grant_verifications.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.verification.grantVerifications` namespace. 3 + pub const NSID: &str = "tools.ozone.verification.grantVerifications"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Array of verification requests to process 8 + pub verifications: Vec<VerificationInput>, 9 + } 10 + pub type Input = atrium_api::types::Object<InputData>; 11 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct OutputData { 14 + pub failed_verifications: Vec<GrantError>, 15 + pub verifications: Vec<crate::tools::ozone::verification::defs::VerificationView>, 16 + } 17 + pub type Output = atrium_api::types::Object<OutputData>; 18 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 + #[serde(tag = "error", content = "message")] 20 + pub enum Error {} 21 + impl std::fmt::Display for Error { 22 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 23 + Ok(()) 24 + } 25 + } 26 + ///Error object for failed verifications. 27 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 + #[serde(rename_all = "camelCase")] 29 + pub struct GrantErrorData { 30 + ///Error message describing the reason for failure. 31 + pub error: String, 32 + ///The did of the subject being verified 33 + pub subject: atrium_api::types::string::Did, 34 + } 35 + pub type GrantError = atrium_api::types::Object<GrantErrorData>; 36 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 37 + #[serde(rename_all = "camelCase")] 38 + pub struct VerificationInputData { 39 + ///Timestamp for verification record. Defaults to current time when not specified. 40 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 41 + pub created_at: core::option::Option<String>, 42 + ///Display name of the subject the verification applies to at the moment of verifying. 43 + pub display_name: String, 44 + ///Handle of the subject the verification applies to at the moment of verifying. 45 + pub handle: atrium_api::types::string::Handle, 46 + ///The did of the subject being verified 47 + pub subject: atrium_api::types::string::Did, 48 + } 49 + pub type VerificationInput = atrium_api::types::Object<VerificationInputData>;
+48
crates/weaver-common/src/lexicons/tools/ozone/verification/list_verifications.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.verification.listVerifications` namespace. 3 + pub const NSID: &str = "tools.ozone.verification.listVerifications"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct ParametersData { 7 + ///Filter to verifications created after this timestamp 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub created_after: core::option::Option<atrium_api::types::string::Datetime>, 10 + ///Filter to verifications created before this timestamp 11 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 12 + pub created_before: core::option::Option<atrium_api::types::string::Datetime>, 13 + ///Pagination cursor 14 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 15 + pub cursor: core::option::Option<String>, 16 + ///Filter to verifications that are revoked or not. By default, includes both. 17 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 18 + pub is_revoked: core::option::Option<bool>, 19 + ///Filter to verifications from specific issuers 20 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 21 + pub issuers: core::option::Option<Vec<atrium_api::types::string::Did>>, 22 + ///Maximum number of results to return 23 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 24 + pub limit: core::option::Option<atrium_api::types::LimitedNonZeroU8<100u8>>, 25 + ///Sort direction for creation date 26 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 27 + pub sort_direction: core::option::Option<String>, 28 + ///Filter to specific verified DIDs 29 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 30 + pub subjects: core::option::Option<Vec<atrium_api::types::string::Did>>, 31 + } 32 + pub type Parameters = atrium_api::types::Object<ParametersData>; 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(rename_all = "camelCase")] 35 + pub struct OutputData { 36 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 37 + pub cursor: core::option::Option<String>, 38 + pub verifications: Vec<crate::tools::ozone::verification::defs::VerificationView>, 39 + } 40 + pub type Output = atrium_api::types::Object<OutputData>; 41 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 42 + #[serde(tag = "error", content = "message")] 43 + pub enum Error {} 44 + impl std::fmt::Display for Error { 45 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 46 + Ok(()) 47 + } 48 + }
+40
crates/weaver-common/src/lexicons/tools/ozone/verification/revoke_verifications.rs
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `tools.ozone.verification.revokeVerifications` namespace. 3 + pub const NSID: &str = "tools.ozone.verification.revokeVerifications"; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct InputData { 7 + ///Reason for revoking the verification. This is optional and can be omitted if not needed. 8 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 9 + pub revoke_reason: core::option::Option<String>, 10 + ///Array of verification record uris to revoke 11 + pub uris: Vec<String>, 12 + } 13 + pub type Input = atrium_api::types::Object<InputData>; 14 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 + #[serde(rename_all = "camelCase")] 16 + pub struct OutputData { 17 + ///List of verification uris that couldn't be revoked, including failure reasons 18 + pub failed_revocations: Vec<RevokeError>, 19 + ///List of verification uris successfully revoked 20 + pub revoked_verifications: Vec<String>, 21 + } 22 + pub type Output = atrium_api::types::Object<OutputData>; 23 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 + #[serde(tag = "error", content = "message")] 25 + pub enum Error {} 26 + impl std::fmt::Display for Error { 27 + fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result { 28 + Ok(()) 29 + } 30 + } 31 + ///Error object for failed revocations 32 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 + #[serde(rename_all = "camelCase")] 34 + pub struct RevokeErrorData { 35 + ///Description of the error that occurred during revocation. 36 + pub error: String, 37 + ///The AT-URI of the verification record that failed to revoke. 38 + pub uri: String, 39 + } 40 + pub type RevokeError = atrium_api::types::Object<RevokeErrorData>;
+5 -3
crates/weaver-common/src/lib.rs
··· 1 1 pub use merde::CowStr; 2 2 3 3 pub mod error; 4 + pub mod lexicons; 5 + pub use lexicons::*; 4 6 5 7 pub use crate::error::{Error, IoError, ParseError, SerDeError}; 6 8 7 9 /// too many cows, so we have conversions 8 - pub fn mcow_to_cow<'a>(cow: CowStr<'a>) -> std::borrow::Cow<'a, str> { 10 + pub fn mcow_to_cow(cow: CowStr<'_>) -> std::borrow::Cow<'_, str> { 9 11 match cow { 10 12 CowStr::Borrowed(s) => std::borrow::Cow::Borrowed(s), 11 13 CowStr::Owned(s) => std::borrow::Cow::Owned(s.into_string()), ··· 13 15 } 14 16 15 17 /// too many cows, so we have conversions 16 - pub fn cow_to_mcow<'a>(cow: std::borrow::Cow<'a, str>) -> CowStr<'a> { 18 + pub fn cow_to_mcow(cow: std::borrow::Cow<'_, str>) -> CowStr<'_> { 17 19 match cow { 18 20 std::borrow::Cow::Borrowed(s) => CowStr::Borrowed(s), 19 21 std::borrow::Cow::Owned(s) => CowStr::Owned(s.into()), ··· 21 23 } 22 24 23 25 /// too many cows, so we have conversions 24 - pub fn mdcow_to_cow<'a>(cow: markdown_weaver::CowStr<'a>) -> std::borrow::Cow<'a, str> { 26 + pub fn mdcow_to_cow(cow: markdown_weaver::CowStr<'_>) -> std::borrow::Cow<'_, str> { 25 27 match cow { 26 28 markdown_weaver::CowStr::Borrowed(s) => std::borrow::Cow::Borrowed(s), 27 29 markdown_weaver::CowStr::Boxed(s) => std::borrow::Cow::Owned(s.into_string()),
+13 -1
crates/weaver-workspace-hack/Cargo.toml
··· 16 16 17 17 ### BEGIN HAKARI SECTION 18 18 [dependencies] 19 + data-encoding = { version = "2" } 20 + futures-channel = { version = "0.3" } 21 + futures-core = { version = "0.3" } 22 + idna = { version = "1" } 23 + memchr = { version = "2" } 24 + percent-encoding = { version = "2" } 25 + proc-macro2 = { version = "1" } 26 + quote = { version = "1" } 27 + scopeguard = { version = "1" } 19 28 smallvec = { version = "1", default-features = false, features = ["const_new"] } 29 + syn = { version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } 20 30 tokio = { version = "1", features = ["full"] } 31 + tracing = { version = "0.1", features = ["log"] } 21 32 22 33 [build-dependencies] 34 + data-encoding = { version = "2" } 23 35 proc-macro2 = { version = "1" } 24 36 quote = { version = "1" } 25 - syn = { version = "2", features = ["extra-traits", "full", "visit-mut"] } 37 + syn = { version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } 26 38 27 39 ### END HAKARI SECTION
+2 -2
deny.toml
··· 2 2 multiple-versions = 'allow' 3 3 4 4 [licenses] 5 - allow = ["Apache-2.0", "BSD-3-Clause", "MIT", "Unicode-3.0", "MPL-2.0", "ISC"] 6 - private = { ignore = true } 5 + allow = ["Apache-2.0", "BSD-3-Clause", "MIT", "Unicode-3.0", "MPL-2.0", "ISC", "Zlib",] 6 + private = { ignore = true, ignore-sources = ["https://github.com/sugyan/atrium"] }
+14 -7
flake.nix
··· 67 67 strictDeps = true; 68 68 69 69 buildInputs = 70 - [ 70 + with pkgs; [ 71 71 # Add additional build inputs here 72 + sqlite 73 + pkg-config 74 + openssl 72 75 ] 73 76 ++ lib.optionals pkgs.stdenv.isDarwin [ 74 77 # Additional darwin specific inputs can be set here 75 78 pkgs.libiconv 76 79 ]; 77 - 80 + nativeBuildInputs = with pkgs; [ 81 + sqlite 82 + pkg-config 83 + openssl 84 + ]; 78 85 # Additional environment variables can be set directly 79 86 # MY_CUSTOM_VAR = "some value"; 80 87 }; ··· 183 190 inherit src; 184 191 }; 185 192 186 - "${name}-workspace-toml-fmt" = craneLib.taploFmt { 187 - src = pkgs.lib.sources.sourceFilesBySuffices src [".toml"]; 188 - # taplo arguments can be further customized below as needed 189 - # taploExtraArgs = "--config ./taplo.toml"; 190 - }; 193 + # "${name}-workspace-toml-fmt" = craneLib.taploFmt { 194 + # src = pkgs.lib.sources.sourceFilesBySuffices src [".toml"]; 195 + # # taplo arguments can be further customized below as needed 196 + # taploExtraArgs = "--config ./taplo.toml"; 197 + # }; 191 198 192 199 # Audit dependencies 193 200 "${name}-workspace-audit" = craneLib.cargoAudit {
+70
lexicons/sh.tangled/actor.profile.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.actor.profile", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "A declaration of a Tangled account profile.", 8 + "key": "literal:self", 9 + "record": { 10 + "type": "object", 11 + "required": ["bluesky"], 12 + "properties": { 13 + "description": { 14 + "type": "string", 15 + "description": "Free-form profile description text.", 16 + "maxGraphemes": 256, 17 + "maxLength": 2560 18 + }, 19 + "links": { 20 + "type": "array", 21 + "minLength": 0, 22 + "maxLength": 5, 23 + "items": { 24 + "type": "string", 25 + "description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too.", 26 + "format": "uri" 27 + } 28 + }, 29 + "stats": { 30 + "type": "array", 31 + "minLength": 0, 32 + "maxLength": 2, 33 + "items": { 34 + "type": "string", 35 + "description": "Vanity stats.", 36 + "enum": [ 37 + "merged-pull-request-count", 38 + "closed-pull-request-count", 39 + "open-pull-request-count", 40 + "open-issue-count", 41 + "closed-issue-count", 42 + "repository-count" 43 + ] 44 + } 45 + }, 46 + "bluesky": { 47 + "type": "boolean", 48 + "description": "Include link to this account on Bluesky." 49 + }, 50 + "location": { 51 + "type": "string", 52 + "description": "Free-form location text.", 53 + "maxGraphemes": 40, 54 + "maxLength": 400 55 + }, 56 + "pinnedRepositories": { 57 + "type": "array", 58 + "description": "Any ATURI, it is up to appviews to validate these fields.", 59 + "minLength": 0, 60 + "maxLength": 6, 61 + "items": { 62 + "type": "string", 63 + "format": "at-uri" 64 + } 65 + } 66 + } 67 + } 68 + } 69 + } 70 + }
+8 -8
lexicons/sh.weaver.blog.defs.json lexicons/sh.weaver/notebook/defs.json
··· 1 1 { 2 2 "lexicon": 1, 3 - "id": "sh.weaver.blog.defs", 3 + "id": "sh.weaver.notebook.defs", 4 4 "defs": { 5 - "postView" :{ 5 + "entryView": { 6 6 "type": "object", 7 7 "required": ["uri", "cid", "author", "record", "indexedAt"], 8 8 "authors": { 9 9 "type": "array", 10 10 "items": { 11 11 "type": "union", 12 - "refs": ["app.bsky.actor.defs#profileViewBasic" ] // add own lexicon for this 12 + "refs": ["app.bsky.actor.defs#profileViewBasic"] 13 13 } 14 14 }, 15 15 "properties": { 16 16 "uri": { "type": "string", "format": "at-uri" }, 17 - "cid": { "type": "string", "format": "cid" }, 17 + "cid": { "type": "string", "format": "cid" } 18 18 }, 19 19 20 20 "record": { "type": "unknown" }, ··· 22 22 "type": "ref", 23 23 "ref": "#renderedView" 24 24 }, 25 - "indexedAt": { "type": "string", "format": "datetime" }, 25 + "indexedAt": { "type": "string", "format": "datetime" } 26 26 }, 27 27 28 28 "renderedView": { ··· 38 38 "type": "blob", 39 39 "accept": ["text/css"], 40 40 "maxSize": 1000000 41 - }, 41 + } 42 42 }, 43 - "description": "View of a rendered and cached blog post" 44 - }, 43 + "description": "View of a rendered and cached notebook entry" 44 + } 45 45 } 46 46 }
-57
lexicons/sh.weaver.blog.post.json
··· 1 - { 2 - "lexicon": 1, 3 - "id": "sh.weaver.blog.post", 4 - "defs": { 5 - "main": { 6 - "type": "record", 7 - "description": "A blog entry", 8 - "key": "tid", 9 - "record": { 10 - "type": "object", 11 - "required": [ 12 - "content", "title", "createdAt" 13 - ], 14 - "properties": { 15 - "title": { "type": "ref", "ref": "#title" }, 16 - "tags": { "type": "ref", "ref": "#tags" }, 17 - 18 - "content": { 19 - "type": "string", 20 - "maxLength": 200000, 21 - "description": "The content of the blog post. This should be some flavor of Markdown." 22 - }, 23 - 24 - "createdAt": { 25 - "type": "ref", 26 - "ref": "#createdAt" 27 - }, 28 - "images": { 29 - "type": "ref", 30 - "ref": "sh.weaver.blog.embed.images", 31 - "description": "The set of images, if any, embedded in the blog post." 32 - }, 33 - } 34 - } 35 - }, 36 - 37 - "createdAt": { 38 - "type": "string", 39 - "format": "datetime", 40 - "description": "The date and time when the blog post was created. This is used for sorting and displaying the post's creation date." 41 - }, 42 - "title": { 43 - "type": "string", 44 - "maxLength": 420, 45 - "description": "The title of the blog post." 46 - }, 47 - "tags": { 48 - "type": "array", 49 - "items": { 50 - "type": "string", 51 - "maxLength": 64 52 - }, 53 - "maxLength": 10, 54 - "description": "An array of tags associated with the blog post. Tags can help categorize and organize posts." 55 - } 56 - } 57 - }
-30
lexicons/sh.weaver.embed.defs.json
··· 1 - { 2 - "lexicon": 1, 3 - "id": "sh.weaver.embed.defs", 4 - "defs": { 5 - "percentSize": { 6 - "type": "object", 7 - "required": ["width", "height"], 8 - "properties": { 9 - "width": { "type": "integer" }, 10 - "height": { "type": "integer" }, 11 - }, 12 - "description": "Proportional size of the embed relative to the viewport in larger windows. The dimensions are percentage out of 100. Could we use more granularity? Maybe, but come on." 13 - }, 14 - "pixelSize": { 15 - "type": "object", 16 - "required": ["width", "height"], 17 - "properties": { 18 - "width": { "type": "integer" }, 19 - "height": { "type": "integer" }, 20 - }, 21 - "description": "Pixel-exact embed size. The dimensions are logical pixels, subject to scaling, so 200px at X2 scale is 400px." 22 - }, 23 - "record": { 24 - 25 - }, 26 - "externa": { 27 - 28 - } 29 - } 30 - }
-19
lexicons/sh.weaver.embed.external.json
··· 1 - { 2 - "lexicon": 1, 3 - "id": "sh.weaver.embed.records", 4 - "description": "A set of records embedded in a blog post.", 5 - "defs": { 6 - "main": { 7 - "type": "object", 8 - "required": ["records"], 9 - "properties": { 10 - "images": { 11 - "type": "array", 12 - "items": { "type": "ref", "ref": "#sh.weaver.embed.defs#external" }, 13 - "maxLength": 48 14 - } 15 - } 16 - }, 17 - 18 - } 19 - }
-46
lexicons/sh.weaver.embed.images.json
··· 1 - { 2 - "lexicon": 1, 3 - "id": "sh.weaver.embed.images", 4 - "description": "A set of images embedded in a blog post.", 5 - "defs": { 6 - "main": { 7 - "type": "object", 8 - "required": ["images"], 9 - "properties": { 10 - "images": { 11 - "type": "array", 12 - "items": { "type": "ref", "ref": "#image" }, 13 - "maxLength": 48 14 - } 15 - } 16 - }, 17 - "image": { 18 - "type": "object", 19 - "required": ["image"], 20 - "properties": { 21 - "image": { 22 - "type": "blob", 23 - "accept": ["image/*"], 24 - "maxSize": 3000000 25 - }, 26 - "alt": { 27 - "type": "string", 28 - "description": "alt text description of the image" 29 - }, 30 - "blurhash": { 31 - "type": "string", 32 - "maxLength": 32, 33 - "description": "Blurhash string for the image, used for low-resolution placeholders. This must be a valid Blurhash string." 34 - }, 35 - "dimensions": { 36 - "type": "union", 37 - "refs": [ 38 - "app.bsky.embed.defs#aspectRatio", 39 - "sh.weaver.embed.defs#percentSize", 40 - "sh.weaver.embed.defs#pixelSize" 41 - ] 42 - } 43 - } 44 - }, 45 - } 46 - }
-19
lexicons/sh.weaver.embed.record.json
··· 1 - { 2 - "lexicon": 1, 3 - "id": "computer.nonbinary.embed.records", 4 - "description": "A set of records embedded in a blog post.", 5 - "defs": { 6 - "main": { 7 - "type": "object", 8 - "required": ["records"], 9 - "properties": { 10 - "images": { 11 - "type": "array", 12 - "items": { "type": "ref", "ref": "#computer.nonbinary.embed.defs#record" }, 13 - "maxLength": 48 14 - } 15 - } 16 - }, 17 - 18 - } 19 - }
+38
lexicons/sh.weaver/actor/defs.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.actor.defs", 4 + "defs": { 5 + "profileView": { 6 + "type": "object", 7 + "required": ["did", "handle"], 8 + "properties": { 9 + "did": { "type": "string", "format": "did" }, 10 + "handle": { "type": "string", "format": "handle" }, 11 + "displayName": { 12 + "type": "string", 13 + "maxGraphemes": 64, 14 + "maxLength": 640 15 + }, 16 + "description": { 17 + "type": "string", 18 + "maxGraphemes": 256, 19 + "maxLength": 2560 20 + }, 21 + "avatar": { "type": "string", "format": "uri" }, 22 + 23 + "indexedAt": { "type": "string", "format": "datetime" }, 24 + "createdAt": { "type": "string", "format": "datetime" }, 25 + 26 + "labels": { 27 + "type": "array", 28 + "items": { "type": "ref", "ref": "com.atproto.label.defs#label" } 29 + }, 30 + 31 + "status": { 32 + "type": "ref", 33 + "ref": "#statusView" 34 + } 35 + } 36 + } 37 + } 38 + }
+74
lexicons/sh.weaver/actor/profile.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.actor.profile", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "A declaration of a Weaver account profile.", 8 + "key": "literal:self", 9 + "record": { 10 + "type": "object", 11 + "properties": { 12 + "displayName": { 13 + "type": "string", 14 + "maxGraphemes": 64, 15 + "maxLength": 640 16 + }, 17 + "description": { 18 + "type": "string", 19 + "description": "Free-form profile description text.", 20 + "maxGraphemes": 256, 21 + "maxLength": 2560 22 + }, 23 + "avatar": { 24 + "type": "blob", 25 + "description": "Small image to be displayed next to posts from account. AKA, 'profile picture'", 26 + "accept": ["image/png", "image/jpeg"], 27 + "maxSize": 1000000 28 + }, 29 + "links": { 30 + "type": "array", 31 + "minLength": 0, 32 + "maxLength": 5, 33 + "items": { 34 + "type": "string", 35 + "description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too.", 36 + "format": "uri" 37 + } 38 + }, 39 + "pronouns": { 40 + "type": "ref", 41 + "description": "Pronouns to use in user-generated content.", 42 + "ref": "#pronounsList" 43 + }, 44 + "pinnedPost": { 45 + "type": "ref", 46 + "ref": "com.atproto.repo.strongRef" 47 + }, 48 + "bluesky": { 49 + "type": "boolean", 50 + "description": "Include link to this account on Bluesky." 51 + }, 52 + "tangled": { 53 + "type": "boolean", 54 + "description": "Include link to this account on Tangled." 55 + }, 56 + "location": { 57 + "type": "string", 58 + "description": "Free-form location text.", 59 + "maxGraphemes": 40, 60 + "maxLength": 400 61 + }, 62 + "createdAt": { "type": "string", "format": "datetime" } 63 + } 64 + } 65 + }, 66 + "pronounsList": { 67 + "type": "array", 68 + "items": { 69 + "type": "string", 70 + "enum": ["she/her", "he/him", "they/them", "it/its", "she/they", "he/they", "they/he", "they/she"] 71 + } 72 + } 73 + } 74 + }
+24
lexicons/sh.weaver/embed/defs.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.embed.defs", 4 + "defs": { 5 + "percentSize": { 6 + "type": "object", 7 + "required": ["width", "height"], 8 + "properties": { 9 + "width": { "type": "integer" }, 10 + "height": { "type": "integer" } 11 + }, 12 + "description": "Proportional size of the embed relative to the viewport in larger windows. The dimensions are percentage out of 100. Could we use more granularity? Maybe, but come on." 13 + }, 14 + "pixelSize": { 15 + "type": "object", 16 + "required": ["width", "height"], 17 + "properties": { 18 + "width": { "type": "integer" }, 19 + "height": { "type": "integer" } 20 + }, 21 + "description": "Pixel-exact embed size. The dimensions are logical pixels, subject to scaling, so 200px at X2 scale is 400px." 22 + } 23 + } 24 + }
+52
lexicons/sh.weaver/embed/external.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.embed.records", 4 + "description": "A set of records embedded in a blog post.", 5 + "defs": { 6 + "main": { 7 + "type": "object", 8 + "required": ["records"], 9 + "properties": { 10 + "records": { 11 + "type": "array", 12 + "items": { "type": "ref", "ref": "#external" }, 13 + "maxLength": 48 14 + } 15 + } 16 + }, 17 + "external": { 18 + "type": "object", 19 + "required": ["uri", "title", "description"], 20 + "properties": { 21 + "uri": { "type": "string", "format": "uri" }, 22 + "title": { "type": "string" }, 23 + "description": { "type": "string" }, 24 + "thumb": { 25 + "type": "blob", 26 + "accept": ["image/*"], 27 + "maxSize": 1000000 28 + } 29 + } 30 + }, 31 + "view": { 32 + "type": "object", 33 + "required": ["external"], 34 + "properties": { 35 + "external": { 36 + "type": "ref", 37 + "ref": "#viewExternal" 38 + } 39 + } 40 + }, 41 + "viewExternal": { 42 + "type": "object", 43 + "required": ["uri", "title", "description"], 44 + "properties": { 45 + "uri": { "type": "string", "format": "uri" }, 46 + "title": { "type": "string" }, 47 + "description": { "type": "string" }, 48 + "thumb": { "type": "string", "format": "uri" } 49 + } 50 + } 51 + } 52 + }
+42
lexicons/sh.weaver/embed/images.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.embed.images", 4 + "description": "A set of images embedded in a blog post.", 5 + "defs": { 6 + "main": { 7 + "type": "object", 8 + "required": ["images"], 9 + "properties": { 10 + "images": { 11 + "type": "array", 12 + "items": { "type": "ref", "ref": "#image" }, 13 + "maxLength": 48 14 + } 15 + } 16 + }, 17 + "image": { 18 + "type": "object", 19 + "required": ["image", "alt"], 20 + "properties": { 21 + "image": { 22 + "type": "blob", 23 + "accept": ["image/*"], 24 + "maxSize": 3000000 25 + }, 26 + "alt": { 27 + "type": "string", 28 + "description": "alt text description of the image" 29 + }, 30 + "blurhash": { 31 + "type": "string", 32 + "maxLength": 32, 33 + "description": "Blurhash string for the image, used for low-resolution placeholders. This must be a valid Blurhash string." 34 + }, 35 + "dimensions": { 36 + "type": "union", 37 + "refs": ["app.bsky.embed.defs#aspectRatio", "sh.weaver.embed.defs#percentSize", "sh.weaver.embed.defs#pixelSize"] 38 + } 39 + } 40 + } 41 + } 42 + }
+41
lexicons/sh.weaver/embed/recordWithMedia.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.embed.recordWithMedia", 4 + "description": "A representation of a record embedded in a Weaver record (eg, a notebook entry), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card.", 5 + "defs": { 6 + "main": { 7 + "type": "object", 8 + "required": ["record", "media"], 9 + "properties": { 10 + "record": { 11 + "type": "union", 12 + "refs": ["app.bsky.embed.record", "sh.weaver.embed.record"] 13 + }, 14 + "media": { 15 + "type": "union", 16 + "refs": ["sh.weaver.embed.images", "sh.weaver.embed.external", "app.bsky.embed.images", "app.bsky.embed.video", "app.bsky.embed.external"] 17 + } 18 + } 19 + }, 20 + "view": { 21 + "type": "object", 22 + "required": ["record", "media"], 23 + "properties": { 24 + "record": { 25 + "type": "union", 26 + "refs": ["sh.weaver.embed.record#view", "app.bsky.embed.record#view"] 27 + }, 28 + "media": { 29 + "type": "union", 30 + "refs": [ 31 + "sh.weaver.embed.images#view", 32 + "sh.weaver.embed.external#view", 33 + "app.bsky.embed.images#view", 34 + "app.bsky.embed.video#view", 35 + "app.bsky.embed.external#view" 36 + ] 37 + } 38 + } 39 + } 40 + } 41 + }
+101
lexicons/sh.weaver/embed/records.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.embed.records", 4 + "description": "A set of records embedded in a blog post.", 5 + "defs": { 6 + "main": { 7 + "type": "object", 8 + "required": ["records"], 9 + "properties": { 10 + "records": { 11 + "type": "array", 12 + "items": { "type": "ref", "ref": "com.atproto.repo.strongRef" }, 13 + "maxLength": 48 14 + } 15 + } 16 + }, 17 + "view": { 18 + "type": "object", 19 + "required": ["record"], 20 + "properties": { 21 + "record": { 22 + "type": "union", 23 + "refs": [ 24 + "#viewRecord", 25 + "#viewNotFound", 26 + "#viewBlocked", 27 + "#viewDetached", 28 + "app.bsky.feed.defs#generatorView", 29 + "app.bsky.graph.defs#listView", 30 + "app.bsky.labeler.defs#labelerView", 31 + "app.bsky.graph.defs#starterPackViewBasic" 32 + ] 33 + } 34 + } 35 + }, 36 + "viewRecord": { 37 + "type": "object", 38 + "required": ["uri", "cid", "author", "value", "indexedAt"], 39 + "properties": { 40 + "uri": { "type": "string", "format": "at-uri" }, 41 + "cid": { "type": "string", "format": "cid" }, 42 + "author": { 43 + "type": "union", 44 + "refs": ["app.bsky.actor.defs#profileViewBasic"] 45 + }, 46 + "value": { 47 + "type": "unknown", 48 + "description": "The record data itself." 49 + }, 50 + "labels": { 51 + "type": "array", 52 + "items": { "type": "ref", "ref": "com.atproto.label.defs#label" } 53 + }, 54 + "replyCount": { "type": "integer" }, 55 + "repostCount": { "type": "integer" }, 56 + "likeCount": { "type": "integer" }, 57 + "quoteCount": { "type": "integer" }, 58 + "embeds": { 59 + "type": "array", 60 + "items": { 61 + "type": "union", 62 + "refs": [ 63 + "app.bsky.embed.images#view", 64 + "app.bsky.embed.video#view", 65 + "app.bsky.embed.external#view", 66 + "app.bsky.embed.record#view", 67 + "app.bsky.embed.recordWithMedia#view", 68 + "sh.weaver.embed.records#view" 69 + ] 70 + } 71 + }, 72 + "indexedAt": { "type": "string", "format": "datetime" } 73 + } 74 + }, 75 + "viewNotFound": { 76 + "type": "object", 77 + "required": ["uri", "notFound"], 78 + "properties": { 79 + "uri": { "type": "string", "format": "at-uri" }, 80 + "notFound": { "type": "boolean", "const": true } 81 + } 82 + }, 83 + "viewBlocked": { 84 + "type": "object", 85 + "required": ["uri", "blocked", "author"], 86 + "properties": { 87 + "uri": { "type": "string", "format": "at-uri" }, 88 + "blocked": { "type": "boolean", "const": true }, 89 + "author": { "type": "ref", "ref": "app.bsky.feed.defs#blockedAuthor" } 90 + } 91 + }, 92 + "viewDetached": { 93 + "type": "object", 94 + "required": ["uri", "detached"], 95 + "properties": { 96 + "uri": { "type": "string", "format": "at-uri" }, 97 + "detached": { "type": "boolean", "const": true } 98 + } 99 + } 100 + } 101 + }
+67
lexicons/sh.weaver/embed/video.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.embed.video", 4 + "description": "A video embedded in a Weaver record (eg, a notebook entry).", 5 + "defs": { 6 + "main": { 7 + "type": "object", 8 + "required": ["video"], 9 + "properties": { 10 + "video": { 11 + "type": "blob", 12 + "description": "The mp4 video file. May be up to 100mb, formerly limited to 50mb.", 13 + "accept": ["video/mp4"], 14 + "maxSize": 100000000 15 + }, 16 + "captions": { 17 + "type": "array", 18 + "items": { "type": "ref", "ref": "#caption" }, 19 + "maxLength": 20 20 + }, 21 + "alt": { 22 + "type": "string", 23 + "description": "Alt text description of the video, for accessibility.", 24 + "maxGraphemes": 1000, 25 + "maxLength": 10000 26 + }, 27 + "aspectRatio": { 28 + "type": "ref", 29 + "ref": "app.bsky.embed.defs#aspectRatio" 30 + } 31 + } 32 + }, 33 + "caption": { 34 + "type": "object", 35 + "required": ["lang", "file"], 36 + "properties": { 37 + "lang": { 38 + "type": "string", 39 + "format": "language" 40 + }, 41 + "file": { 42 + "type": "blob", 43 + "accept": ["text/vtt"], 44 + "maxSize": 20000 45 + } 46 + } 47 + }, 48 + "view": { 49 + "type": "object", 50 + "required": ["cid", "playlist"], 51 + "properties": { 52 + "cid": { "type": "string", "format": "cid" }, 53 + "playlist": { "type": "string", "format": "uri" }, 54 + "thumbnail": { "type": "string", "format": "uri" }, 55 + "alt": { 56 + "type": "string", 57 + "maxGraphemes": 1000, 58 + "maxLength": 10000 59 + }, 60 + "aspectRatio": { 61 + "type": "ref", 62 + "ref": "app.bsky.embed.defs#aspectRatio" 63 + } 64 + } 65 + } 66 + } 67 + }
+37
lexicons/sh.weaver/notebook/authors.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.notebook.authors", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "Authors of a Weaver notebook.", 8 + "key": "literal:self", 9 + "record": { 10 + "type": "object", 11 + "required": ["authorList"], 12 + "properties": { 13 + "authorList": { 14 + "type": "array", 15 + "items": { 16 + "type": "ref", 17 + "ref": "#authorListItem" 18 + } 19 + }, 20 + "createdAt": { "type": "string", "format": "datetime" } 21 + } 22 + } 23 + }, 24 + "authorListItem": { 25 + "type": "object", 26 + "description": "A single author in a Weaver notebook.", 27 + "required": ["profile, index"], 28 + "properties": { 29 + "profile": { 30 + "type": "union", 31 + "refs": ["app.bsky.actor.defs#profileViewBasic", "sh.weaver.actor.profile", "sh.tangled.actor.defs#profileView"] 32 + }, 33 + "index": { "type": "integer" } 34 + } 35 + } 36 + } 37 + }
+55
lexicons/sh.weaver/notebook/entry.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.weaver.notebook.entry", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "A notebook entry", 8 + "key": "tid", 9 + "record": { 10 + "type": "object", 11 + "required": ["content", "title", "createdAt"], 12 + "properties": { 13 + "title": { "type": "ref", "ref": "#title" }, 14 + "tags": { "type": "ref", "ref": "#tags" }, 15 + 16 + "content": { 17 + "type": "string", 18 + "maxLength": 200000, 19 + "description": "The content of the notebook entry. This should be some flavor of Markdown." 20 + }, 21 + 22 + "createdAt": { 23 + "type": "ref", 24 + "ref": "#createdAt" 25 + }, 26 + "images": { 27 + "type": "ref", 28 + "ref": "sh.weaver.embed.images", 29 + "description": "The set of images, if any, embedded in the notebook entry." 30 + } 31 + } 32 + } 33 + }, 34 + 35 + "createdAt": { 36 + "type": "string", 37 + "format": "datetime", 38 + "description": "The date and time when the notebook entry was created. This is used for sorting and displaying the entry's creation date." 39 + }, 40 + "title": { 41 + "type": "string", 42 + "maxLength": 420, 43 + "description": "The title of the notebook entry." 44 + }, 45 + "tags": { 46 + "type": "array", 47 + "items": { 48 + "type": "string", 49 + "maxLength": 64 50 + }, 51 + "maxLength": 10, 52 + "description": "An array of tags associated with the notebook entry. Tags can help categorize and organize entries." 53 + } 54 + } 55 + }