Pre-packaged app.bsky and chat.bsky AT Protocol lexicons.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Initial commit

+10029
+5
.formatter.exs
··· 1 + # Used by "mix format" 2 + [ 3 + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"], 4 + import_deps: [:atex] 5 + ]
+10
.gitignore
··· 1 + /_build/ 2 + /cover/ 3 + /deps/ 4 + /doc/ 5 + erl_crash.dump 6 + *.ez 7 + atex_atproto-*.tar 8 + /tmp/ 9 + .envrc 10 + .direnv
+18
LICENSE
··· 1 + Copyright 2026 comet.sh 2 + 3 + Permission is hereby granted, free of charge, to any person obtaining a copy of 4 + this software and associated documentation files (the “Software”), to deal in 5 + the Software without restriction, including without limitation the rights to 6 + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 + the Software, and to permit persons to whom the Software is furnished to do so, 8 + subject to the following conditions: 9 + 10 + The above copyright notice and this permission notice shall be included in all 11 + copies or substantial portions of the Software. 12 + 13 + THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 15 + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+22
README.md
··· 1 + # atex_atproto 2 + 3 + This package contains the [`app.bsky`] and [`chat.bsky`] lexicons translated 4 + into Elixir modules for use with [atex]. 5 + 6 + ## Installation 7 + 8 + Add `atex_atproto` to your list of dependencies in `mix.exs`: 9 + 10 + ```elixir 11 + def deps do 12 + [ 13 + {:atex_atproto, "~> 0.1"} 14 + ] 15 + end 16 + ``` 17 + 18 + [`app.bsky`]: 19 + https://github.com/bluesky-social/atproto/tree/main/lexicons/app/bsky 20 + [`chat.bsky`]: 21 + https://github.com/bluesky-social/atproto/tree/main/lexicons/chat/bsky 22 + [atex]: https://github.com/cometsh/atex
+27
flake.lock
··· 1 + { 2 + "nodes": { 3 + "nixpkgs": { 4 + "locked": { 5 + "lastModified": 1774709303, 6 + "narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=", 7 + "owner": "nixos", 8 + "repo": "nixpkgs", 9 + "rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "nixos", 14 + "ref": "nixos-unstable", 15 + "repo": "nixpkgs", 16 + "type": "github" 17 + } 18 + }, 19 + "root": { 20 + "inputs": { 21 + "nixpkgs": "nixpkgs" 22 + } 23 + } 24 + }, 25 + "root": "root", 26 + "version": 7 27 + }
+21
flake.nix
··· 1 + { 2 + inputs = { 3 + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; 4 + }; 5 + 6 + outputs = {nixpkgs, ...}: let 7 + forSystems = fn: 8 + nixpkgs.lib.genAttrs [ 9 + "aarch64-linux" 10 + "aarch64-darwin" 11 + "x86_64-darwin" 12 + "x86_64-linux" 13 + ] (system: fn nixpkgs.legacyPackages.${system}); 14 + defaultForSystems = fn: forSystems (pkgs: {default = fn pkgs;}); 15 + in { 16 + devShells = defaultForSystems (pkgs: 17 + pkgs.mkShell { 18 + nativeBuildInputs = with pkgs; [elixir erlang]; 19 + }); 20 + }; 21 + }
+670
lib/atproto/app/bsky/actor/defs.ex
··· 1 + defmodule App.Bsky.Actor.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "postInteractionSettingsPref" => %{ 8 + "description" => 9 + "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.", 10 + "properties" => %{ 11 + "postgateEmbeddingRules" => %{ 12 + "description" => 13 + "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.", 14 + "items" => %{ 15 + "refs" => ["app.bsky.feed.postgate#disableRule"], 16 + "type" => "union" 17 + }, 18 + "maxLength" => 5, 19 + "type" => "array" 20 + }, 21 + "threadgateAllowRules" => %{ 22 + "description" => 23 + "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.", 24 + "items" => %{ 25 + "refs" => [ 26 + "app.bsky.feed.threadgate#mentionRule", 27 + "app.bsky.feed.threadgate#followerRule", 28 + "app.bsky.feed.threadgate#followingRule", 29 + "app.bsky.feed.threadgate#listRule" 30 + ], 31 + "type" => "union" 32 + }, 33 + "maxLength" => 5, 34 + "type" => "array" 35 + } 36 + }, 37 + "required" => [], 38 + "type" => "object" 39 + }, 40 + "nux" => %{ 41 + "description" => "A new user experiences (NUX) storage object", 42 + "properties" => %{ 43 + "completed" => %{"default" => false, "type" => "boolean"}, 44 + "data" => %{ 45 + "description" => 46 + "Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.", 47 + "maxGraphemes" => 300, 48 + "maxLength" => 3000, 49 + "type" => "string" 50 + }, 51 + "expiresAt" => %{ 52 + "description" => 53 + "The date and time at which the NUX will expire and should be considered completed.", 54 + "format" => "datetime", 55 + "type" => "string" 56 + }, 57 + "id" => %{"maxLength" => 100, "type" => "string"} 58 + }, 59 + "required" => ["id", "completed"], 60 + "type" => "object" 61 + }, 62 + "savedFeedsPrefV2" => %{ 63 + "properties" => %{ 64 + "items" => %{ 65 + "items" => %{ 66 + "ref" => "app.bsky.actor.defs#savedFeed", 67 + "type" => "ref" 68 + }, 69 + "type" => "array" 70 + } 71 + }, 72 + "required" => ["items"], 73 + "type" => "object" 74 + }, 75 + "liveEventPreferences" => %{ 76 + "description" => "Preferences for live events.", 77 + "properties" => %{ 78 + "hiddenFeedIds" => %{ 79 + "description" => "A list of feed IDs that the user has hidden from live events.", 80 + "items" => %{"type" => "string"}, 81 + "type" => "array" 82 + }, 83 + "hideAllFeeds" => %{ 84 + "default" => false, 85 + "description" => "Whether to hide all feeds from live events.", 86 + "type" => "boolean" 87 + } 88 + }, 89 + "type" => "object" 90 + }, 91 + "labelerPrefItem" => %{ 92 + "properties" => %{"did" => %{"format" => "did", "type" => "string"}}, 93 + "required" => ["did"], 94 + "type" => "object" 95 + }, 96 + "interestsPref" => %{ 97 + "properties" => %{ 98 + "tags" => %{ 99 + "description" => 100 + "A list of tags which describe the account owner's interests gathered during onboarding.", 101 + "items" => %{ 102 + "maxGraphemes" => 64, 103 + "maxLength" => 640, 104 + "type" => "string" 105 + }, 106 + "maxLength" => 100, 107 + "type" => "array" 108 + } 109 + }, 110 + "required" => ["tags"], 111 + "type" => "object" 112 + }, 113 + "profileAssociated" => %{ 114 + "properties" => %{ 115 + "activitySubscription" => %{ 116 + "ref" => "#profileAssociatedActivitySubscription", 117 + "type" => "ref" 118 + }, 119 + "chat" => %{"ref" => "#profileAssociatedChat", "type" => "ref"}, 120 + "feedgens" => %{"type" => "integer"}, 121 + "germ" => %{"ref" => "#profileAssociatedGerm", "type" => "ref"}, 122 + "labeler" => %{"type" => "boolean"}, 123 + "lists" => %{"type" => "integer"}, 124 + "starterPacks" => %{"type" => "integer"} 125 + }, 126 + "type" => "object" 127 + }, 128 + "savedFeedsPref" => %{ 129 + "properties" => %{ 130 + "pinned" => %{ 131 + "items" => %{"format" => "at-uri", "type" => "string"}, 132 + "type" => "array" 133 + }, 134 + "saved" => %{ 135 + "items" => %{"format" => "at-uri", "type" => "string"}, 136 + "type" => "array" 137 + }, 138 + "timelineIndex" => %{"type" => "integer"} 139 + }, 140 + "required" => ["pinned", "saved"], 141 + "type" => "object" 142 + }, 143 + "verificationPrefs" => %{ 144 + "description" => "Preferences for how verified accounts appear in the app.", 145 + "properties" => %{ 146 + "hideBadges" => %{ 147 + "default" => false, 148 + "description" => 149 + "Hide the blue check badges for verified accounts and trusted verifiers.", 150 + "type" => "boolean" 151 + } 152 + }, 153 + "required" => [], 154 + "type" => "object" 155 + }, 156 + "preferences" => %{ 157 + "items" => %{ 158 + "refs" => [ 159 + "#adultContentPref", 160 + "#contentLabelPref", 161 + "#savedFeedsPref", 162 + "#savedFeedsPrefV2", 163 + "#personalDetailsPref", 164 + "#declaredAgePref", 165 + "#feedViewPref", 166 + "#threadViewPref", 167 + "#interestsPref", 168 + "#mutedWordsPref", 169 + "#hiddenPostsPref", 170 + "#bskyAppStatePref", 171 + "#labelersPref", 172 + "#postInteractionSettingsPref", 173 + "#verificationPrefs", 174 + "#liveEventPreferences" 175 + ], 176 + "type" => "union" 177 + }, 178 + "type" => "array" 179 + }, 180 + "mutedWordTarget" => %{ 181 + "knownValues" => ["content", "tag"], 182 + "maxGraphemes" => 64, 183 + "maxLength" => 640, 184 + "type" => "string" 185 + }, 186 + "adultContentPref" => %{ 187 + "properties" => %{"enabled" => %{"default" => false, "type" => "boolean"}}, 188 + "required" => ["enabled"], 189 + "type" => "object" 190 + }, 191 + "declaredAgePref" => %{ 192 + "description" => 193 + "Read-only preference containing value(s) inferred from the user's declared birthdate. Absence of this preference object in the response indicates that the user has not made a declaration.", 194 + "properties" => %{ 195 + "isOverAge13" => %{ 196 + "description" => 197 + "Indicates if the user has declared that they are over 13 years of age.", 198 + "type" => "boolean" 199 + }, 200 + "isOverAge16" => %{ 201 + "description" => 202 + "Indicates if the user has declared that they are over 16 years of age.", 203 + "type" => "boolean" 204 + }, 205 + "isOverAge18" => %{ 206 + "description" => 207 + "Indicates if the user has declared that they are over 18 years of age.", 208 + "type" => "boolean" 209 + } 210 + }, 211 + "type" => "object" 212 + }, 213 + "bskyAppProgressGuide" => %{ 214 + "description" => 215 + "If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.", 216 + "properties" => %{"guide" => %{"maxLength" => 100, "type" => "string"}}, 217 + "required" => ["guide"], 218 + "type" => "object" 219 + }, 220 + "knownFollowers" => %{ 221 + "description" => "The subject's followers whom you also follow", 222 + "properties" => %{ 223 + "count" => %{"type" => "integer"}, 224 + "followers" => %{ 225 + "items" => %{"ref" => "#profileViewBasic", "type" => "ref"}, 226 + "maxLength" => 5, 227 + "minLength" => 0, 228 + "type" => "array" 229 + } 230 + }, 231 + "required" => ["count", "followers"], 232 + "type" => "object" 233 + }, 234 + "profileAssociatedGerm" => %{ 235 + "properties" => %{ 236 + "messageMeUrl" => %{"format" => "uri", "type" => "string"}, 237 + "showButtonTo" => %{ 238 + "knownValues" => ["usersIFollow", "everyone"], 239 + "type" => "string" 240 + } 241 + }, 242 + "required" => ["showButtonTo", "messageMeUrl"], 243 + "type" => "object" 244 + }, 245 + "labelersPref" => %{ 246 + "properties" => %{ 247 + "labelers" => %{ 248 + "items" => %{"ref" => "#labelerPrefItem", "type" => "ref"}, 249 + "type" => "array" 250 + } 251 + }, 252 + "required" => ["labelers"], 253 + "type" => "object" 254 + }, 255 + "feedViewPref" => %{ 256 + "properties" => %{ 257 + "feed" => %{ 258 + "description" => "The URI of the feed, or an identifier which describes the feed.", 259 + "type" => "string" 260 + }, 261 + "hideQuotePosts" => %{ 262 + "description" => "Hide quote posts in the feed.", 263 + "type" => "boolean" 264 + }, 265 + "hideReplies" => %{ 266 + "description" => "Hide replies in the feed.", 267 + "type" => "boolean" 268 + }, 269 + "hideRepliesByLikeCount" => %{ 270 + "description" => "Hide replies in the feed if they do not have this number of likes.", 271 + "type" => "integer" 272 + }, 273 + "hideRepliesByUnfollowed" => %{ 274 + "default" => true, 275 + "description" => "Hide replies in the feed if they are not by followed users.", 276 + "type" => "boolean" 277 + }, 278 + "hideReposts" => %{ 279 + "description" => "Hide reposts in the feed.", 280 + "type" => "boolean" 281 + } 282 + }, 283 + "required" => ["feed"], 284 + "type" => "object" 285 + }, 286 + "threadViewPref" => %{ 287 + "properties" => %{ 288 + "sort" => %{ 289 + "description" => "Sorting mode for threads.", 290 + "knownValues" => ["oldest", "newest", "most-likes", "random", "hotness"], 291 + "type" => "string" 292 + } 293 + }, 294 + "type" => "object" 295 + }, 296 + "hiddenPostsPref" => %{ 297 + "properties" => %{ 298 + "items" => %{ 299 + "description" => "A list of URIs of posts the account owner has hidden.", 300 + "items" => %{"format" => "at-uri", "type" => "string"}, 301 + "type" => "array" 302 + } 303 + }, 304 + "required" => ["items"], 305 + "type" => "object" 306 + }, 307 + "profileView" => %{ 308 + "properties" => %{ 309 + "associated" => %{"ref" => "#profileAssociated", "type" => "ref"}, 310 + "avatar" => %{"format" => "uri", "type" => "string"}, 311 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 312 + "debug" => %{ 313 + "description" => "Debug information for internal development", 314 + "type" => "unknown" 315 + }, 316 + "description" => %{ 317 + "maxGraphemes" => 256, 318 + "maxLength" => 2560, 319 + "type" => "string" 320 + }, 321 + "did" => %{"format" => "did", "type" => "string"}, 322 + "displayName" => %{ 323 + "maxGraphemes" => 64, 324 + "maxLength" => 640, 325 + "type" => "string" 326 + }, 327 + "handle" => %{"format" => "handle", "type" => "string"}, 328 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 329 + "labels" => %{ 330 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 331 + "type" => "array" 332 + }, 333 + "pronouns" => %{"type" => "string"}, 334 + "status" => %{"ref" => "#statusView", "type" => "ref"}, 335 + "verification" => %{"ref" => "#verificationState", "type" => "ref"}, 336 + "viewer" => %{"ref" => "#viewerState", "type" => "ref"} 337 + }, 338 + "required" => ["did", "handle"], 339 + "type" => "object" 340 + }, 341 + "profileViewDetailed" => %{ 342 + "properties" => %{ 343 + "associated" => %{"ref" => "#profileAssociated", "type" => "ref"}, 344 + "avatar" => %{"format" => "uri", "type" => "string"}, 345 + "banner" => %{"format" => "uri", "type" => "string"}, 346 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 347 + "debug" => %{ 348 + "description" => "Debug information for internal development", 349 + "type" => "unknown" 350 + }, 351 + "description" => %{ 352 + "maxGraphemes" => 256, 353 + "maxLength" => 2560, 354 + "type" => "string" 355 + }, 356 + "did" => %{"format" => "did", "type" => "string"}, 357 + "displayName" => %{ 358 + "maxGraphemes" => 64, 359 + "maxLength" => 640, 360 + "type" => "string" 361 + }, 362 + "followersCount" => %{"type" => "integer"}, 363 + "followsCount" => %{"type" => "integer"}, 364 + "handle" => %{"format" => "handle", "type" => "string"}, 365 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 366 + "joinedViaStarterPack" => %{ 367 + "ref" => "app.bsky.graph.defs#starterPackViewBasic", 368 + "type" => "ref" 369 + }, 370 + "labels" => %{ 371 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 372 + "type" => "array" 373 + }, 374 + "pinnedPost" => %{ 375 + "ref" => "com.atproto.repo.strongRef", 376 + "type" => "ref" 377 + }, 378 + "postsCount" => %{"type" => "integer"}, 379 + "pronouns" => %{"type" => "string"}, 380 + "status" => %{"ref" => "#statusView", "type" => "ref"}, 381 + "verification" => %{"ref" => "#verificationState", "type" => "ref"}, 382 + "viewer" => %{"ref" => "#viewerState", "type" => "ref"}, 383 + "website" => %{"format" => "uri", "type" => "string"} 384 + }, 385 + "required" => ["did", "handle"], 386 + "type" => "object" 387 + }, 388 + "profileViewBasic" => %{ 389 + "properties" => %{ 390 + "associated" => %{"ref" => "#profileAssociated", "type" => "ref"}, 391 + "avatar" => %{"format" => "uri", "type" => "string"}, 392 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 393 + "debug" => %{ 394 + "description" => "Debug information for internal development", 395 + "type" => "unknown" 396 + }, 397 + "did" => %{"format" => "did", "type" => "string"}, 398 + "displayName" => %{ 399 + "maxGraphemes" => 64, 400 + "maxLength" => 640, 401 + "type" => "string" 402 + }, 403 + "handle" => %{"format" => "handle", "type" => "string"}, 404 + "labels" => %{ 405 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 406 + "type" => "array" 407 + }, 408 + "pronouns" => %{"type" => "string"}, 409 + "status" => %{"ref" => "#statusView", "type" => "ref"}, 410 + "verification" => %{"ref" => "#verificationState", "type" => "ref"}, 411 + "viewer" => %{"ref" => "#viewerState", "type" => "ref"} 412 + }, 413 + "required" => ["did", "handle"], 414 + "type" => "object" 415 + }, 416 + "bskyAppStatePref" => %{ 417 + "description" => 418 + "A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.", 419 + "properties" => %{ 420 + "activeProgressGuide" => %{ 421 + "ref" => "#bskyAppProgressGuide", 422 + "type" => "ref" 423 + }, 424 + "nuxs" => %{ 425 + "description" => "Storage for NUXs the user has encountered.", 426 + "items" => %{"ref" => "app.bsky.actor.defs#nux", "type" => "ref"}, 427 + "maxLength" => 100, 428 + "type" => "array" 429 + }, 430 + "queuedNudges" => %{ 431 + "description" => 432 + "An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user.", 433 + "items" => %{"maxLength" => 100, "type" => "string"}, 434 + "maxLength" => 1000, 435 + "type" => "array" 436 + } 437 + }, 438 + "type" => "object" 439 + }, 440 + "profileAssociatedChat" => %{ 441 + "properties" => %{ 442 + "allowIncoming" => %{ 443 + "knownValues" => ["all", "none", "following"], 444 + "type" => "string" 445 + } 446 + }, 447 + "required" => ["allowIncoming"], 448 + "type" => "object" 449 + }, 450 + "viewerState" => %{ 451 + "description" => 452 + "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.", 453 + "properties" => %{ 454 + "activitySubscription" => %{ 455 + "description" => 456 + "This property is present only in selected cases, as an optimization.", 457 + "ref" => "app.bsky.notification.defs#activitySubscription", 458 + "type" => "ref" 459 + }, 460 + "blockedBy" => %{"type" => "boolean"}, 461 + "blocking" => %{"format" => "at-uri", "type" => "string"}, 462 + "blockingByList" => %{ 463 + "ref" => "app.bsky.graph.defs#listViewBasic", 464 + "type" => "ref" 465 + }, 466 + "followedBy" => %{"format" => "at-uri", "type" => "string"}, 467 + "following" => %{"format" => "at-uri", "type" => "string"}, 468 + "knownFollowers" => %{ 469 + "description" => 470 + "This property is present only in selected cases, as an optimization.", 471 + "ref" => "#knownFollowers", 472 + "type" => "ref" 473 + }, 474 + "muted" => %{"type" => "boolean"}, 475 + "mutedByList" => %{ 476 + "ref" => "app.bsky.graph.defs#listViewBasic", 477 + "type" => "ref" 478 + } 479 + }, 480 + "type" => "object" 481 + }, 482 + "savedFeed" => %{ 483 + "properties" => %{ 484 + "id" => %{"type" => "string"}, 485 + "pinned" => %{"type" => "boolean"}, 486 + "type" => %{ 487 + "knownValues" => ["feed", "list", "timeline"], 488 + "type" => "string" 489 + }, 490 + "value" => %{"type" => "string"} 491 + }, 492 + "required" => ["id", "type", "value", "pinned"], 493 + "type" => "object" 494 + }, 495 + "verificationView" => %{ 496 + "description" => "An individual verification for an associated subject.", 497 + "properties" => %{ 498 + "createdAt" => %{ 499 + "description" => "Timestamp when the verification was created.", 500 + "format" => "datetime", 501 + "type" => "string" 502 + }, 503 + "isValid" => %{ 504 + "description" => "True if the verification passes validation, otherwise false.", 505 + "type" => "boolean" 506 + }, 507 + "issuer" => %{ 508 + "description" => "The user who issued this verification.", 509 + "format" => "did", 510 + "type" => "string" 511 + }, 512 + "uri" => %{ 513 + "description" => "The AT-URI of the verification record.", 514 + "format" => "at-uri", 515 + "type" => "string" 516 + } 517 + }, 518 + "required" => ["issuer", "uri", "isValid", "createdAt"], 519 + "type" => "object" 520 + }, 521 + "verificationState" => %{ 522 + "description" => 523 + "Represents the verification information about the user this object is attached to.", 524 + "properties" => %{ 525 + "trustedVerifierStatus" => %{ 526 + "description" => "The user's status as a trusted verifier.", 527 + "knownValues" => ["valid", "invalid", "none"], 528 + "type" => "string" 529 + }, 530 + "verifications" => %{ 531 + "description" => 532 + "All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included.", 533 + "items" => %{"ref" => "#verificationView", "type" => "ref"}, 534 + "type" => "array" 535 + }, 536 + "verifiedStatus" => %{ 537 + "description" => "The user's status as a verified account.", 538 + "knownValues" => ["valid", "invalid", "none"], 539 + "type" => "string" 540 + } 541 + }, 542 + "required" => ["verifications", "verifiedStatus", "trustedVerifierStatus"], 543 + "type" => "object" 544 + }, 545 + "statusView" => %{ 546 + "properties" => %{ 547 + "cid" => %{"format" => "cid", "type" => "string"}, 548 + "embed" => %{ 549 + "description" => "An optional embed associated with the status.", 550 + "refs" => ["app.bsky.embed.external#view"], 551 + "type" => "union" 552 + }, 553 + "expiresAt" => %{ 554 + "description" => 555 + "The date when this status will expire. The application might choose to no longer return the status after expiration.", 556 + "format" => "datetime", 557 + "type" => "string" 558 + }, 559 + "isActive" => %{ 560 + "description" => 561 + "True if the status is not expired, false if it is expired. Only present if expiration was set.", 562 + "type" => "boolean" 563 + }, 564 + "isDisabled" => %{ 565 + "description" => 566 + "True if the user's go-live access has been disabled by a moderator, false otherwise.", 567 + "type" => "boolean" 568 + }, 569 + "record" => %{"type" => "unknown"}, 570 + "status" => %{ 571 + "description" => "The status for the account.", 572 + "knownValues" => ["app.bsky.actor.status#live"], 573 + "type" => "string" 574 + }, 575 + "uri" => %{"format" => "at-uri", "type" => "string"} 576 + }, 577 + "required" => ["status", "record"], 578 + "type" => "object" 579 + }, 580 + "mutedWord" => %{ 581 + "description" => "A word that the account owner has muted.", 582 + "properties" => %{ 583 + "actorTarget" => %{ 584 + "default" => "all", 585 + "description" => 586 + "Groups of users to apply the muted word to. If undefined, applies to all users.", 587 + "knownValues" => ["all", "exclude-following"], 588 + "type" => "string" 589 + }, 590 + "expiresAt" => %{ 591 + "description" => 592 + "The date and time at which the muted word will expire and no longer be applied.", 593 + "format" => "datetime", 594 + "type" => "string" 595 + }, 596 + "id" => %{"type" => "string"}, 597 + "targets" => %{ 598 + "description" => "The intended targets of the muted word.", 599 + "items" => %{ 600 + "ref" => "app.bsky.actor.defs#mutedWordTarget", 601 + "type" => "ref" 602 + }, 603 + "type" => "array" 604 + }, 605 + "value" => %{ 606 + "description" => "The muted word itself.", 607 + "maxGraphemes" => 1000, 608 + "maxLength" => 10000, 609 + "type" => "string" 610 + } 611 + }, 612 + "required" => ["value", "targets"], 613 + "type" => "object" 614 + }, 615 + "contentLabelPref" => %{ 616 + "properties" => %{ 617 + "label" => %{"type" => "string"}, 618 + "labelerDid" => %{ 619 + "description" => 620 + "Which labeler does this preference apply to? If undefined, applies globally.", 621 + "format" => "did", 622 + "type" => "string" 623 + }, 624 + "visibility" => %{ 625 + "knownValues" => ["ignore", "show", "warn", "hide"], 626 + "type" => "string" 627 + } 628 + }, 629 + "required" => ["label", "visibility"], 630 + "type" => "object" 631 + }, 632 + "personalDetailsPref" => %{ 633 + "properties" => %{ 634 + "birthDate" => %{ 635 + "description" => "The birth date of account owner.", 636 + "format" => "datetime", 637 + "type" => "string" 638 + } 639 + }, 640 + "type" => "object" 641 + }, 642 + "profileAssociatedActivitySubscription" => %{ 643 + "properties" => %{ 644 + "allowSubscriptions" => %{ 645 + "knownValues" => ["followers", "mutuals", "none"], 646 + "type" => "string" 647 + } 648 + }, 649 + "required" => ["allowSubscriptions"], 650 + "type" => "object" 651 + }, 652 + "mutedWordsPref" => %{ 653 + "properties" => %{ 654 + "items" => %{ 655 + "description" => "A list of words the account owner has muted.", 656 + "items" => %{ 657 + "ref" => "app.bsky.actor.defs#mutedWord", 658 + "type" => "ref" 659 + }, 660 + "type" => "array" 661 + } 662 + }, 663 + "required" => ["items"], 664 + "type" => "object" 665 + } 666 + }, 667 + "id" => "app.bsky.actor.defs", 668 + "lexicon" => 1 669 + }) 670 + end
+30
lib/atproto/app/bsky/actor/getPreferences.ex
··· 1 + defmodule App.Bsky.Actor.GetPreferences do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "preferences" => %{ 15 + "ref" => "app.bsky.actor.defs#preferences", 16 + "type" => "ref" 17 + } 18 + }, 19 + "required" => ["preferences"], 20 + "type" => "object" 21 + } 22 + }, 23 + "parameters" => %{"properties" => %{}, "type" => "params"}, 24 + "type" => "query" 25 + } 26 + }, 27 + "id" => "app.bsky.actor.getPreferences", 28 + "lexicon" => 1 29 + }) 30 + end
+34
lib/atproto/app/bsky/actor/getProfile.ex
··· 1 + defmodule App.Bsky.Actor.GetProfile do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "ref" => "app.bsky.actor.defs#profileViewDetailed", 14 + "type" => "ref" 15 + } 16 + }, 17 + "parameters" => %{ 18 + "properties" => %{ 19 + "actor" => %{ 20 + "description" => "Handle or DID of account to fetch profile of.", 21 + "format" => "at-identifier", 22 + "type" => "string" 23 + } 24 + }, 25 + "required" => ["actor"], 26 + "type" => "params" 27 + }, 28 + "type" => "query" 29 + } 30 + }, 31 + "id" => "app.bsky.actor.getProfile", 32 + "lexicon" => 1 33 + }) 34 + end
+42
lib/atproto/app/bsky/actor/getProfiles.ex
··· 1 + defmodule App.Bsky.Actor.GetProfiles do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get detailed profile views of multiple actors.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "profiles" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.actor.defs#profileViewDetailed", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + } 20 + }, 21 + "required" => ["profiles"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "actors" => %{ 28 + "items" => %{"format" => "at-identifier", "type" => "string"}, 29 + "maxLength" => 25, 30 + "type" => "array" 31 + } 32 + }, 33 + "required" => ["actors"], 34 + "type" => "params" 35 + }, 36 + "type" => "query" 37 + } 38 + }, 39 + "id" => "app.bsky.actor.getProfiles", 40 + "lexicon" => 1 41 + }) 42 + end
+54
lib/atproto/app/bsky/actor/getSuggestions.ex
··· 1 + defmodule App.Bsky.Actor.GetSuggestions do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "actors" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.actor.defs#profileView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "cursor" => %{"type" => "string"}, 22 + "recId" => %{ 23 + "description" => "DEPRECATED: use recIdStr instead.", 24 + "type" => "integer" 25 + }, 26 + "recIdStr" => %{ 27 + "description" => 28 + "Snowflake for this recommendation, use when submitting recommendation events.", 29 + "type" => "string" 30 + } 31 + }, 32 + "required" => ["actors"], 33 + "type" => "object" 34 + } 35 + }, 36 + "parameters" => %{ 37 + "properties" => %{ 38 + "cursor" => %{"type" => "string"}, 39 + "limit" => %{ 40 + "default" => 50, 41 + "maximum" => 100, 42 + "minimum" => 1, 43 + "type" => "integer" 44 + } 45 + }, 46 + "type" => "params" 47 + }, 48 + "type" => "query" 49 + } 50 + }, 51 + "id" => "app.bsky.actor.getSuggestions", 52 + "lexicon" => 1 53 + }) 54 + end
+67
lib/atproto/app/bsky/actor/profile.ex
··· 1 + defmodule App.Bsky.Actor.Profile do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "A declaration of a Bluesky account profile.", 9 + "key" => "literal:self", 10 + "record" => %{ 11 + "properties" => %{ 12 + "avatar" => %{ 13 + "accept" => ["image/png", "image/jpeg"], 14 + "description" => 15 + "Small image to be displayed next to posts from account. AKA, 'profile picture'", 16 + "maxSize" => 1_000_000, 17 + "type" => "blob" 18 + }, 19 + "banner" => %{ 20 + "accept" => ["image/png", "image/jpeg"], 21 + "description" => "Larger horizontal image to display behind profile view.", 22 + "maxSize" => 1_000_000, 23 + "type" => "blob" 24 + }, 25 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 26 + "description" => %{ 27 + "description" => "Free-form profile description text.", 28 + "maxGraphemes" => 256, 29 + "maxLength" => 2560, 30 + "type" => "string" 31 + }, 32 + "displayName" => %{ 33 + "maxGraphemes" => 64, 34 + "maxLength" => 640, 35 + "type" => "string" 36 + }, 37 + "joinedViaStarterPack" => %{ 38 + "ref" => "com.atproto.repo.strongRef", 39 + "type" => "ref" 40 + }, 41 + "labels" => %{ 42 + "description" => 43 + "Self-label values, specific to the Bluesky application, on the overall account.", 44 + "refs" => ["com.atproto.label.defs#selfLabels"], 45 + "type" => "union" 46 + }, 47 + "pinnedPost" => %{ 48 + "ref" => "com.atproto.repo.strongRef", 49 + "type" => "ref" 50 + }, 51 + "pronouns" => %{ 52 + "description" => "Free-form pronouns text.", 53 + "maxGraphemes" => 20, 54 + "maxLength" => 200, 55 + "type" => "string" 56 + }, 57 + "website" => %{"format" => "uri", "type" => "string"} 58 + }, 59 + "type" => "object" 60 + }, 61 + "type" => "record" 62 + } 63 + }, 64 + "id" => "app.bsky.actor.profile", 65 + "lexicon" => 1 66 + }) 67 + end
+28
lib/atproto/app/bsky/actor/putPreferences.ex
··· 1 + defmodule App.Bsky.Actor.PutPreferences do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Set the private preferences attached to the account.", 9 + "input" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "preferences" => %{ 14 + "ref" => "app.bsky.actor.defs#preferences", 15 + "type" => "ref" 16 + } 17 + }, 18 + "required" => ["preferences"], 19 + "type" => "object" 20 + } 21 + }, 22 + "type" => "procedure" 23 + } 24 + }, 25 + "id" => "app.bsky.actor.putPreferences", 26 + "lexicon" => 1 27 + }) 28 + end
+54
lib/atproto/app/bsky/actor/searchActors.ex
··· 1 + defmodule App.Bsky.Actor.SearchActors do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Find actors (profiles) matching search criteria. Does not require auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "actors" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.actor.defs#profileView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "cursor" => %{"type" => "string"} 22 + }, 23 + "required" => ["actors"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 25, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + }, 36 + "q" => %{ 37 + "description" => 38 + "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.", 39 + "type" => "string" 40 + }, 41 + "term" => %{ 42 + "description" => "DEPRECATED: use 'q' instead.", 43 + "type" => "string" 44 + } 45 + }, 46 + "type" => "params" 47 + }, 48 + "type" => "query" 49 + } 50 + }, 51 + "id" => "app.bsky.actor.searchActors", 52 + "lexicon" => 1 53 + }) 54 + end
+51
lib/atproto/app/bsky/actor/searchActorsTypeahead.ex
··· 1 + defmodule App.Bsky.Actor.SearchActorsTypeahead do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "actors" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.actor.defs#profileViewBasic", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + } 21 + }, 22 + "required" => ["actors"], 23 + "type" => "object" 24 + } 25 + }, 26 + "parameters" => %{ 27 + "properties" => %{ 28 + "limit" => %{ 29 + "default" => 10, 30 + "maximum" => 100, 31 + "minimum" => 1, 32 + "type" => "integer" 33 + }, 34 + "q" => %{ 35 + "description" => "Search query prefix; not a full query string.", 36 + "type" => "string" 37 + }, 38 + "term" => %{ 39 + "description" => "DEPRECATED: use 'q' instead.", 40 + "type" => "string" 41 + } 42 + }, 43 + "type" => "params" 44 + }, 45 + "type" => "query" 46 + } 47 + }, 48 + "id" => "app.bsky.actor.searchActorsTypeahead", 49 + "lexicon" => 1 50 + }) 51 + end
+43
lib/atproto/app/bsky/actor/status.ex
··· 1 + defmodule App.Bsky.Actor.Status do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "live" => %{ 8 + "description" => "Advertises an account as currently offering live content.", 9 + "type" => "token" 10 + }, 11 + "main" => %{ 12 + "description" => "A declaration of a Bluesky account status.", 13 + "key" => "literal:self", 14 + "record" => %{ 15 + "properties" => %{ 16 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 17 + "durationMinutes" => %{ 18 + "description" => 19 + "The duration of the status in minutes. Applications can choose to impose minimum and maximum limits.", 20 + "minimum" => 1, 21 + "type" => "integer" 22 + }, 23 + "embed" => %{ 24 + "description" => "An optional embed associated with the status.", 25 + "refs" => ["app.bsky.embed.external"], 26 + "type" => "union" 27 + }, 28 + "status" => %{ 29 + "description" => "The status for the account.", 30 + "knownValues" => ["app.bsky.actor.status#live"], 31 + "type" => "string" 32 + } 33 + }, 34 + "required" => ["status", "createdAt"], 35 + "type" => "object" 36 + }, 37 + "type" => "record" 38 + } 39 + }, 40 + "id" => "app.bsky.actor.status", 41 + "lexicon" => 1 42 + }) 43 + end
+56
lib/atproto/app/bsky/ageassurance/begin.ex
··· 1 + defmodule App.Bsky.Ageassurance.Begin do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Initiate Age Assurance for an account.", 9 + "errors" => [ 10 + %{"name" => "InvalidEmail"}, 11 + %{"name" => "DidTooLong"}, 12 + %{"name" => "InvalidInitiation"}, 13 + %{"name" => "RegionNotSupported"} 14 + ], 15 + "input" => %{ 16 + "encoding" => "application/json", 17 + "schema" => %{ 18 + "properties" => %{ 19 + "countryCode" => %{ 20 + "description" => "An ISO 3166-1 alpha-2 code of the user's location.", 21 + "type" => "string" 22 + }, 23 + "email" => %{ 24 + "description" => 25 + "The user's email address to receive Age Assurance instructions.", 26 + "type" => "string" 27 + }, 28 + "language" => %{ 29 + "description" => 30 + "The user's preferred language for communication during the Age Assurance process.", 31 + "type" => "string" 32 + }, 33 + "regionCode" => %{ 34 + "description" => 35 + "An optional ISO 3166-2 code of the user's region or state within the country.", 36 + "type" => "string" 37 + } 38 + }, 39 + "required" => ["email", "language", "countryCode"], 40 + "type" => "object" 41 + } 42 + }, 43 + "output" => %{ 44 + "encoding" => "application/json", 45 + "schema" => %{ 46 + "ref" => "app.bsky.ageassurance.defs#state", 47 + "type" => "ref" 48 + } 49 + }, 50 + "type" => "procedure" 51 + } 52 + }, 53 + "id" => "app.bsky.ageassurance.begin", 54 + "lexicon" => 1 55 + }) 56 + end
+273
lib/atproto/app/bsky/ageassurance/defs.ex
··· 1 + defmodule App.Bsky.Ageassurance.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "access" => %{ 8 + "description" => "The access level granted based on Age Assurance data we've processed.", 9 + "knownValues" => ["unknown", "none", "safe", "full"], 10 + "type" => "string" 11 + }, 12 + "config" => %{ 13 + "description" => "", 14 + "properties" => %{ 15 + "regions" => %{ 16 + "description" => "The per-region Age Assurance configuration.", 17 + "items" => %{ 18 + "ref" => "app.bsky.ageassurance.defs#configRegion", 19 + "type" => "ref" 20 + }, 21 + "type" => "array" 22 + } 23 + }, 24 + "required" => ["regions"], 25 + "type" => "object" 26 + }, 27 + "configRegion" => %{ 28 + "description" => "The Age Assurance configuration for a specific region.", 29 + "properties" => %{ 30 + "countryCode" => %{ 31 + "description" => "The ISO 3166-1 alpha-2 country code this configuration applies to.", 32 + "type" => "string" 33 + }, 34 + "minAccessAge" => %{ 35 + "description" => 36 + "The minimum age (as a whole integer) required to use Bluesky in this region.", 37 + "type" => "integer" 38 + }, 39 + "regionCode" => %{ 40 + "description" => 41 + "The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country.", 42 + "type" => "string" 43 + }, 44 + "rules" => %{ 45 + "description" => 46 + "The ordered list of Age Assurance rules that apply to this region. Rules should be applied in order, and the first matching rule determines the access level granted. The rules array should always include a default rule as the last item.", 47 + "items" => %{ 48 + "refs" => [ 49 + "#configRegionRuleDefault", 50 + "#configRegionRuleIfDeclaredOverAge", 51 + "#configRegionRuleIfDeclaredUnderAge", 52 + "#configRegionRuleIfAssuredOverAge", 53 + "#configRegionRuleIfAssuredUnderAge", 54 + "#configRegionRuleIfAccountNewerThan", 55 + "#configRegionRuleIfAccountOlderThan" 56 + ], 57 + "type" => "union" 58 + }, 59 + "type" => "array" 60 + } 61 + }, 62 + "required" => ["countryCode", "minAccessAge", "rules"], 63 + "type" => "object" 64 + }, 65 + "configRegionRuleDefault" => %{ 66 + "description" => "Age Assurance rule that applies by default.", 67 + "properties" => %{ 68 + "access" => %{ 69 + "ref" => "app.bsky.ageassurance.defs#access", 70 + "type" => "ref" 71 + } 72 + }, 73 + "required" => ["access"], 74 + "type" => "object" 75 + }, 76 + "configRegionRuleIfAccountNewerThan" => %{ 77 + "description" => 78 + "Age Assurance rule that applies if the account is equal-to or newer than a certain date.", 79 + "properties" => %{ 80 + "access" => %{ 81 + "ref" => "app.bsky.ageassurance.defs#access", 82 + "type" => "ref" 83 + }, 84 + "date" => %{ 85 + "description" => "The date threshold as a datetime string.", 86 + "format" => "datetime", 87 + "type" => "string" 88 + } 89 + }, 90 + "required" => ["date", "access"], 91 + "type" => "object" 92 + }, 93 + "configRegionRuleIfAccountOlderThan" => %{ 94 + "description" => 95 + "Age Assurance rule that applies if the account is older than a certain date.", 96 + "properties" => %{ 97 + "access" => %{ 98 + "ref" => "app.bsky.ageassurance.defs#access", 99 + "type" => "ref" 100 + }, 101 + "date" => %{ 102 + "description" => "The date threshold as a datetime string.", 103 + "format" => "datetime", 104 + "type" => "string" 105 + } 106 + }, 107 + "required" => ["date", "access"], 108 + "type" => "object" 109 + }, 110 + "configRegionRuleIfAssuredOverAge" => %{ 111 + "description" => 112 + "Age Assurance rule that applies if the user has been assured to be equal-to or over a certain age.", 113 + "properties" => %{ 114 + "access" => %{ 115 + "ref" => "app.bsky.ageassurance.defs#access", 116 + "type" => "ref" 117 + }, 118 + "age" => %{ 119 + "description" => "The age threshold as a whole integer.", 120 + "type" => "integer" 121 + } 122 + }, 123 + "required" => ["age", "access"], 124 + "type" => "object" 125 + }, 126 + "configRegionRuleIfAssuredUnderAge" => %{ 127 + "description" => 128 + "Age Assurance rule that applies if the user has been assured to be under a certain age.", 129 + "properties" => %{ 130 + "access" => %{ 131 + "ref" => "app.bsky.ageassurance.defs#access", 132 + "type" => "ref" 133 + }, 134 + "age" => %{ 135 + "description" => "The age threshold as a whole integer.", 136 + "type" => "integer" 137 + } 138 + }, 139 + "required" => ["age", "access"], 140 + "type" => "object" 141 + }, 142 + "configRegionRuleIfDeclaredOverAge" => %{ 143 + "description" => 144 + "Age Assurance rule that applies if the user has declared themselves equal-to or over a certain age.", 145 + "properties" => %{ 146 + "access" => %{ 147 + "ref" => "app.bsky.ageassurance.defs#access", 148 + "type" => "ref" 149 + }, 150 + "age" => %{ 151 + "description" => "The age threshold as a whole integer.", 152 + "type" => "integer" 153 + } 154 + }, 155 + "required" => ["age", "access"], 156 + "type" => "object" 157 + }, 158 + "configRegionRuleIfDeclaredUnderAge" => %{ 159 + "description" => 160 + "Age Assurance rule that applies if the user has declared themselves under a certain age.", 161 + "properties" => %{ 162 + "access" => %{ 163 + "ref" => "app.bsky.ageassurance.defs#access", 164 + "type" => "ref" 165 + }, 166 + "age" => %{ 167 + "description" => "The age threshold as a whole integer.", 168 + "type" => "integer" 169 + } 170 + }, 171 + "required" => ["age", "access"], 172 + "type" => "object" 173 + }, 174 + "event" => %{ 175 + "description" => "Object used to store Age Assurance data in stash.", 176 + "properties" => %{ 177 + "access" => %{ 178 + "description" => 179 + "The access level granted based on Age Assurance data we've processed.", 180 + "knownValues" => ["unknown", "none", "safe", "full"], 181 + "type" => "string" 182 + }, 183 + "attemptId" => %{ 184 + "description" => 185 + "The unique identifier for this instance of the Age Assurance flow, in UUID format.", 186 + "type" => "string" 187 + }, 188 + "completeIp" => %{ 189 + "description" => "The IP address used when completing the Age Assurance flow.", 190 + "type" => "string" 191 + }, 192 + "completeUa" => %{ 193 + "description" => "The user agent used when completing the Age Assurance flow.", 194 + "type" => "string" 195 + }, 196 + "countryCode" => %{ 197 + "description" => 198 + "The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow.", 199 + "type" => "string" 200 + }, 201 + "createdAt" => %{ 202 + "description" => "The date and time of this write operation.", 203 + "format" => "datetime", 204 + "type" => "string" 205 + }, 206 + "email" => %{ 207 + "description" => "The email used for Age Assurance.", 208 + "type" => "string" 209 + }, 210 + "initIp" => %{ 211 + "description" => "The IP address used when initiating the Age Assurance flow.", 212 + "type" => "string" 213 + }, 214 + "initUa" => %{ 215 + "description" => "The user agent used when initiating the Age Assurance flow.", 216 + "type" => "string" 217 + }, 218 + "regionCode" => %{ 219 + "description" => 220 + "The ISO 3166-2 region code provided when beginning the Age Assurance flow.", 221 + "type" => "string" 222 + }, 223 + "status" => %{ 224 + "description" => "The status of the Age Assurance process.", 225 + "knownValues" => ["unknown", "pending", "assured", "blocked"], 226 + "type" => "string" 227 + } 228 + }, 229 + "required" => ["createdAt", "status", "access", "attemptId", "countryCode"], 230 + "type" => "object" 231 + }, 232 + "state" => %{ 233 + "description" => "The user's computed Age Assurance state.", 234 + "properties" => %{ 235 + "access" => %{ 236 + "ref" => "app.bsky.ageassurance.defs#access", 237 + "type" => "ref" 238 + }, 239 + "lastInitiatedAt" => %{ 240 + "description" => "The timestamp when this state was last updated.", 241 + "format" => "datetime", 242 + "type" => "string" 243 + }, 244 + "status" => %{ 245 + "ref" => "app.bsky.ageassurance.defs#status", 246 + "type" => "ref" 247 + } 248 + }, 249 + "required" => ["status", "access"], 250 + "type" => "object" 251 + }, 252 + "stateMetadata" => %{ 253 + "description" => "Additional metadata needed to compute Age Assurance state client-side.", 254 + "properties" => %{ 255 + "accountCreatedAt" => %{ 256 + "description" => "The account creation timestamp.", 257 + "format" => "datetime", 258 + "type" => "string" 259 + } 260 + }, 261 + "required" => [], 262 + "type" => "object" 263 + }, 264 + "status" => %{ 265 + "description" => "The status of the Age Assurance process.", 266 + "knownValues" => ["unknown", "pending", "assured", "blocked"], 267 + "type" => "string" 268 + } 269 + }, 270 + "id" => "app.bsky.ageassurance.defs", 271 + "lexicon" => 1 272 + }) 273 + end
+22
lib/atproto/app/bsky/ageassurance/getConfig.ex
··· 1 + defmodule App.Bsky.Ageassurance.GetConfig do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Returns Age Assurance configuration for use on the client.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "ref" => "app.bsky.ageassurance.defs#config", 13 + "type" => "ref" 14 + } 15 + }, 16 + "type" => "query" 17 + } 18 + }, 19 + "id" => "app.bsky.ageassurance.getConfig", 20 + "lexicon" => 1 21 + }) 22 + end
+41
lib/atproto/app/bsky/ageassurance/getState.ex
··· 1 + defmodule App.Bsky.Ageassurance.GetState do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Returns server-computed Age Assurance state, if available, and any additional metadata needed to compute Age Assurance state client-side.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "metadata" => %{ 15 + "ref" => "app.bsky.ageassurance.defs#stateMetadata", 16 + "type" => "ref" 17 + }, 18 + "state" => %{ 19 + "ref" => "app.bsky.ageassurance.defs#state", 20 + "type" => "ref" 21 + } 22 + }, 23 + "required" => ["state", "metadata"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "countryCode" => %{"type" => "string"}, 30 + "regionCode" => %{"type" => "string"} 31 + }, 32 + "required" => ["countryCode"], 33 + "type" => "params" 34 + }, 35 + "type" => "query" 36 + } 37 + }, 38 + "id" => "app.bsky.ageassurance.getState", 39 + "lexicon" => 1 40 + }) 41 + end
+33
lib/atproto/app/bsky/bookmark/createBookmark.ex
··· 1 + defmodule App.Bsky.Bookmark.CreateBookmark do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.", 10 + "errors" => [ 11 + %{ 12 + "description" => "The URI to be bookmarked is for an unsupported collection.", 13 + "name" => "UnsupportedCollection" 14 + } 15 + ], 16 + "input" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "cid" => %{"format" => "cid", "type" => "string"}, 21 + "uri" => %{"format" => "at-uri", "type" => "string"} 22 + }, 23 + "required" => ["uri", "cid"], 24 + "type" => "object" 25 + } 26 + }, 27 + "type" => "procedure" 28 + } 29 + }, 30 + "id" => "app.bsky.bookmark.createBookmark", 31 + "lexicon" => 1 32 + }) 33 + end
+44
lib/atproto/app/bsky/bookmark/defs.ex
··· 1 + defmodule App.Bsky.Bookmark.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "bookmark" => %{ 8 + "description" => "Object used to store bookmark data in stash.", 9 + "properties" => %{ 10 + "subject" => %{ 11 + "description" => 12 + "A strong ref to the record to be bookmarked. Currently, only `app.bsky.feed.post` records are supported.", 13 + "ref" => "com.atproto.repo.strongRef", 14 + "type" => "ref" 15 + } 16 + }, 17 + "required" => ["subject"], 18 + "type" => "object" 19 + }, 20 + "bookmarkView" => %{ 21 + "properties" => %{ 22 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 23 + "item" => %{ 24 + "refs" => [ 25 + "app.bsky.feed.defs#blockedPost", 26 + "app.bsky.feed.defs#notFoundPost", 27 + "app.bsky.feed.defs#postView" 28 + ], 29 + "type" => "union" 30 + }, 31 + "subject" => %{ 32 + "description" => "A strong ref to the bookmarked record.", 33 + "ref" => "com.atproto.repo.strongRef", 34 + "type" => "ref" 35 + } 36 + }, 37 + "required" => ["subject", "item"], 38 + "type" => "object" 39 + } 40 + }, 41 + "id" => "app.bsky.bookmark.defs", 42 + "lexicon" => 1 43 + }) 44 + end
+32
lib/atproto/app/bsky/bookmark/deleteBookmark.ex
··· 1 + defmodule App.Bsky.Bookmark.DeleteBookmark do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.", 10 + "errors" => [ 11 + %{ 12 + "description" => "The URI to be bookmarked is for an unsupported collection.", 13 + "name" => "UnsupportedCollection" 14 + } 15 + ], 16 + "input" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "uri" => %{"format" => "at-uri", "type" => "string"} 21 + }, 22 + "required" => ["uri"], 23 + "type" => "object" 24 + } 25 + }, 26 + "type" => "procedure" 27 + } 28 + }, 29 + "id" => "app.bsky.bookmark.deleteBookmark", 30 + "lexicon" => 1 31 + }) 32 + end
+45
lib/atproto/app/bsky/bookmark/getBookmarks.ex
··· 1 + defmodule App.Bsky.Bookmark.GetBookmarks do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Gets views of records bookmarked by the authenticated user. Requires authentication.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "bookmarks" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.bookmark.defs#bookmarkView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "cursor" => %{"type" => "string"} 22 + }, 23 + "required" => ["bookmarks"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 50, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + } 36 + }, 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.bookmark.getBookmarks", 43 + "lexicon" => 1 44 + }) 45 + end
+65
lib/atproto/app/bsky/contact/defs.ex
··· 1 + defmodule App.Bsky.Contact.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "matchAndContactIndex" => %{ 8 + "description" => 9 + "Associates a profile with the positional index of the contact import input in the call to `app.bsky.contact.importContacts`, so clients can know which phone caused a particular match.", 10 + "properties" => %{ 11 + "contactIndex" => %{ 12 + "description" => "The index of this match in the import contact input.", 13 + "maximum" => 999, 14 + "minimum" => 0, 15 + "type" => "integer" 16 + }, 17 + "match" => %{ 18 + "description" => "Profile of the matched user.", 19 + "ref" => "app.bsky.actor.defs#profileView", 20 + "type" => "ref" 21 + } 22 + }, 23 + "required" => ["match", "contactIndex"], 24 + "type" => "object" 25 + }, 26 + "notification" => %{ 27 + "description" => 28 + "A stash object to be sent via bsync representing a notification to be created.", 29 + "properties" => %{ 30 + "from" => %{ 31 + "description" => "The DID of who this notification comes from.", 32 + "format" => "did", 33 + "type" => "string" 34 + }, 35 + "to" => %{ 36 + "description" => "The DID of who this notification should go to.", 37 + "format" => "did", 38 + "type" => "string" 39 + } 40 + }, 41 + "required" => ["from", "to"], 42 + "type" => "object" 43 + }, 44 + "syncStatus" => %{ 45 + "properties" => %{ 46 + "matchesCount" => %{ 47 + "description" => 48 + "Number of existing contact matches resulting of the user imports and of their imported contacts having imported the user. Matches stop being counted when the user either follows the matched contact or dismisses the match.", 49 + "minimum" => 0, 50 + "type" => "integer" 51 + }, 52 + "syncedAt" => %{ 53 + "description" => "Last date when contacts where imported.", 54 + "format" => "datetime", 55 + "type" => "string" 56 + } 57 + }, 58 + "required" => ["syncedAt", "matchesCount"], 59 + "type" => "object" 60 + } 61 + }, 62 + "id" => "app.bsky.contact.defs", 63 + "lexicon" => 1 64 + }) 65 + end
+35
lib/atproto/app/bsky/contact/dismissMatch.ex
··· 1 + defmodule App.Bsky.Contact.DismissMatch do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Removes a match that was found via contact import. It shouldn't appear again if the same contact is re-imported. Requires authentication.", 10 + "errors" => [%{"name" => "InvalidDid"}, %{"name" => "InternalError"}], 11 + "input" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "subject" => %{ 16 + "description" => "The subject's DID to dismiss the match with.", 17 + "format" => "did", 18 + "type" => "string" 19 + } 20 + }, 21 + "required" => ["subject"], 22 + "type" => "object" 23 + } 24 + }, 25 + "output" => %{ 26 + "encoding" => "application/json", 27 + "schema" => %{"properties" => %{}, "type" => "object"} 28 + }, 29 + "type" => "procedure" 30 + } 31 + }, 32 + "id" => "app.bsky.contact.dismissMatch", 33 + "lexicon" => 1 34 + }) 35 + end
+51
lib/atproto/app/bsky/contact/getMatches.ex
··· 1 + defmodule App.Bsky.Contact.GetMatches do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Returns the matched contacts (contacts that were mutually imported). Excludes dismissed matches. Requires authentication.", 10 + "errors" => [ 11 + %{"name" => "InvalidDid"}, 12 + %{"name" => "InvalidLimit"}, 13 + %{"name" => "InvalidCursor"}, 14 + %{"name" => "InternalError"} 15 + ], 16 + "output" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "cursor" => %{"type" => "string"}, 21 + "matches" => %{ 22 + "items" => %{ 23 + "ref" => "app.bsky.actor.defs#profileView", 24 + "type" => "ref" 25 + }, 26 + "type" => "array" 27 + } 28 + }, 29 + "required" => ["matches"], 30 + "type" => "object" 31 + } 32 + }, 33 + "parameters" => %{ 34 + "properties" => %{ 35 + "cursor" => %{"type" => "string"}, 36 + "limit" => %{ 37 + "default" => 50, 38 + "maximum" => 100, 39 + "minimum" => 1, 40 + "type" => "integer" 41 + } 42 + }, 43 + "type" => "params" 44 + }, 45 + "type" => "query" 46 + } 47 + }, 48 + "id" => "app.bsky.contact.getMatches", 49 + "lexicon" => 1 50 + }) 51 + end
+32
lib/atproto/app/bsky/contact/getSyncStatus.ex
··· 1 + defmodule App.Bsky.Contact.GetSyncStatus do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Gets the user's current contact import status. Requires authentication.", 10 + "errors" => [%{"name" => "InvalidDid"}, %{"name" => "InternalError"}], 11 + "output" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "syncStatus" => %{ 16 + "description" => 17 + "If present, indicates the user has imported their contacts. If not present, indicates the user never used the feature or called `app.bsky.contact.removeData` and didn't import again since.", 18 + "ref" => "app.bsky.contact.defs#syncStatus", 19 + "type" => "ref" 20 + } 21 + }, 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{"properties" => %{}, "type" => "params"}, 26 + "type" => "query" 27 + } 28 + }, 29 + "id" => "app.bsky.contact.getSyncStatus", 30 + "lexicon" => 1 31 + }) 32 + end
+63
lib/atproto/app/bsky/contact/importContacts.ex
··· 1 + defmodule App.Bsky.Contact.ImportContacts do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication.", 10 + "errors" => [ 11 + %{"name" => "InvalidDid"}, 12 + %{"name" => "InvalidContacts"}, 13 + %{"name" => "TooManyContacts"}, 14 + %{"name" => "InvalidToken"}, 15 + %{"name" => "InternalError"} 16 + ], 17 + "input" => %{ 18 + "encoding" => "application/json", 19 + "schema" => %{ 20 + "properties" => %{ 21 + "contacts" => %{ 22 + "description" => 23 + "List of phone numbers in global E.164 format (e.g., '+12125550123'). Phone numbers that cannot be normalized into a valid phone number will be discarded. Should not repeat the 'phone' input used in `app.bsky.contact.verifyPhone`.", 24 + "items" => %{"type" => "string"}, 25 + "maxLength" => 1000, 26 + "minLength" => 1, 27 + "type" => "array" 28 + }, 29 + "token" => %{ 30 + "description" => 31 + "JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`.", 32 + "type" => "string" 33 + } 34 + }, 35 + "required" => ["token", "contacts"], 36 + "type" => "object" 37 + } 38 + }, 39 + "output" => %{ 40 + "encoding" => "application/json", 41 + "schema" => %{ 42 + "properties" => %{ 43 + "matchesAndContactIndexes" => %{ 44 + "description" => 45 + "The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list.", 46 + "items" => %{ 47 + "ref" => "app.bsky.contact.defs#matchAndContactIndex", 48 + "type" => "ref" 49 + }, 50 + "type" => "array" 51 + } 52 + }, 53 + "required" => ["matchesAndContactIndexes"], 54 + "type" => "object" 55 + } 56 + }, 57 + "type" => "procedure" 58 + } 59 + }, 60 + "id" => "app.bsky.contact.importContacts", 61 + "lexicon" => 1 62 + }) 63 + end
+25
lib/atproto/app/bsky/contact/removeData.ex
··· 1 + defmodule App.Bsky.Contact.RemoveData do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Removes all stored hashes used for contact matching, existing matches, and sync status. Requires authentication.", 10 + "errors" => [%{"name" => "InvalidDid"}, %{"name" => "InternalError"}], 11 + "input" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{"properties" => %{}, "type" => "object"} 14 + }, 15 + "output" => %{ 16 + "encoding" => "application/json", 17 + "schema" => %{"properties" => %{}, "type" => "object"} 18 + }, 19 + "type" => "procedure" 20 + } 21 + }, 22 + "id" => "app.bsky.contact.removeData", 23 + "lexicon" => 1 24 + }) 25 + end
+39
lib/atproto/app/bsky/contact/sendNotification.ex
··· 1 + defmodule App.Bsky.Contact.SendNotification do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "System endpoint to send notifications related to contact imports. Requires role authentication.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "from" => %{ 15 + "description" => "The DID of who this notification comes from.", 16 + "format" => "did", 17 + "type" => "string" 18 + }, 19 + "to" => %{ 20 + "description" => "The DID of who this notification should go to.", 21 + "format" => "did", 22 + "type" => "string" 23 + } 24 + }, 25 + "required" => ["from", "to"], 26 + "type" => "object" 27 + } 28 + }, 29 + "output" => %{ 30 + "encoding" => "application/json", 31 + "schema" => %{"properties" => %{}, "type" => "object"} 32 + }, 33 + "type" => "procedure" 34 + } 35 + }, 36 + "id" => "app.bsky.contact.sendNotification", 37 + "lexicon" => 1 38 + }) 39 + end
+39
lib/atproto/app/bsky/contact/startPhoneVerification.ex
··· 1 + defmodule App.Bsky.Contact.StartPhoneVerification do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Starts a phone verification flow. The phone passed will receive a code via SMS that should be passed to `app.bsky.contact.verifyPhone`. Requires authentication.", 10 + "errors" => [ 11 + %{"name" => "RateLimitExceeded"}, 12 + %{"name" => "InvalidDid"}, 13 + %{"name" => "InvalidPhone"}, 14 + %{"name" => "InternalError"} 15 + ], 16 + "input" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "phone" => %{ 21 + "description" => "The phone number to receive the code via SMS.", 22 + "type" => "string" 23 + } 24 + }, 25 + "required" => ["phone"], 26 + "type" => "object" 27 + } 28 + }, 29 + "output" => %{ 30 + "encoding" => "application/json", 31 + "schema" => %{"properties" => %{}, "type" => "object"} 32 + }, 33 + "type" => "procedure" 34 + } 35 + }, 36 + "id" => "app.bsky.contact.startPhoneVerification", 37 + "lexicon" => 1 38 + }) 39 + end
+56
lib/atproto/app/bsky/contact/verifyPhone.ex
··· 1 + defmodule App.Bsky.Contact.VerifyPhone do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication.", 10 + "errors" => [ 11 + %{"name" => "RateLimitExceeded"}, 12 + %{"name" => "InvalidDid"}, 13 + %{"name" => "InvalidPhone"}, 14 + %{"name" => "InvalidCode"}, 15 + %{"name" => "InternalError"} 16 + ], 17 + "input" => %{ 18 + "encoding" => "application/json", 19 + "schema" => %{ 20 + "properties" => %{ 21 + "code" => %{ 22 + "description" => 23 + "The code received via SMS as a result of the call to `app.bsky.contact.startPhoneVerification`.", 24 + "type" => "string" 25 + }, 26 + "phone" => %{ 27 + "description" => 28 + "The phone number to verify. Should be the same as the one passed to `app.bsky.contact.startPhoneVerification`.", 29 + "type" => "string" 30 + } 31 + }, 32 + "required" => ["phone", "code"], 33 + "type" => "object" 34 + } 35 + }, 36 + "output" => %{ 37 + "encoding" => "application/json", 38 + "schema" => %{ 39 + "properties" => %{ 40 + "token" => %{ 41 + "description" => 42 + "JWT to be used in a call to `app.bsky.contact.importContacts`. It is only valid for a single call.", 43 + "type" => "string" 44 + } 45 + }, 46 + "required" => ["token"], 47 + "type" => "object" 48 + } 49 + }, 50 + "type" => "procedure" 51 + } 52 + }, 53 + "id" => "app.bsky.contact.verifyPhone", 54 + "lexicon" => 1 55 + }) 56 + end
+45
lib/atproto/app/bsky/draft/createDraft.ex
··· 1 + defmodule App.Bsky.Draft.CreateDraft do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Inserts a draft using private storage (stash). An upper limit of drafts might be enforced. Requires authentication.", 10 + "errors" => [ 11 + %{ 12 + "description" => "Trying to insert a new draft when the limit was already reached.", 13 + "name" => "DraftLimitReached" 14 + } 15 + ], 16 + "input" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "draft" => %{"ref" => "app.bsky.draft.defs#draft", "type" => "ref"} 21 + }, 22 + "required" => ["draft"], 23 + "type" => "object" 24 + } 25 + }, 26 + "output" => %{ 27 + "encoding" => "application/json", 28 + "schema" => %{ 29 + "properties" => %{ 30 + "id" => %{ 31 + "description" => "The ID of the created draft.", 32 + "type" => "string" 33 + } 34 + }, 35 + "required" => ["id"], 36 + "type" => "object" 37 + } 38 + }, 39 + "type" => "procedure" 40 + } 41 + }, 42 + "id" => "app.bsky.draft.createDraft", 43 + "lexicon" => 1 44 + }) 45 + end
+196
lib/atproto/app/bsky/draft/defs.ex
··· 1 + defmodule App.Bsky.Draft.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "draft" => %{ 8 + "description" => "A draft containing an array of draft posts.", 9 + "properties" => %{ 10 + "deviceId" => %{ 11 + "description" => "UUIDv4 identifier of the device that created this draft.", 12 + "maxLength" => 100, 13 + "type" => "string" 14 + }, 15 + "deviceName" => %{ 16 + "description" => "The device and/or platform on which the draft was created.", 17 + "maxLength" => 100, 18 + "type" => "string" 19 + }, 20 + "langs" => %{ 21 + "description" => "Indicates human language of posts primary text content.", 22 + "items" => %{"format" => "language", "type" => "string"}, 23 + "maxLength" => 3, 24 + "type" => "array" 25 + }, 26 + "postgateEmbeddingRules" => %{ 27 + "description" => 28 + "Embedding rules for the postgates to be created when this draft is published.", 29 + "items" => %{ 30 + "refs" => ["app.bsky.feed.postgate#disableRule"], 31 + "type" => "union" 32 + }, 33 + "maxLength" => 5, 34 + "type" => "array" 35 + }, 36 + "posts" => %{ 37 + "description" => "Array of draft posts that compose this draft.", 38 + "items" => %{"ref" => "#draftPost", "type" => "ref"}, 39 + "maxLength" => 100, 40 + "minLength" => 1, 41 + "type" => "array" 42 + }, 43 + "threadgateAllow" => %{ 44 + "description" => 45 + "Allow-rules for the threadgate to be created when this draft is published.", 46 + "items" => %{ 47 + "refs" => [ 48 + "app.bsky.feed.threadgate#mentionRule", 49 + "app.bsky.feed.threadgate#followerRule", 50 + "app.bsky.feed.threadgate#followingRule", 51 + "app.bsky.feed.threadgate#listRule" 52 + ], 53 + "type" => "union" 54 + }, 55 + "maxLength" => 5, 56 + "type" => "array" 57 + } 58 + }, 59 + "required" => ["posts"], 60 + "type" => "object" 61 + }, 62 + "draftEmbedCaption" => %{ 63 + "properties" => %{ 64 + "content" => %{"maxLength" => 10000, "type" => "string"}, 65 + "lang" => %{"format" => "language", "type" => "string"} 66 + }, 67 + "required" => ["lang", "content"], 68 + "type" => "object" 69 + }, 70 + "draftEmbedExternal" => %{ 71 + "properties" => %{"uri" => %{"format" => "uri", "type" => "string"}}, 72 + "required" => ["uri"], 73 + "type" => "object" 74 + }, 75 + "draftEmbedImage" => %{ 76 + "properties" => %{ 77 + "alt" => %{"maxGraphemes" => 2000, "type" => "string"}, 78 + "localRef" => %{"ref" => "#draftEmbedLocalRef", "type" => "ref"} 79 + }, 80 + "required" => ["localRef"], 81 + "type" => "object" 82 + }, 83 + "draftEmbedLocalRef" => %{ 84 + "properties" => %{ 85 + "path" => %{ 86 + "description" => 87 + "Local, on-device ref to file to be embedded. Embeds are currently device-bound for drafts.", 88 + "maxLength" => 1024, 89 + "minLength" => 1, 90 + "type" => "string" 91 + } 92 + }, 93 + "required" => ["path"], 94 + "type" => "object" 95 + }, 96 + "draftEmbedRecord" => %{ 97 + "properties" => %{ 98 + "record" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"} 99 + }, 100 + "required" => ["record"], 101 + "type" => "object" 102 + }, 103 + "draftEmbedVideo" => %{ 104 + "properties" => %{ 105 + "alt" => %{"maxGraphemes" => 2000, "type" => "string"}, 106 + "captions" => %{ 107 + "items" => %{"ref" => "#draftEmbedCaption", "type" => "ref"}, 108 + "maxLength" => 20, 109 + "type" => "array" 110 + }, 111 + "localRef" => %{"ref" => "#draftEmbedLocalRef", "type" => "ref"} 112 + }, 113 + "required" => ["localRef"], 114 + "type" => "object" 115 + }, 116 + "draftPost" => %{ 117 + "description" => "One of the posts that compose a draft.", 118 + "properties" => %{ 119 + "embedExternals" => %{ 120 + "items" => %{"ref" => "#draftEmbedExternal", "type" => "ref"}, 121 + "maxLength" => 1, 122 + "type" => "array" 123 + }, 124 + "embedImages" => %{ 125 + "items" => %{"ref" => "#draftEmbedImage", "type" => "ref"}, 126 + "maxLength" => 4, 127 + "type" => "array" 128 + }, 129 + "embedRecords" => %{ 130 + "items" => %{"ref" => "#draftEmbedRecord", "type" => "ref"}, 131 + "maxLength" => 1, 132 + "type" => "array" 133 + }, 134 + "embedVideos" => %{ 135 + "items" => %{"ref" => "#draftEmbedVideo", "type" => "ref"}, 136 + "maxLength" => 1, 137 + "type" => "array" 138 + }, 139 + "labels" => %{ 140 + "description" => "Self-label values for this post. Effectively content warnings.", 141 + "refs" => ["com.atproto.label.defs#selfLabels"], 142 + "type" => "union" 143 + }, 144 + "text" => %{ 145 + "description" => 146 + "The primary post content. It has a higher limit than post contents to allow storing a larger text that can later be refined into smaller posts.", 147 + "maxGraphemes" => 1000, 148 + "maxLength" => 10000, 149 + "type" => "string" 150 + } 151 + }, 152 + "required" => ["text"], 153 + "type" => "object" 154 + }, 155 + "draftView" => %{ 156 + "description" => "View to present drafts data to users.", 157 + "properties" => %{ 158 + "createdAt" => %{ 159 + "description" => "The time the draft was created.", 160 + "format" => "datetime", 161 + "type" => "string" 162 + }, 163 + "draft" => %{"ref" => "#draft", "type" => "ref"}, 164 + "id" => %{ 165 + "description" => "A TID to be used as a draft identifier.", 166 + "format" => "tid", 167 + "type" => "string" 168 + }, 169 + "updatedAt" => %{ 170 + "description" => "The time the draft was last updated.", 171 + "format" => "datetime", 172 + "type" => "string" 173 + } 174 + }, 175 + "required" => ["id", "draft", "createdAt", "updatedAt"], 176 + "type" => "object" 177 + }, 178 + "draftWithId" => %{ 179 + "description" => 180 + "A draft with an identifier, used to store drafts in private storage (stash).", 181 + "properties" => %{ 182 + "draft" => %{"ref" => "#draft", "type" => "ref"}, 183 + "id" => %{ 184 + "description" => "A TID to be used as a draft identifier.", 185 + "format" => "tid", 186 + "type" => "string" 187 + } 188 + }, 189 + "required" => ["id", "draft"], 190 + "type" => "object" 191 + } 192 + }, 193 + "id" => "app.bsky.draft.defs", 194 + "lexicon" => 1 195 + }) 196 + end
+23
lib/atproto/app/bsky/draft/deleteDraft.ex
··· 1 + defmodule App.Bsky.Draft.DeleteDraft do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Deletes a draft by ID. Requires authentication.", 9 + "input" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{"id" => %{"format" => "tid", "type" => "string"}}, 13 + "required" => ["id"], 14 + "type" => "object" 15 + } 16 + }, 17 + "type" => "procedure" 18 + } 19 + }, 20 + "id" => "app.bsky.draft.deleteDraft", 21 + "lexicon" => 1 22 + }) 23 + end
+44
lib/atproto/app/bsky/draft/getDrafts.ex
··· 1 + defmodule App.Bsky.Draft.GetDrafts do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Gets views of user drafts. Requires authentication.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "drafts" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.draft.defs#draftView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + } 21 + }, 22 + "required" => ["drafts"], 23 + "type" => "object" 24 + } 25 + }, 26 + "parameters" => %{ 27 + "properties" => %{ 28 + "cursor" => %{"type" => "string"}, 29 + "limit" => %{ 30 + "default" => 50, 31 + "maximum" => 100, 32 + "minimum" => 1, 33 + "type" => "integer" 34 + } 35 + }, 36 + "type" => "params" 37 + }, 38 + "type" => "query" 39 + } 40 + }, 41 + "id" => "app.bsky.draft.getDrafts", 42 + "lexicon" => 1 43 + }) 44 + end
+29
lib/atproto/app/bsky/draft/updateDraft.ex
··· 1 + defmodule App.Bsky.Draft.UpdateDraft do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Updates a draft using private storage (stash). If the draft ID points to a non-existing ID, the update will be silently ignored. This is done because updates don't enforce draft limit, so it accepts all writes, but will ignore invalid ones. Requires authentication.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "draft" => %{ 15 + "ref" => "app.bsky.draft.defs#draftWithId", 16 + "type" => "ref" 17 + } 18 + }, 19 + "required" => ["draft"], 20 + "type" => "object" 21 + } 22 + }, 23 + "type" => "procedure" 24 + } 25 + }, 26 + "id" => "app.bsky.draft.updateDraft", 27 + "lexicon" => 1 28 + }) 29 + end
+21
lib/atproto/app/bsky/embed/defs.ex
··· 1 + defmodule App.Bsky.Embed.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "aspectRatio" => %{ 8 + "description" => 9 + "width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit.", 10 + "properties" => %{ 11 + "height" => %{"minimum" => 1, "type" => "integer"}, 12 + "width" => %{"minimum" => 1, "type" => "integer"} 13 + }, 14 + "required" => ["width", "height"], 15 + "type" => "object" 16 + } 17 + }, 18 + "id" => "app.bsky.embed.defs", 19 + "lexicon" => 1 20 + }) 21 + end
+49
lib/atproto/app/bsky/embed/external.ex
··· 1 + defmodule App.Bsky.Embed.External do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "external" => %{ 8 + "properties" => %{ 9 + "description" => %{"type" => "string"}, 10 + "thumb" => %{ 11 + "accept" => ["image/*"], 12 + "maxSize" => 1_000_000, 13 + "type" => "blob" 14 + }, 15 + "title" => %{"type" => "string"}, 16 + "uri" => %{"format" => "uri", "type" => "string"} 17 + }, 18 + "required" => ["uri", "title", "description"], 19 + "type" => "object" 20 + }, 21 + "main" => %{ 22 + "description" => 23 + "A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).", 24 + "properties" => %{"external" => %{"ref" => "#external", "type" => "ref"}}, 25 + "required" => ["external"], 26 + "type" => "object" 27 + }, 28 + "view" => %{ 29 + "properties" => %{ 30 + "external" => %{"ref" => "#viewExternal", "type" => "ref"} 31 + }, 32 + "required" => ["external"], 33 + "type" => "object" 34 + }, 35 + "viewExternal" => %{ 36 + "properties" => %{ 37 + "description" => %{"type" => "string"}, 38 + "thumb" => %{"format" => "uri", "type" => "string"}, 39 + "title" => %{"type" => "string"}, 40 + "uri" => %{"format" => "uri", "type" => "string"} 41 + }, 42 + "required" => ["uri", "title", "description"], 43 + "type" => "object" 44 + } 45 + }, 46 + "id" => "app.bsky.embed.external", 47 + "lexicon" => 1 48 + }) 49 + end
+79
lib/atproto/app/bsky/embed/images.ex
··· 1 + defmodule App.Bsky.Embed.Images do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "image" => %{ 8 + "properties" => %{ 9 + "alt" => %{ 10 + "description" => "Alt text description of the image, for accessibility.", 11 + "type" => "string" 12 + }, 13 + "aspectRatio" => %{ 14 + "ref" => "app.bsky.embed.defs#aspectRatio", 15 + "type" => "ref" 16 + }, 17 + "image" => %{ 18 + "accept" => ["image/*"], 19 + "maxSize" => 1_000_000, 20 + "type" => "blob" 21 + } 22 + }, 23 + "required" => ["image", "alt"], 24 + "type" => "object" 25 + }, 26 + "main" => %{ 27 + "properties" => %{ 28 + "images" => %{ 29 + "items" => %{"ref" => "#image", "type" => "ref"}, 30 + "maxLength" => 4, 31 + "type" => "array" 32 + } 33 + }, 34 + "required" => ["images"], 35 + "type" => "object" 36 + }, 37 + "view" => %{ 38 + "properties" => %{ 39 + "images" => %{ 40 + "items" => %{"ref" => "#viewImage", "type" => "ref"}, 41 + "maxLength" => 4, 42 + "type" => "array" 43 + } 44 + }, 45 + "required" => ["images"], 46 + "type" => "object" 47 + }, 48 + "viewImage" => %{ 49 + "properties" => %{ 50 + "alt" => %{ 51 + "description" => "Alt text description of the image, for accessibility.", 52 + "type" => "string" 53 + }, 54 + "aspectRatio" => %{ 55 + "ref" => "app.bsky.embed.defs#aspectRatio", 56 + "type" => "ref" 57 + }, 58 + "fullsize" => %{ 59 + "description" => 60 + "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.", 61 + "format" => "uri", 62 + "type" => "string" 63 + }, 64 + "thumb" => %{ 65 + "description" => 66 + "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View.", 67 + "format" => "uri", 68 + "type" => "string" 69 + } 70 + }, 71 + "required" => ["thumb", "fullsize", "alt"], 72 + "type" => "object" 73 + } 74 + }, 75 + "description" => "A set of images embedded in a Bluesky record (eg, a post).", 76 + "id" => "app.bsky.embed.images", 77 + "lexicon" => 1 78 + }) 79 + end
+105
lib/atproto/app/bsky/embed/record.ex
··· 1 + defmodule App.Bsky.Embed.Record do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "properties" => %{ 9 + "record" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"} 10 + }, 11 + "required" => ["record"], 12 + "type" => "object" 13 + }, 14 + "view" => %{ 15 + "properties" => %{ 16 + "record" => %{ 17 + "refs" => [ 18 + "#viewRecord", 19 + "#viewNotFound", 20 + "#viewBlocked", 21 + "#viewDetached", 22 + "app.bsky.feed.defs#generatorView", 23 + "app.bsky.graph.defs#listView", 24 + "app.bsky.labeler.defs#labelerView", 25 + "app.bsky.graph.defs#starterPackViewBasic" 26 + ], 27 + "type" => "union" 28 + } 29 + }, 30 + "required" => ["record"], 31 + "type" => "object" 32 + }, 33 + "viewBlocked" => %{ 34 + "properties" => %{ 35 + "author" => %{ 36 + "ref" => "app.bsky.feed.defs#blockedAuthor", 37 + "type" => "ref" 38 + }, 39 + "blocked" => %{"const" => true, "type" => "boolean"}, 40 + "uri" => %{"format" => "at-uri", "type" => "string"} 41 + }, 42 + "required" => ["uri", "blocked", "author"], 43 + "type" => "object" 44 + }, 45 + "viewDetached" => %{ 46 + "properties" => %{ 47 + "detached" => %{"const" => true, "type" => "boolean"}, 48 + "uri" => %{"format" => "at-uri", "type" => "string"} 49 + }, 50 + "required" => ["uri", "detached"], 51 + "type" => "object" 52 + }, 53 + "viewNotFound" => %{ 54 + "properties" => %{ 55 + "notFound" => %{"const" => true, "type" => "boolean"}, 56 + "uri" => %{"format" => "at-uri", "type" => "string"} 57 + }, 58 + "required" => ["uri", "notFound"], 59 + "type" => "object" 60 + }, 61 + "viewRecord" => %{ 62 + "properties" => %{ 63 + "author" => %{ 64 + "ref" => "app.bsky.actor.defs#profileViewBasic", 65 + "type" => "ref" 66 + }, 67 + "cid" => %{"format" => "cid", "type" => "string"}, 68 + "embeds" => %{ 69 + "items" => %{ 70 + "refs" => [ 71 + "app.bsky.embed.images#view", 72 + "app.bsky.embed.video#view", 73 + "app.bsky.embed.external#view", 74 + "app.bsky.embed.record#view", 75 + "app.bsky.embed.recordWithMedia#view" 76 + ], 77 + "type" => "union" 78 + }, 79 + "type" => "array" 80 + }, 81 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 82 + "labels" => %{ 83 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 84 + "type" => "array" 85 + }, 86 + "likeCount" => %{"type" => "integer"}, 87 + "quoteCount" => %{"type" => "integer"}, 88 + "replyCount" => %{"type" => "integer"}, 89 + "repostCount" => %{"type" => "integer"}, 90 + "uri" => %{"format" => "at-uri", "type" => "string"}, 91 + "value" => %{ 92 + "description" => "The record data itself.", 93 + "type" => "unknown" 94 + } 95 + }, 96 + "required" => ["uri", "cid", "author", "value", "indexedAt"], 97 + "type" => "object" 98 + } 99 + }, 100 + "description" => 101 + "A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record.", 102 + "id" => "app.bsky.embed.record", 103 + "lexicon" => 1 104 + }) 105 + end
+39
lib/atproto/app/bsky/embed/recordWithMedia.ex
··· 1 + defmodule App.Bsky.Embed.RecordWithMedia do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "properties" => %{ 9 + "media" => %{ 10 + "refs" => ["app.bsky.embed.images", "app.bsky.embed.video", "app.bsky.embed.external"], 11 + "type" => "union" 12 + }, 13 + "record" => %{"ref" => "app.bsky.embed.record", "type" => "ref"} 14 + }, 15 + "required" => ["record", "media"], 16 + "type" => "object" 17 + }, 18 + "view" => %{ 19 + "properties" => %{ 20 + "media" => %{ 21 + "refs" => [ 22 + "app.bsky.embed.images#view", 23 + "app.bsky.embed.video#view", 24 + "app.bsky.embed.external#view" 25 + ], 26 + "type" => "union" 27 + }, 28 + "record" => %{"ref" => "app.bsky.embed.record#view", "type" => "ref"} 29 + }, 30 + "required" => ["record", "media"], 31 + "type" => "object" 32 + } 33 + }, 34 + "description" => 35 + "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.", 36 + "id" => "app.bsky.embed.recordWithMedia", 37 + "lexicon" => 1 38 + }) 39 + end
+79
lib/atproto/app/bsky/embed/video.ex
··· 1 + defmodule App.Bsky.Embed.Video do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "caption" => %{ 8 + "properties" => %{ 9 + "file" => %{ 10 + "accept" => ["text/vtt"], 11 + "maxSize" => 20000, 12 + "type" => "blob" 13 + }, 14 + "lang" => %{"format" => "language", "type" => "string"} 15 + }, 16 + "required" => ["lang", "file"], 17 + "type" => "object" 18 + }, 19 + "main" => %{ 20 + "properties" => %{ 21 + "alt" => %{ 22 + "description" => "Alt text description of the video, for accessibility.", 23 + "maxGraphemes" => 1000, 24 + "maxLength" => 10000, 25 + "type" => "string" 26 + }, 27 + "aspectRatio" => %{ 28 + "ref" => "app.bsky.embed.defs#aspectRatio", 29 + "type" => "ref" 30 + }, 31 + "captions" => %{ 32 + "items" => %{"ref" => "#caption", "type" => "ref"}, 33 + "maxLength" => 20, 34 + "type" => "array" 35 + }, 36 + "presentation" => %{ 37 + "description" => "A hint to the client about how to present the video.", 38 + "knownValues" => ["default", "gif"], 39 + "type" => "string" 40 + }, 41 + "video" => %{ 42 + "accept" => ["video/mp4"], 43 + "description" => "The mp4 video file. May be up to 100mb, formerly limited to 50mb.", 44 + "maxSize" => 100_000_000, 45 + "type" => "blob" 46 + } 47 + }, 48 + "required" => ["video"], 49 + "type" => "object" 50 + }, 51 + "view" => %{ 52 + "properties" => %{ 53 + "alt" => %{ 54 + "maxGraphemes" => 1000, 55 + "maxLength" => 10000, 56 + "type" => "string" 57 + }, 58 + "aspectRatio" => %{ 59 + "ref" => "app.bsky.embed.defs#aspectRatio", 60 + "type" => "ref" 61 + }, 62 + "cid" => %{"format" => "cid", "type" => "string"}, 63 + "playlist" => %{"format" => "uri", "type" => "string"}, 64 + "presentation" => %{ 65 + "description" => "A hint to the client about how to present the video.", 66 + "knownValues" => ["default", "gif"], 67 + "type" => "string" 68 + }, 69 + "thumbnail" => %{"format" => "uri", "type" => "string"} 70 + }, 71 + "required" => ["cid", "playlist"], 72 + "type" => "object" 73 + } 74 + }, 75 + "description" => "A video embedded in a Bluesky record (eg, a post).", 76 + "id" => "app.bsky.embed.video", 77 + "lexicon" => 1 78 + }) 79 + end
+351
lib/atproto/app/bsky/feed/defs.ex
··· 1 + defmodule App.Bsky.Feed.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "blockedAuthor" => %{ 8 + "properties" => %{ 9 + "did" => %{"format" => "did", "type" => "string"}, 10 + "viewer" => %{ 11 + "ref" => "app.bsky.actor.defs#viewerState", 12 + "type" => "ref" 13 + } 14 + }, 15 + "required" => ["did"], 16 + "type" => "object" 17 + }, 18 + "blockedPost" => %{ 19 + "properties" => %{ 20 + "author" => %{"ref" => "#blockedAuthor", "type" => "ref"}, 21 + "blocked" => %{"const" => true, "type" => "boolean"}, 22 + "uri" => %{"format" => "at-uri", "type" => "string"} 23 + }, 24 + "required" => ["uri", "blocked", "author"], 25 + "type" => "object" 26 + }, 27 + "clickthroughAuthor" => %{ 28 + "description" => "User clicked through to the author of the feed item", 29 + "type" => "token" 30 + }, 31 + "clickthroughEmbed" => %{ 32 + "description" => "User clicked through to the embedded content of the feed item", 33 + "type" => "token" 34 + }, 35 + "clickthroughItem" => %{ 36 + "description" => "User clicked through to the feed item", 37 + "type" => "token" 38 + }, 39 + "clickthroughReposter" => %{ 40 + "description" => "User clicked through to the reposter of the feed item", 41 + "type" => "token" 42 + }, 43 + "contentModeUnspecified" => %{ 44 + "description" => "Declares the feed generator returns any types of posts.", 45 + "type" => "token" 46 + }, 47 + "contentModeVideo" => %{ 48 + "description" => 49 + "Declares the feed generator returns posts containing app.bsky.embed.video embeds.", 50 + "type" => "token" 51 + }, 52 + "feedViewPost" => %{ 53 + "properties" => %{ 54 + "feedContext" => %{ 55 + "description" => 56 + "Context provided by feed generator that may be passed back alongside interactions.", 57 + "maxLength" => 2000, 58 + "type" => "string" 59 + }, 60 + "post" => %{"ref" => "#postView", "type" => "ref"}, 61 + "reason" => %{ 62 + "refs" => ["#reasonRepost", "#reasonPin"], 63 + "type" => "union" 64 + }, 65 + "reply" => %{"ref" => "#replyRef", "type" => "ref"}, 66 + "reqId" => %{ 67 + "description" => 68 + "Unique identifier per request that may be passed back alongside interactions.", 69 + "maxLength" => 100, 70 + "type" => "string" 71 + } 72 + }, 73 + "required" => ["post"], 74 + "type" => "object" 75 + }, 76 + "generatorView" => %{ 77 + "properties" => %{ 78 + "acceptsInteractions" => %{"type" => "boolean"}, 79 + "avatar" => %{"format" => "uri", "type" => "string"}, 80 + "cid" => %{"format" => "cid", "type" => "string"}, 81 + "contentMode" => %{ 82 + "knownValues" => [ 83 + "app.bsky.feed.defs#contentModeUnspecified", 84 + "app.bsky.feed.defs#contentModeVideo" 85 + ], 86 + "type" => "string" 87 + }, 88 + "creator" => %{ 89 + "ref" => "app.bsky.actor.defs#profileView", 90 + "type" => "ref" 91 + }, 92 + "description" => %{ 93 + "maxGraphemes" => 300, 94 + "maxLength" => 3000, 95 + "type" => "string" 96 + }, 97 + "descriptionFacets" => %{ 98 + "items" => %{"ref" => "app.bsky.richtext.facet", "type" => "ref"}, 99 + "type" => "array" 100 + }, 101 + "did" => %{"format" => "did", "type" => "string"}, 102 + "displayName" => %{"type" => "string"}, 103 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 104 + "labels" => %{ 105 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 106 + "type" => "array" 107 + }, 108 + "likeCount" => %{"minimum" => 0, "type" => "integer"}, 109 + "uri" => %{"format" => "at-uri", "type" => "string"}, 110 + "viewer" => %{"ref" => "#generatorViewerState", "type" => "ref"} 111 + }, 112 + "required" => ["uri", "cid", "did", "creator", "displayName", "indexedAt"], 113 + "type" => "object" 114 + }, 115 + "generatorViewerState" => %{ 116 + "properties" => %{"like" => %{"format" => "at-uri", "type" => "string"}}, 117 + "type" => "object" 118 + }, 119 + "interaction" => %{ 120 + "properties" => %{ 121 + "event" => %{ 122 + "knownValues" => [ 123 + "app.bsky.feed.defs#requestLess", 124 + "app.bsky.feed.defs#requestMore", 125 + "app.bsky.feed.defs#clickthroughItem", 126 + "app.bsky.feed.defs#clickthroughAuthor", 127 + "app.bsky.feed.defs#clickthroughReposter", 128 + "app.bsky.feed.defs#clickthroughEmbed", 129 + "app.bsky.feed.defs#interactionSeen", 130 + "app.bsky.feed.defs#interactionLike", 131 + "app.bsky.feed.defs#interactionRepost", 132 + "app.bsky.feed.defs#interactionReply", 133 + "app.bsky.feed.defs#interactionQuote", 134 + "app.bsky.feed.defs#interactionShare" 135 + ], 136 + "type" => "string" 137 + }, 138 + "feedContext" => %{ 139 + "description" => 140 + "Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton.", 141 + "maxLength" => 2000, 142 + "type" => "string" 143 + }, 144 + "item" => %{"format" => "at-uri", "type" => "string"}, 145 + "reqId" => %{ 146 + "description" => 147 + "Unique identifier per request that may be passed back alongside interactions.", 148 + "maxLength" => 100, 149 + "type" => "string" 150 + } 151 + }, 152 + "type" => "object" 153 + }, 154 + "interactionLike" => %{ 155 + "description" => "User liked the feed item", 156 + "type" => "token" 157 + }, 158 + "interactionQuote" => %{ 159 + "description" => "User quoted the feed item", 160 + "type" => "token" 161 + }, 162 + "interactionReply" => %{ 163 + "description" => "User replied to the feed item", 164 + "type" => "token" 165 + }, 166 + "interactionRepost" => %{ 167 + "description" => "User reposted the feed item", 168 + "type" => "token" 169 + }, 170 + "interactionSeen" => %{ 171 + "description" => "Feed item was seen by user", 172 + "type" => "token" 173 + }, 174 + "interactionShare" => %{ 175 + "description" => "User shared the feed item", 176 + "type" => "token" 177 + }, 178 + "notFoundPost" => %{ 179 + "properties" => %{ 180 + "notFound" => %{"const" => true, "type" => "boolean"}, 181 + "uri" => %{"format" => "at-uri", "type" => "string"} 182 + }, 183 + "required" => ["uri", "notFound"], 184 + "type" => "object" 185 + }, 186 + "postView" => %{ 187 + "properties" => %{ 188 + "author" => %{ 189 + "ref" => "app.bsky.actor.defs#profileViewBasic", 190 + "type" => "ref" 191 + }, 192 + "bookmarkCount" => %{"type" => "integer"}, 193 + "cid" => %{"format" => "cid", "type" => "string"}, 194 + "debug" => %{ 195 + "description" => "Debug information for internal development", 196 + "type" => "unknown" 197 + }, 198 + "embed" => %{ 199 + "refs" => [ 200 + "app.bsky.embed.images#view", 201 + "app.bsky.embed.video#view", 202 + "app.bsky.embed.external#view", 203 + "app.bsky.embed.record#view", 204 + "app.bsky.embed.recordWithMedia#view" 205 + ], 206 + "type" => "union" 207 + }, 208 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 209 + "labels" => %{ 210 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 211 + "type" => "array" 212 + }, 213 + "likeCount" => %{"type" => "integer"}, 214 + "quoteCount" => %{"type" => "integer"}, 215 + "record" => %{"type" => "unknown"}, 216 + "replyCount" => %{"type" => "integer"}, 217 + "repostCount" => %{"type" => "integer"}, 218 + "threadgate" => %{"ref" => "#threadgateView", "type" => "ref"}, 219 + "uri" => %{"format" => "at-uri", "type" => "string"}, 220 + "viewer" => %{"ref" => "#viewerState", "type" => "ref"} 221 + }, 222 + "required" => ["uri", "cid", "author", "record", "indexedAt"], 223 + "type" => "object" 224 + }, 225 + "reasonPin" => %{"properties" => %{}, "type" => "object"}, 226 + "reasonRepost" => %{ 227 + "properties" => %{ 228 + "by" => %{ 229 + "ref" => "app.bsky.actor.defs#profileViewBasic", 230 + "type" => "ref" 231 + }, 232 + "cid" => %{"format" => "cid", "type" => "string"}, 233 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 234 + "uri" => %{"format" => "at-uri", "type" => "string"} 235 + }, 236 + "required" => ["by", "indexedAt"], 237 + "type" => "object" 238 + }, 239 + "replyRef" => %{ 240 + "properties" => %{ 241 + "grandparentAuthor" => %{ 242 + "description" => 243 + "When parent is a reply to another post, this is the author of that post.", 244 + "ref" => "app.bsky.actor.defs#profileViewBasic", 245 + "type" => "ref" 246 + }, 247 + "parent" => %{ 248 + "refs" => ["#postView", "#notFoundPost", "#blockedPost"], 249 + "type" => "union" 250 + }, 251 + "root" => %{ 252 + "refs" => ["#postView", "#notFoundPost", "#blockedPost"], 253 + "type" => "union" 254 + } 255 + }, 256 + "required" => ["root", "parent"], 257 + "type" => "object" 258 + }, 259 + "requestLess" => %{ 260 + "description" => 261 + "Request that less content like the given feed item be shown in the feed", 262 + "type" => "token" 263 + }, 264 + "requestMore" => %{ 265 + "description" => 266 + "Request that more content like the given feed item be shown in the feed", 267 + "type" => "token" 268 + }, 269 + "skeletonFeedPost" => %{ 270 + "properties" => %{ 271 + "feedContext" => %{ 272 + "description" => 273 + "Context that will be passed through to client and may be passed to feed generator back alongside interactions.", 274 + "maxLength" => 2000, 275 + "type" => "string" 276 + }, 277 + "post" => %{"format" => "at-uri", "type" => "string"}, 278 + "reason" => %{ 279 + "refs" => ["#skeletonReasonRepost", "#skeletonReasonPin"], 280 + "type" => "union" 281 + } 282 + }, 283 + "required" => ["post"], 284 + "type" => "object" 285 + }, 286 + "skeletonReasonPin" => %{"properties" => %{}, "type" => "object"}, 287 + "skeletonReasonRepost" => %{ 288 + "properties" => %{"repost" => %{"format" => "at-uri", "type" => "string"}}, 289 + "required" => ["repost"], 290 + "type" => "object" 291 + }, 292 + "threadContext" => %{ 293 + "description" => "Metadata about this post within the context of the thread it is in.", 294 + "properties" => %{ 295 + "rootAuthorLike" => %{"format" => "at-uri", "type" => "string"} 296 + }, 297 + "type" => "object" 298 + }, 299 + "threadViewPost" => %{ 300 + "properties" => %{ 301 + "parent" => %{ 302 + "refs" => ["#threadViewPost", "#notFoundPost", "#blockedPost"], 303 + "type" => "union" 304 + }, 305 + "post" => %{"ref" => "#postView", "type" => "ref"}, 306 + "replies" => %{ 307 + "items" => %{ 308 + "refs" => ["#threadViewPost", "#notFoundPost", "#blockedPost"], 309 + "type" => "union" 310 + }, 311 + "type" => "array" 312 + }, 313 + "threadContext" => %{"ref" => "#threadContext", "type" => "ref"} 314 + }, 315 + "required" => ["post"], 316 + "type" => "object" 317 + }, 318 + "threadgateView" => %{ 319 + "properties" => %{ 320 + "cid" => %{"format" => "cid", "type" => "string"}, 321 + "lists" => %{ 322 + "items" => %{ 323 + "ref" => "app.bsky.graph.defs#listViewBasic", 324 + "type" => "ref" 325 + }, 326 + "type" => "array" 327 + }, 328 + "record" => %{"type" => "unknown"}, 329 + "uri" => %{"format" => "at-uri", "type" => "string"} 330 + }, 331 + "type" => "object" 332 + }, 333 + "viewerState" => %{ 334 + "description" => 335 + "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.", 336 + "properties" => %{ 337 + "bookmarked" => %{"type" => "boolean"}, 338 + "embeddingDisabled" => %{"type" => "boolean"}, 339 + "like" => %{"format" => "at-uri", "type" => "string"}, 340 + "pinned" => %{"type" => "boolean"}, 341 + "replyDisabled" => %{"type" => "boolean"}, 342 + "repost" => %{"format" => "at-uri", "type" => "string"}, 343 + "threadMuted" => %{"type" => "boolean"} 344 + }, 345 + "type" => "object" 346 + } 347 + }, 348 + "id" => "app.bsky.feed.defs", 349 + "lexicon" => 1 350 + }) 351 + end
+43
lib/atproto/app/bsky/feed/describeFeedGenerator.ex
··· 1 + defmodule App.Bsky.Feed.DescribeFeedGenerator do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "feed" => %{ 8 + "properties" => %{"uri" => %{"format" => "at-uri", "type" => "string"}}, 9 + "required" => ["uri"], 10 + "type" => "object" 11 + }, 12 + "links" => %{ 13 + "properties" => %{ 14 + "privacyPolicy" => %{"type" => "string"}, 15 + "termsOfService" => %{"type" => "string"} 16 + }, 17 + "type" => "object" 18 + }, 19 + "main" => %{ 20 + "description" => 21 + "Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View).", 22 + "output" => %{ 23 + "encoding" => "application/json", 24 + "schema" => %{ 25 + "properties" => %{ 26 + "did" => %{"format" => "did", "type" => "string"}, 27 + "feeds" => %{ 28 + "items" => %{"ref" => "#feed", "type" => "ref"}, 29 + "type" => "array" 30 + }, 31 + "links" => %{"ref" => "#links", "type" => "ref"} 32 + }, 33 + "required" => ["did", "feeds"], 34 + "type" => "object" 35 + } 36 + }, 37 + "type" => "query" 38 + } 39 + }, 40 + "id" => "app.bsky.feed.describeFeedGenerator", 41 + "lexicon" => 1 42 + }) 43 + end
+61
lib/atproto/app/bsky/feed/generator.ex
··· 1 + defmodule App.Bsky.Feed.Generator do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository.", 10 + "key" => "any", 11 + "record" => %{ 12 + "properties" => %{ 13 + "acceptsInteractions" => %{ 14 + "description" => 15 + "Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions", 16 + "type" => "boolean" 17 + }, 18 + "avatar" => %{ 19 + "accept" => ["image/png", "image/jpeg"], 20 + "maxSize" => 1_000_000, 21 + "type" => "blob" 22 + }, 23 + "contentMode" => %{ 24 + "knownValues" => [ 25 + "app.bsky.feed.defs#contentModeUnspecified", 26 + "app.bsky.feed.defs#contentModeVideo" 27 + ], 28 + "type" => "string" 29 + }, 30 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 31 + "description" => %{ 32 + "maxGraphemes" => 300, 33 + "maxLength" => 3000, 34 + "type" => "string" 35 + }, 36 + "descriptionFacets" => %{ 37 + "items" => %{"ref" => "app.bsky.richtext.facet", "type" => "ref"}, 38 + "type" => "array" 39 + }, 40 + "did" => %{"format" => "did", "type" => "string"}, 41 + "displayName" => %{ 42 + "maxGraphemes" => 24, 43 + "maxLength" => 240, 44 + "type" => "string" 45 + }, 46 + "labels" => %{ 47 + "description" => "Self-label values", 48 + "refs" => ["com.atproto.label.defs#selfLabels"], 49 + "type" => "union" 50 + } 51 + }, 52 + "required" => ["did", "displayName", "createdAt"], 53 + "type" => "object" 54 + }, 55 + "type" => "record" 56 + } 57 + }, 58 + "id" => "app.bsky.feed.generator", 59 + "lexicon" => 1 60 + }) 61 + end
+47
lib/atproto/app/bsky/feed/getActorFeeds.ex
··· 1 + defmodule App.Bsky.Feed.GetActorFeeds do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a list of feeds (feed generator records) created by the actor (in the actor's repo).", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "feeds" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.feed.defs#generatorView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["feeds"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "actor" => %{"format" => "at-identifier", "type" => "string"}, 30 + "cursor" => %{"type" => "string"}, 31 + "limit" => %{ 32 + "default" => 50, 33 + "maximum" => 100, 34 + "minimum" => 1, 35 + "type" => "integer" 36 + } 37 + }, 38 + "required" => ["actor"], 39 + "type" => "params" 40 + }, 41 + "type" => "query" 42 + } 43 + }, 44 + "id" => "app.bsky.feed.getActorFeeds", 45 + "lexicon" => 1 46 + }) 47 + end
+48
lib/atproto/app/bsky/feed/getActorLikes.ex
··· 1 + defmodule App.Bsky.Feed.GetActorLikes do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a list of posts liked by an actor. Requires auth, actor must be the requesting account.", 10 + "errors" => [%{"name" => "BlockedActor"}, %{"name" => "BlockedByActor"}], 11 + "output" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "cursor" => %{"type" => "string"}, 16 + "feed" => %{ 17 + "items" => %{ 18 + "ref" => "app.bsky.feed.defs#feedViewPost", 19 + "type" => "ref" 20 + }, 21 + "type" => "array" 22 + } 23 + }, 24 + "required" => ["feed"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "actor" => %{"format" => "at-identifier", "type" => "string"}, 31 + "cursor" => %{"type" => "string"}, 32 + "limit" => %{ 33 + "default" => 50, 34 + "maximum" => 100, 35 + "minimum" => 1, 36 + "type" => "integer" 37 + } 38 + }, 39 + "required" => ["actor"], 40 + "type" => "params" 41 + }, 42 + "type" => "query" 43 + } 44 + }, 45 + "id" => "app.bsky.feed.getActorLikes", 46 + "lexicon" => 1 47 + }) 48 + end
+61
lib/atproto/app/bsky/feed/getAuthorFeed.ex
··· 1 + defmodule App.Bsky.Feed.GetAuthorFeed do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.", 10 + "errors" => [%{"name" => "BlockedActor"}, %{"name" => "BlockedByActor"}], 11 + "output" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "cursor" => %{"type" => "string"}, 16 + "feed" => %{ 17 + "items" => %{ 18 + "ref" => "app.bsky.feed.defs#feedViewPost", 19 + "type" => "ref" 20 + }, 21 + "type" => "array" 22 + } 23 + }, 24 + "required" => ["feed"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "actor" => %{"format" => "at-identifier", "type" => "string"}, 31 + "cursor" => %{"type" => "string"}, 32 + "filter" => %{ 33 + "default" => "posts_with_replies", 34 + "description" => "Combinations of post/repost types to include in response.", 35 + "knownValues" => [ 36 + "posts_with_replies", 37 + "posts_no_replies", 38 + "posts_with_media", 39 + "posts_and_author_threads", 40 + "posts_with_video" 41 + ], 42 + "type" => "string" 43 + }, 44 + "includePins" => %{"default" => false, "type" => "boolean"}, 45 + "limit" => %{ 46 + "default" => 50, 47 + "maximum" => 100, 48 + "minimum" => 1, 49 + "type" => "integer" 50 + } 51 + }, 52 + "required" => ["actor"], 53 + "type" => "params" 54 + }, 55 + "type" => "query" 56 + } 57 + }, 58 + "id" => "app.bsky.feed.getAuthorFeed", 59 + "lexicon" => 1 60 + }) 61 + end
+48
lib/atproto/app/bsky/feed/getFeed.ex
··· 1 + defmodule App.Bsky.Feed.GetFeed do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a hydrated feed from an actor's selected feed generator. Implemented by App View.", 10 + "errors" => [%{"name" => "UnknownFeed"}], 11 + "output" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "cursor" => %{"type" => "string"}, 16 + "feed" => %{ 17 + "items" => %{ 18 + "ref" => "app.bsky.feed.defs#feedViewPost", 19 + "type" => "ref" 20 + }, 21 + "type" => "array" 22 + } 23 + }, 24 + "required" => ["feed"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "cursor" => %{"type" => "string"}, 31 + "feed" => %{"format" => "at-uri", "type" => "string"}, 32 + "limit" => %{ 33 + "default" => 50, 34 + "maximum" => 100, 35 + "minimum" => 1, 36 + "type" => "integer" 37 + } 38 + }, 39 + "required" => ["feed"], 40 + "type" => "params" 41 + }, 42 + "type" => "query" 43 + } 44 + }, 45 + "id" => "app.bsky.feed.getFeed", 46 + "lexicon" => 1 47 + }) 48 + end
+49
lib/atproto/app/bsky/feed/getFeedGenerator.ex
··· 1 + defmodule App.Bsky.Feed.GetFeedGenerator do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get information about a feed generator. Implemented by AppView.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "isOnline" => %{ 14 + "description" => 15 + "Indicates whether the feed generator service has been online recently, or else seems to be inactive.", 16 + "type" => "boolean" 17 + }, 18 + "isValid" => %{ 19 + "description" => 20 + "Indicates whether the feed generator service is compatible with the record declaration.", 21 + "type" => "boolean" 22 + }, 23 + "view" => %{ 24 + "ref" => "app.bsky.feed.defs#generatorView", 25 + "type" => "ref" 26 + } 27 + }, 28 + "required" => ["view", "isOnline", "isValid"], 29 + "type" => "object" 30 + } 31 + }, 32 + "parameters" => %{ 33 + "properties" => %{ 34 + "feed" => %{ 35 + "description" => "AT-URI of the feed generator record.", 36 + "format" => "at-uri", 37 + "type" => "string" 38 + } 39 + }, 40 + "required" => ["feed"], 41 + "type" => "params" 42 + }, 43 + "type" => "query" 44 + } 45 + }, 46 + "id" => "app.bsky.feed.getFeedGenerator", 47 + "lexicon" => 1 48 + }) 49 + end
+41
lib/atproto/app/bsky/feed/getFeedGenerators.ex
··· 1 + defmodule App.Bsky.Feed.GetFeedGenerators do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get information about a list of feed generators.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "feeds" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.feed.defs#generatorView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + } 20 + }, 21 + "required" => ["feeds"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "feeds" => %{ 28 + "items" => %{"format" => "at-uri", "type" => "string"}, 29 + "type" => "array" 30 + } 31 + }, 32 + "required" => ["feeds"], 33 + "type" => "params" 34 + }, 35 + "type" => "query" 36 + } 37 + }, 38 + "id" => "app.bsky.feed.getFeedGenerators", 39 + "lexicon" => 1 40 + }) 41 + end
+59
lib/atproto/app/bsky/feed/getFeedSkeleton.ex
··· 1 + defmodule App.Bsky.Feed.GetFeedSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "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.", 10 + "errors" => [%{"name" => "UnknownFeed"}], 11 + "output" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "cursor" => %{"type" => "string"}, 16 + "feed" => %{ 17 + "items" => %{ 18 + "ref" => "app.bsky.feed.defs#skeletonFeedPost", 19 + "type" => "ref" 20 + }, 21 + "type" => "array" 22 + }, 23 + "reqId" => %{ 24 + "description" => 25 + "Unique identifier per request that may be passed back alongside interactions.", 26 + "maxLength" => 100, 27 + "type" => "string" 28 + } 29 + }, 30 + "required" => ["feed"], 31 + "type" => "object" 32 + } 33 + }, 34 + "parameters" => %{ 35 + "properties" => %{ 36 + "cursor" => %{"type" => "string"}, 37 + "feed" => %{ 38 + "description" => 39 + "Reference to feed generator record describing the specific feed being requested.", 40 + "format" => "at-uri", 41 + "type" => "string" 42 + }, 43 + "limit" => %{ 44 + "default" => 50, 45 + "maximum" => 100, 46 + "minimum" => 1, 47 + "type" => "integer" 48 + } 49 + }, 50 + "required" => ["feed"], 51 + "type" => "params" 52 + }, 53 + "type" => "query" 54 + } 55 + }, 56 + "id" => "app.bsky.feed.getFeedSkeleton", 57 + "lexicon" => 1 58 + }) 59 + end
+67
lib/atproto/app/bsky/feed/getLikes.ex
··· 1 + defmodule App.Bsky.Feed.GetLikes do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "like" => %{ 8 + "properties" => %{ 9 + "actor" => %{ 10 + "ref" => "app.bsky.actor.defs#profileView", 11 + "type" => "ref" 12 + }, 13 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 14 + "indexedAt" => %{"format" => "datetime", "type" => "string"} 15 + }, 16 + "required" => ["indexedAt", "createdAt", "actor"], 17 + "type" => "object" 18 + }, 19 + "main" => %{ 20 + "description" => "Get like records which reference a subject (by AT-URI and CID).", 21 + "output" => %{ 22 + "encoding" => "application/json", 23 + "schema" => %{ 24 + "properties" => %{ 25 + "cid" => %{"format" => "cid", "type" => "string"}, 26 + "cursor" => %{"type" => "string"}, 27 + "likes" => %{ 28 + "items" => %{"ref" => "#like", "type" => "ref"}, 29 + "type" => "array" 30 + }, 31 + "uri" => %{"format" => "at-uri", "type" => "string"} 32 + }, 33 + "required" => ["uri", "likes"], 34 + "type" => "object" 35 + } 36 + }, 37 + "parameters" => %{ 38 + "properties" => %{ 39 + "cid" => %{ 40 + "description" => 41 + "CID of the subject record (aka, specific version of record), to filter likes.", 42 + "format" => "cid", 43 + "type" => "string" 44 + }, 45 + "cursor" => %{"type" => "string"}, 46 + "limit" => %{ 47 + "default" => 50, 48 + "maximum" => 100, 49 + "minimum" => 1, 50 + "type" => "integer" 51 + }, 52 + "uri" => %{ 53 + "description" => "AT-URI of the subject (eg, a post record).", 54 + "format" => "at-uri", 55 + "type" => "string" 56 + } 57 + }, 58 + "required" => ["uri"], 59 + "type" => "params" 60 + }, 61 + "type" => "query" 62 + } 63 + }, 64 + "id" => "app.bsky.feed.getLikes", 65 + "lexicon" => 1 66 + }) 67 + end
+52
lib/atproto/app/bsky/feed/getListFeed.ex
··· 1 + defmodule App.Bsky.Feed.GetListFeed do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth.", 10 + "errors" => [%{"name" => "UnknownList"}], 11 + "output" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "cursor" => %{"type" => "string"}, 16 + "feed" => %{ 17 + "items" => %{ 18 + "ref" => "app.bsky.feed.defs#feedViewPost", 19 + "type" => "ref" 20 + }, 21 + "type" => "array" 22 + } 23 + }, 24 + "required" => ["feed"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "cursor" => %{"type" => "string"}, 31 + "limit" => %{ 32 + "default" => 50, 33 + "maximum" => 100, 34 + "minimum" => 1, 35 + "type" => "integer" 36 + }, 37 + "list" => %{ 38 + "description" => "Reference (AT-URI) to the list record.", 39 + "format" => "at-uri", 40 + "type" => "string" 41 + } 42 + }, 43 + "required" => ["list"], 44 + "type" => "params" 45 + }, 46 + "type" => "query" 47 + } 48 + }, 49 + "id" => "app.bsky.feed.getListFeed", 50 + "lexicon" => 1 51 + }) 52 + end
+64
lib/atproto/app/bsky/feed/getPostThread.ex
··· 1 + defmodule App.Bsky.Feed.GetPostThread do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.", 10 + "errors" => [%{"name" => "NotFound"}], 11 + "output" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "thread" => %{ 16 + "refs" => [ 17 + "app.bsky.feed.defs#threadViewPost", 18 + "app.bsky.feed.defs#notFoundPost", 19 + "app.bsky.feed.defs#blockedPost" 20 + ], 21 + "type" => "union" 22 + }, 23 + "threadgate" => %{ 24 + "ref" => "app.bsky.feed.defs#threadgateView", 25 + "type" => "ref" 26 + } 27 + }, 28 + "required" => ["thread"], 29 + "type" => "object" 30 + } 31 + }, 32 + "parameters" => %{ 33 + "properties" => %{ 34 + "depth" => %{ 35 + "default" => 6, 36 + "description" => "How many levels of reply depth should be included in response.", 37 + "maximum" => 1000, 38 + "minimum" => 0, 39 + "type" => "integer" 40 + }, 41 + "parentHeight" => %{ 42 + "default" => 80, 43 + "description" => 44 + "How many levels of parent (and grandparent, etc) post to include.", 45 + "maximum" => 1000, 46 + "minimum" => 0, 47 + "type" => "integer" 48 + }, 49 + "uri" => %{ 50 + "description" => "Reference (AT-URI) to post record.", 51 + "format" => "at-uri", 52 + "type" => "string" 53 + } 54 + }, 55 + "required" => ["uri"], 56 + "type" => "params" 57 + }, 58 + "type" => "query" 59 + } 60 + }, 61 + "id" => "app.bsky.feed.getPostThread", 62 + "lexicon" => 1 63 + }) 64 + end
+44
lib/atproto/app/bsky/feed/getPosts.ex
··· 1 + defmodule App.Bsky.Feed.GetPosts do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "posts" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.feed.defs#postView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + } 21 + }, 22 + "required" => ["posts"], 23 + "type" => "object" 24 + } 25 + }, 26 + "parameters" => %{ 27 + "properties" => %{ 28 + "uris" => %{ 29 + "description" => "List of post AT-URIs to return hydrated views for.", 30 + "items" => %{"format" => "at-uri", "type" => "string"}, 31 + "maxLength" => 25, 32 + "type" => "array" 33 + } 34 + }, 35 + "required" => ["uris"], 36 + "type" => "params" 37 + }, 38 + "type" => "query" 39 + } 40 + }, 41 + "id" => "app.bsky.feed.getPosts", 42 + "lexicon" => 1 43 + }) 44 + end
+58
lib/atproto/app/bsky/feed/getQuotes.ex
··· 1 + defmodule App.Bsky.Feed.GetQuotes do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of quotes for a given post.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cid" => %{"format" => "cid", "type" => "string"}, 14 + "cursor" => %{"type" => "string"}, 15 + "posts" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.feed.defs#postView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + }, 22 + "uri" => %{"format" => "at-uri", "type" => "string"} 23 + }, 24 + "required" => ["uri", "posts"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "cid" => %{ 31 + "description" => 32 + "If supplied, filters to quotes of specific version (by CID) of the post record.", 33 + "format" => "cid", 34 + "type" => "string" 35 + }, 36 + "cursor" => %{"type" => "string"}, 37 + "limit" => %{ 38 + "default" => 50, 39 + "maximum" => 100, 40 + "minimum" => 1, 41 + "type" => "integer" 42 + }, 43 + "uri" => %{ 44 + "description" => "Reference (AT-URI) of post record", 45 + "format" => "at-uri", 46 + "type" => "string" 47 + } 48 + }, 49 + "required" => ["uri"], 50 + "type" => "params" 51 + }, 52 + "type" => "query" 53 + } 54 + }, 55 + "id" => "app.bsky.feed.getQuotes", 56 + "lexicon" => 1 57 + }) 58 + end
+58
lib/atproto/app/bsky/feed/getRepostedBy.ex
··· 1 + defmodule App.Bsky.Feed.GetRepostedBy do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of reposts for a given post.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cid" => %{"format" => "cid", "type" => "string"}, 14 + "cursor" => %{"type" => "string"}, 15 + "repostedBy" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.actor.defs#profileView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + }, 22 + "uri" => %{"format" => "at-uri", "type" => "string"} 23 + }, 24 + "required" => ["uri", "repostedBy"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "cid" => %{ 31 + "description" => 32 + "If supplied, filters to reposts of specific version (by CID) of the post record.", 33 + "format" => "cid", 34 + "type" => "string" 35 + }, 36 + "cursor" => %{"type" => "string"}, 37 + "limit" => %{ 38 + "default" => 50, 39 + "maximum" => 100, 40 + "minimum" => 1, 41 + "type" => "integer" 42 + }, 43 + "uri" => %{ 44 + "description" => "Reference (AT-URI) of post record", 45 + "format" => "at-uri", 46 + "type" => "string" 47 + } 48 + }, 49 + "required" => ["uri"], 50 + "type" => "params" 51 + }, 52 + "type" => "query" 53 + } 54 + }, 55 + "id" => "app.bsky.feed.getRepostedBy", 56 + "lexicon" => 1 57 + }) 58 + end
+45
lib/atproto/app/bsky/feed/getSuggestedFeeds.ex
··· 1 + defmodule App.Bsky.Feed.GetSuggestedFeeds do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a list of suggested feeds (feed generators) for the requesting account.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "feeds" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.feed.defs#generatorView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["feeds"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 50, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + } 36 + }, 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.feed.getSuggestedFeeds", 43 + "lexicon" => 1 44 + }) 45 + end
+50
lib/atproto/app/bsky/feed/getTimeline.ex
··· 1 + defmodule App.Bsky.Feed.GetTimeline do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "feed" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.feed.defs#feedViewPost", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["feed"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "algorithm" => %{ 30 + "description" => 31 + "Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism.", 32 + "type" => "string" 33 + }, 34 + "cursor" => %{"type" => "string"}, 35 + "limit" => %{ 36 + "default" => 50, 37 + "maximum" => 100, 38 + "minimum" => 1, 39 + "type" => "integer" 40 + } 41 + }, 42 + "type" => "params" 43 + }, 44 + "type" => "query" 45 + } 46 + }, 47 + "id" => "app.bsky.feed.getTimeline", 48 + "lexicon" => 1 49 + }) 50 + end
+25
lib/atproto/app/bsky/feed/like.ex
··· 1 + defmodule App.Bsky.Feed.Like do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Record declaring a 'like' of a piece of subject content.", 9 + "key" => "tid", 10 + "record" => %{ 11 + "properties" => %{ 12 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 13 + "subject" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"}, 14 + "via" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"} 15 + }, 16 + "required" => ["subject", "createdAt"], 17 + "type" => "object" 18 + }, 19 + "type" => "record" 20 + } 21 + }, 22 + "id" => "app.bsky.feed.like", 23 + "lexicon" => 1 24 + }) 25 + end
+108
lib/atproto/app/bsky/feed/post.ex
··· 1 + defmodule App.Bsky.Feed.Post do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "entity" => %{ 8 + "description" => "Deprecated: use facets instead.", 9 + "properties" => %{ 10 + "index" => %{"ref" => "#textSlice", "type" => "ref"}, 11 + "type" => %{ 12 + "description" => "Expected values are 'mention' and 'link'.", 13 + "type" => "string" 14 + }, 15 + "value" => %{"type" => "string"} 16 + }, 17 + "required" => ["index", "type", "value"], 18 + "type" => "object" 19 + }, 20 + "main" => %{ 21 + "description" => "Record containing a Bluesky post.", 22 + "key" => "tid", 23 + "record" => %{ 24 + "properties" => %{ 25 + "createdAt" => %{ 26 + "description" => "Client-declared timestamp when this post was originally created.", 27 + "format" => "datetime", 28 + "type" => "string" 29 + }, 30 + "embed" => %{ 31 + "refs" => [ 32 + "app.bsky.embed.images", 33 + "app.bsky.embed.video", 34 + "app.bsky.embed.external", 35 + "app.bsky.embed.record", 36 + "app.bsky.embed.recordWithMedia" 37 + ], 38 + "type" => "union" 39 + }, 40 + "entities" => %{ 41 + "description" => "DEPRECATED: replaced by app.bsky.richtext.facet.", 42 + "items" => %{"ref" => "#entity", "type" => "ref"}, 43 + "type" => "array" 44 + }, 45 + "facets" => %{ 46 + "description" => "Annotations of text (mentions, URLs, hashtags, etc)", 47 + "items" => %{"ref" => "app.bsky.richtext.facet", "type" => "ref"}, 48 + "type" => "array" 49 + }, 50 + "labels" => %{ 51 + "description" => "Self-label values for this post. Effectively content warnings.", 52 + "refs" => ["com.atproto.label.defs#selfLabels"], 53 + "type" => "union" 54 + }, 55 + "langs" => %{ 56 + "description" => "Indicates human language of post primary text content.", 57 + "items" => %{"format" => "language", "type" => "string"}, 58 + "maxLength" => 3, 59 + "type" => "array" 60 + }, 61 + "reply" => %{"ref" => "#replyRef", "type" => "ref"}, 62 + "tags" => %{ 63 + "description" => 64 + "Additional hashtags, in addition to any included in post text and facets.", 65 + "items" => %{ 66 + "maxGraphemes" => 64, 67 + "maxLength" => 640, 68 + "type" => "string" 69 + }, 70 + "maxLength" => 8, 71 + "type" => "array" 72 + }, 73 + "text" => %{ 74 + "description" => 75 + "The primary post content. May be an empty string, if there are embeds.", 76 + "maxGraphemes" => 300, 77 + "maxLength" => 3000, 78 + "type" => "string" 79 + } 80 + }, 81 + "required" => ["text", "createdAt"], 82 + "type" => "object" 83 + }, 84 + "type" => "record" 85 + }, 86 + "replyRef" => %{ 87 + "properties" => %{ 88 + "parent" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"}, 89 + "root" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"} 90 + }, 91 + "required" => ["root", "parent"], 92 + "type" => "object" 93 + }, 94 + "textSlice" => %{ 95 + "description" => 96 + "Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.", 97 + "properties" => %{ 98 + "end" => %{"minimum" => 0, "type" => "integer"}, 99 + "start" => %{"minimum" => 0, "type" => "integer"} 100 + }, 101 + "required" => ["start", "end"], 102 + "type" => "object" 103 + } 104 + }, 105 + "id" => "app.bsky.feed.post", 106 + "lexicon" => 1 107 + }) 108 + end
+48
lib/atproto/app/bsky/feed/postgate.ex
··· 1 + defmodule App.Bsky.Feed.Postgate do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "disableRule" => %{ 8 + "description" => "Disables embedding of this post.", 9 + "properties" => %{}, 10 + "type" => "object" 11 + }, 12 + "main" => %{ 13 + "description" => 14 + "Record defining interaction rules for a post. The record key (rkey) of the postgate record must match the record key of the post, and that record must be in the same repository.", 15 + "key" => "tid", 16 + "record" => %{ 17 + "properties" => %{ 18 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 19 + "detachedEmbeddingUris" => %{ 20 + "description" => 21 + "List of AT-URIs embedding this post that the author has detached from.", 22 + "items" => %{"format" => "at-uri", "type" => "string"}, 23 + "maxLength" => 50, 24 + "type" => "array" 25 + }, 26 + "embeddingRules" => %{ 27 + "description" => 28 + "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.", 29 + "items" => %{"refs" => ["#disableRule"], "type" => "union"}, 30 + "maxLength" => 5, 31 + "type" => "array" 32 + }, 33 + "post" => %{ 34 + "description" => "Reference (AT-URI) to the post record.", 35 + "format" => "at-uri", 36 + "type" => "string" 37 + } 38 + }, 39 + "required" => ["post", "createdAt"], 40 + "type" => "object" 41 + }, 42 + "type" => "record" 43 + } 44 + }, 45 + "id" => "app.bsky.feed.postgate", 46 + "lexicon" => 1 47 + }) 48 + end
+25
lib/atproto/app/bsky/feed/repost.ex
··· 1 + defmodule App.Bsky.Feed.Repost do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Record representing a 'repost' of an existing Bluesky post.", 9 + "key" => "tid", 10 + "record" => %{ 11 + "properties" => %{ 12 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 13 + "subject" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"}, 14 + "via" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"} 15 + }, 16 + "required" => ["subject", "createdAt"], 17 + "type" => "object" 18 + }, 19 + "type" => "record" 20 + } 21 + }, 22 + "id" => "app.bsky.feed.repost", 23 + "lexicon" => 1 24 + }) 25 + end
+116
lib/atproto/app/bsky/feed/searchPosts.ex
··· 1 + defmodule App.Bsky.Feed.SearchPosts do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations.", 10 + "errors" => [%{"name" => "BadQueryString"}], 11 + "output" => %{ 12 + "encoding" => "application/json", 13 + "schema" => %{ 14 + "properties" => %{ 15 + "cursor" => %{"type" => "string"}, 16 + "hitsTotal" => %{ 17 + "description" => 18 + "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits.", 19 + "type" => "integer" 20 + }, 21 + "posts" => %{ 22 + "items" => %{ 23 + "ref" => "app.bsky.feed.defs#postView", 24 + "type" => "ref" 25 + }, 26 + "type" => "array" 27 + } 28 + }, 29 + "required" => ["posts"], 30 + "type" => "object" 31 + } 32 + }, 33 + "parameters" => %{ 34 + "properties" => %{ 35 + "author" => %{ 36 + "description" => 37 + "Filter to posts by the given account. Handles are resolved to DID before query-time.", 38 + "format" => "at-identifier", 39 + "type" => "string" 40 + }, 41 + "cursor" => %{ 42 + "description" => 43 + "Optional pagination mechanism; may not necessarily allow scrolling through entire result set.", 44 + "type" => "string" 45 + }, 46 + "domain" => %{ 47 + "description" => 48 + "Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization.", 49 + "type" => "string" 50 + }, 51 + "lang" => %{ 52 + "description" => 53 + "Filter to posts in the given language. Expected to be based on post language field, though server may override language detection.", 54 + "format" => "language", 55 + "type" => "string" 56 + }, 57 + "limit" => %{ 58 + "default" => 25, 59 + "maximum" => 100, 60 + "minimum" => 1, 61 + "type" => "integer" 62 + }, 63 + "mentions" => %{ 64 + "description" => 65 + "Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions.", 66 + "format" => "at-identifier", 67 + "type" => "string" 68 + }, 69 + "q" => %{ 70 + "description" => 71 + "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.", 72 + "type" => "string" 73 + }, 74 + "since" => %{ 75 + "description" => 76 + "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).", 77 + "type" => "string" 78 + }, 79 + "sort" => %{ 80 + "default" => "latest", 81 + "description" => "Specifies the ranking order of results.", 82 + "knownValues" => ["top", "latest"], 83 + "type" => "string" 84 + }, 85 + "tag" => %{ 86 + "description" => 87 + "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.", 88 + "items" => %{ 89 + "maxGraphemes" => 64, 90 + "maxLength" => 640, 91 + "type" => "string" 92 + }, 93 + "type" => "array" 94 + }, 95 + "until" => %{ 96 + "description" => 97 + "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).", 98 + "type" => "string" 99 + }, 100 + "url" => %{ 101 + "description" => 102 + "Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching.", 103 + "format" => "uri", 104 + "type" => "string" 105 + } 106 + }, 107 + "required" => ["q"], 108 + "type" => "params" 109 + }, 110 + "type" => "query" 111 + } 112 + }, 113 + "id" => "app.bsky.feed.searchPosts", 114 + "lexicon" => 1 115 + }) 116 + end
+37
lib/atproto/app/bsky/feed/sendInteractions.ex
··· 1 + defmodule App.Bsky.Feed.SendInteractions do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Send information about interactions with feed items back to the feed generator that served them.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "feed" => %{"format" => "at-uri", "type" => "string"}, 15 + "interactions" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.feed.defs#interaction", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["interactions"], 24 + "type" => "object" 25 + } 26 + }, 27 + "output" => %{ 28 + "encoding" => "application/json", 29 + "schema" => %{"properties" => %{}, "type" => "object"} 30 + }, 31 + "type" => "procedure" 32 + } 33 + }, 34 + "id" => "app.bsky.feed.sendInteractions", 35 + "lexicon" => 1 36 + }) 37 + end
+66
lib/atproto/app/bsky/feed/threadgate.ex
··· 1 + defmodule App.Bsky.Feed.Threadgate do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "followerRule" => %{ 8 + "description" => "Allow replies from actors who follow you.", 9 + "properties" => %{}, 10 + "type" => "object" 11 + }, 12 + "followingRule" => %{ 13 + "description" => "Allow replies from actors you follow.", 14 + "properties" => %{}, 15 + "type" => "object" 16 + }, 17 + "listRule" => %{ 18 + "description" => "Allow replies from actors on a list.", 19 + "properties" => %{"list" => %{"format" => "at-uri", "type" => "string"}}, 20 + "required" => ["list"], 21 + "type" => "object" 22 + }, 23 + "main" => %{ 24 + "description" => 25 + "Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository.", 26 + "key" => "tid", 27 + "record" => %{ 28 + "properties" => %{ 29 + "allow" => %{ 30 + "description" => 31 + "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.", 32 + "items" => %{ 33 + "refs" => ["#mentionRule", "#followerRule", "#followingRule", "#listRule"], 34 + "type" => "union" 35 + }, 36 + "maxLength" => 5, 37 + "type" => "array" 38 + }, 39 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 40 + "hiddenReplies" => %{ 41 + "description" => "List of hidden reply URIs.", 42 + "items" => %{"format" => "at-uri", "type" => "string"}, 43 + "maxLength" => 300, 44 + "type" => "array" 45 + }, 46 + "post" => %{ 47 + "description" => "Reference (AT-URI) to the post record.", 48 + "format" => "at-uri", 49 + "type" => "string" 50 + } 51 + }, 52 + "required" => ["post", "createdAt"], 53 + "type" => "object" 54 + }, 55 + "type" => "record" 56 + }, 57 + "mentionRule" => %{ 58 + "description" => "Allow replies from actors mentioned in your post.", 59 + "properties" => %{}, 60 + "type" => "object" 61 + } 62 + }, 63 + "id" => "app.bsky.feed.threadgate", 64 + "lexicon" => 1 65 + }) 66 + end
+29
lib/atproto/app/bsky/graph/block.ex
··· 1 + defmodule App.Bsky.Graph.Block do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Record declaring a 'block' relationship against another account. NOTE: blocks are public in Bluesky; see blog posts for details.", 10 + "key" => "tid", 11 + "record" => %{ 12 + "properties" => %{ 13 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 14 + "subject" => %{ 15 + "description" => "DID of the account to be blocked.", 16 + "format" => "did", 17 + "type" => "string" 18 + } 19 + }, 20 + "required" => ["subject", "createdAt"], 21 + "type" => "object" 22 + }, 23 + "type" => "record" 24 + } 25 + }, 26 + "id" => "app.bsky.graph.block", 27 + "lexicon" => 1 28 + }) 29 + end
+210
lib/atproto/app/bsky/graph/defs.ex
··· 1 + defmodule App.Bsky.Graph.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "curatelist" => %{ 8 + "description" => 9 + "A list of actors used for curation purposes such as list feeds or interaction gating.", 10 + "type" => "token" 11 + }, 12 + "listItemView" => %{ 13 + "properties" => %{ 14 + "subject" => %{ 15 + "ref" => "app.bsky.actor.defs#profileView", 16 + "type" => "ref" 17 + }, 18 + "uri" => %{"format" => "at-uri", "type" => "string"} 19 + }, 20 + "required" => ["uri", "subject"], 21 + "type" => "object" 22 + }, 23 + "listPurpose" => %{ 24 + "knownValues" => [ 25 + "app.bsky.graph.defs#modlist", 26 + "app.bsky.graph.defs#curatelist", 27 + "app.bsky.graph.defs#referencelist" 28 + ], 29 + "type" => "string" 30 + }, 31 + "listView" => %{ 32 + "properties" => %{ 33 + "avatar" => %{"format" => "uri", "type" => "string"}, 34 + "cid" => %{"format" => "cid", "type" => "string"}, 35 + "creator" => %{ 36 + "ref" => "app.bsky.actor.defs#profileView", 37 + "type" => "ref" 38 + }, 39 + "description" => %{ 40 + "maxGraphemes" => 300, 41 + "maxLength" => 3000, 42 + "type" => "string" 43 + }, 44 + "descriptionFacets" => %{ 45 + "items" => %{"ref" => "app.bsky.richtext.facet", "type" => "ref"}, 46 + "type" => "array" 47 + }, 48 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 49 + "labels" => %{ 50 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 51 + "type" => "array" 52 + }, 53 + "listItemCount" => %{"minimum" => 0, "type" => "integer"}, 54 + "name" => %{"maxLength" => 64, "minLength" => 1, "type" => "string"}, 55 + "purpose" => %{"ref" => "#listPurpose", "type" => "ref"}, 56 + "uri" => %{"format" => "at-uri", "type" => "string"}, 57 + "viewer" => %{"ref" => "#listViewerState", "type" => "ref"} 58 + }, 59 + "required" => ["uri", "cid", "creator", "name", "purpose", "indexedAt"], 60 + "type" => "object" 61 + }, 62 + "listViewBasic" => %{ 63 + "properties" => %{ 64 + "avatar" => %{"format" => "uri", "type" => "string"}, 65 + "cid" => %{"format" => "cid", "type" => "string"}, 66 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 67 + "labels" => %{ 68 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 69 + "type" => "array" 70 + }, 71 + "listItemCount" => %{"minimum" => 0, "type" => "integer"}, 72 + "name" => %{"maxLength" => 64, "minLength" => 1, "type" => "string"}, 73 + "purpose" => %{"ref" => "#listPurpose", "type" => "ref"}, 74 + "uri" => %{"format" => "at-uri", "type" => "string"}, 75 + "viewer" => %{"ref" => "#listViewerState", "type" => "ref"} 76 + }, 77 + "required" => ["uri", "cid", "name", "purpose"], 78 + "type" => "object" 79 + }, 80 + "listViewerState" => %{ 81 + "properties" => %{ 82 + "blocked" => %{"format" => "at-uri", "type" => "string"}, 83 + "muted" => %{"type" => "boolean"} 84 + }, 85 + "type" => "object" 86 + }, 87 + "modlist" => %{ 88 + "description" => 89 + "A list of actors to apply an aggregate moderation action (mute/block) on.", 90 + "type" => "token" 91 + }, 92 + "notFoundActor" => %{ 93 + "description" => "indicates that a handle or DID could not be resolved", 94 + "properties" => %{ 95 + "actor" => %{"format" => "at-identifier", "type" => "string"}, 96 + "notFound" => %{"const" => true, "type" => "boolean"} 97 + }, 98 + "required" => ["actor", "notFound"], 99 + "type" => "object" 100 + }, 101 + "referencelist" => %{ 102 + "description" => 103 + "A list of actors used for only for reference purposes such as within a starter pack.", 104 + "type" => "token" 105 + }, 106 + "relationship" => %{ 107 + "description" => 108 + "lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)", 109 + "properties" => %{ 110 + "blockedBy" => %{ 111 + "description" => 112 + "if the actor is blocked by this DID, contains the AT-URI of the block record", 113 + "format" => "at-uri", 114 + "type" => "string" 115 + }, 116 + "blockedByList" => %{ 117 + "description" => 118 + "if the actor is blocked by this DID via a block list, contains the AT-URI of the listblock record", 119 + "format" => "at-uri", 120 + "type" => "string" 121 + }, 122 + "blocking" => %{ 123 + "description" => 124 + "if the actor blocks this DID, this is the AT-URI of the block record", 125 + "format" => "at-uri", 126 + "type" => "string" 127 + }, 128 + "blockingByList" => %{ 129 + "description" => 130 + "if the actor blocks this DID via a block list, this is the AT-URI of the listblock record", 131 + "format" => "at-uri", 132 + "type" => "string" 133 + }, 134 + "did" => %{"format" => "did", "type" => "string"}, 135 + "followedBy" => %{ 136 + "description" => 137 + "if the actor is followed by this DID, contains the AT-URI of the follow record", 138 + "format" => "at-uri", 139 + "type" => "string" 140 + }, 141 + "following" => %{ 142 + "description" => 143 + "if the actor follows this DID, this is the AT-URI of the follow record", 144 + "format" => "at-uri", 145 + "type" => "string" 146 + } 147 + }, 148 + "required" => ["did"], 149 + "type" => "object" 150 + }, 151 + "starterPackView" => %{ 152 + "properties" => %{ 153 + "cid" => %{"format" => "cid", "type" => "string"}, 154 + "creator" => %{ 155 + "ref" => "app.bsky.actor.defs#profileViewBasic", 156 + "type" => "ref" 157 + }, 158 + "feeds" => %{ 159 + "items" => %{ 160 + "ref" => "app.bsky.feed.defs#generatorView", 161 + "type" => "ref" 162 + }, 163 + "maxLength" => 3, 164 + "type" => "array" 165 + }, 166 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 167 + "joinedAllTimeCount" => %{"minimum" => 0, "type" => "integer"}, 168 + "joinedWeekCount" => %{"minimum" => 0, "type" => "integer"}, 169 + "labels" => %{ 170 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 171 + "type" => "array" 172 + }, 173 + "list" => %{"ref" => "#listViewBasic", "type" => "ref"}, 174 + "listItemsSample" => %{ 175 + "items" => %{"ref" => "#listItemView", "type" => "ref"}, 176 + "maxLength" => 12, 177 + "type" => "array" 178 + }, 179 + "record" => %{"type" => "unknown"}, 180 + "uri" => %{"format" => "at-uri", "type" => "string"} 181 + }, 182 + "required" => ["uri", "cid", "record", "creator", "indexedAt"], 183 + "type" => "object" 184 + }, 185 + "starterPackViewBasic" => %{ 186 + "properties" => %{ 187 + "cid" => %{"format" => "cid", "type" => "string"}, 188 + "creator" => %{ 189 + "ref" => "app.bsky.actor.defs#profileViewBasic", 190 + "type" => "ref" 191 + }, 192 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 193 + "joinedAllTimeCount" => %{"minimum" => 0, "type" => "integer"}, 194 + "joinedWeekCount" => %{"minimum" => 0, "type" => "integer"}, 195 + "labels" => %{ 196 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 197 + "type" => "array" 198 + }, 199 + "listItemCount" => %{"minimum" => 0, "type" => "integer"}, 200 + "record" => %{"type" => "unknown"}, 201 + "uri" => %{"format" => "at-uri", "type" => "string"} 202 + }, 203 + "required" => ["uri", "cid", "record", "creator", "indexedAt"], 204 + "type" => "object" 205 + } 206 + }, 207 + "id" => "app.bsky.graph.defs", 208 + "lexicon" => 1 209 + }) 210 + end
+26
lib/atproto/app/bsky/graph/follow.ex
··· 1 + defmodule App.Bsky.Graph.Follow do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView.", 10 + "key" => "tid", 11 + "record" => %{ 12 + "properties" => %{ 13 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 14 + "subject" => %{"format" => "did", "type" => "string"}, 15 + "via" => %{"ref" => "com.atproto.repo.strongRef", "type" => "ref"} 16 + }, 17 + "required" => ["subject", "createdAt"], 18 + "type" => "object" 19 + }, 20 + "type" => "record" 21 + } 22 + }, 23 + "id" => "app.bsky.graph.follow", 24 + "lexicon" => 1 25 + }) 26 + end
+46
lib/atproto/app/bsky/graph/getActorStarterPacks.ex
··· 1 + defmodule App.Bsky.Graph.GetActorStarterPacks do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of starter packs created by the actor.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "starterPacks" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.graph.defs#starterPackViewBasic", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + } 21 + }, 22 + "required" => ["starterPacks"], 23 + "type" => "object" 24 + } 25 + }, 26 + "parameters" => %{ 27 + "properties" => %{ 28 + "actor" => %{"format" => "at-identifier", "type" => "string"}, 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 50, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + } 36 + }, 37 + "required" => ["actor"], 38 + "type" => "params" 39 + }, 40 + "type" => "query" 41 + } 42 + }, 43 + "id" => "app.bsky.graph.getActorStarterPacks", 44 + "lexicon" => 1 45 + }) 46 + end
+45
lib/atproto/app/bsky/graph/getBlocks.ex
··· 1 + defmodule App.Bsky.Graph.GetBlocks do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Enumerates which accounts the requesting account is currently blocking. Requires auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "blocks" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.actor.defs#profileView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "cursor" => %{"type" => "string"} 22 + }, 23 + "required" => ["blocks"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 50, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + } 36 + }, 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.graph.getBlocks", 43 + "lexicon" => 1 44 + }) 45 + end
+50
lib/atproto/app/bsky/graph/getFollowers.ex
··· 1 + defmodule App.Bsky.Graph.GetFollowers do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Enumerates accounts which follow a specified account (actor).", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "followers" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.actor.defs#profileView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "subject" => %{ 22 + "ref" => "app.bsky.actor.defs#profileView", 23 + "type" => "ref" 24 + } 25 + }, 26 + "required" => ["subject", "followers"], 27 + "type" => "object" 28 + } 29 + }, 30 + "parameters" => %{ 31 + "properties" => %{ 32 + "actor" => %{"format" => "at-identifier", "type" => "string"}, 33 + "cursor" => %{"type" => "string"}, 34 + "limit" => %{ 35 + "default" => 50, 36 + "maximum" => 100, 37 + "minimum" => 1, 38 + "type" => "integer" 39 + } 40 + }, 41 + "required" => ["actor"], 42 + "type" => "params" 43 + }, 44 + "type" => "query" 45 + } 46 + }, 47 + "id" => "app.bsky.graph.getFollowers", 48 + "lexicon" => 1 49 + }) 50 + end
+50
lib/atproto/app/bsky/graph/getFollows.ex
··· 1 + defmodule App.Bsky.Graph.GetFollows do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Enumerates accounts which a specified account (actor) follows.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "follows" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.actor.defs#profileView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "subject" => %{ 22 + "ref" => "app.bsky.actor.defs#profileView", 23 + "type" => "ref" 24 + } 25 + }, 26 + "required" => ["subject", "follows"], 27 + "type" => "object" 28 + } 29 + }, 30 + "parameters" => %{ 31 + "properties" => %{ 32 + "actor" => %{"format" => "at-identifier", "type" => "string"}, 33 + "cursor" => %{"type" => "string"}, 34 + "limit" => %{ 35 + "default" => 50, 36 + "maximum" => 100, 37 + "minimum" => 1, 38 + "type" => "integer" 39 + } 40 + }, 41 + "required" => ["actor"], 42 + "type" => "params" 43 + }, 44 + "type" => "query" 45 + } 46 + }, 47 + "id" => "app.bsky.graph.getFollows", 48 + "lexicon" => 1 49 + }) 50 + end
+51
lib/atproto/app/bsky/graph/getKnownFollowers.ex
··· 1 + defmodule App.Bsky.Graph.GetKnownFollowers do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Enumerates accounts which follow a specified account (actor) and are followed by the viewer.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "followers" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.actor.defs#profileView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + }, 22 + "subject" => %{ 23 + "ref" => "app.bsky.actor.defs#profileView", 24 + "type" => "ref" 25 + } 26 + }, 27 + "required" => ["subject", "followers"], 28 + "type" => "object" 29 + } 30 + }, 31 + "parameters" => %{ 32 + "properties" => %{ 33 + "actor" => %{"format" => "at-identifier", "type" => "string"}, 34 + "cursor" => %{"type" => "string"}, 35 + "limit" => %{ 36 + "default" => 50, 37 + "maximum" => 100, 38 + "minimum" => 1, 39 + "type" => "integer" 40 + } 41 + }, 42 + "required" => ["actor"], 43 + "type" => "params" 44 + }, 45 + "type" => "query" 46 + } 47 + }, 48 + "id" => "app.bsky.graph.getKnownFollowers", 49 + "lexicon" => 1 50 + }) 51 + end
+54
lib/atproto/app/bsky/graph/getList.ex
··· 1 + defmodule App.Bsky.Graph.GetList do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Gets a 'view' (with additional context) of a specified list.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "items" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.graph.defs#listItemView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "list" => %{ 22 + "ref" => "app.bsky.graph.defs#listView", 23 + "type" => "ref" 24 + } 25 + }, 26 + "required" => ["list", "items"], 27 + "type" => "object" 28 + } 29 + }, 30 + "parameters" => %{ 31 + "properties" => %{ 32 + "cursor" => %{"type" => "string"}, 33 + "limit" => %{ 34 + "default" => 50, 35 + "maximum" => 100, 36 + "minimum" => 1, 37 + "type" => "integer" 38 + }, 39 + "list" => %{ 40 + "description" => "Reference (AT-URI) of the list record to hydrate.", 41 + "format" => "at-uri", 42 + "type" => "string" 43 + } 44 + }, 45 + "required" => ["list"], 46 + "type" => "params" 47 + }, 48 + "type" => "query" 49 + } 50 + }, 51 + "id" => "app.bsky.graph.getList", 52 + "lexicon" => 1 53 + }) 54 + end
+45
lib/atproto/app/bsky/graph/getListBlocks.ex
··· 1 + defmodule App.Bsky.Graph.GetListBlocks do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get mod lists that the requesting account (actor) is blocking. Requires auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "lists" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.graph.defs#listView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["lists"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 50, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + } 36 + }, 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.graph.getListBlocks", 43 + "lexicon" => 1 44 + }) 45 + end
+45
lib/atproto/app/bsky/graph/getListMutes.ex
··· 1 + defmodule App.Bsky.Graph.GetListMutes do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "lists" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.graph.defs#listView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["lists"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 50, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + } 36 + }, 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.graph.getListMutes", 43 + "lexicon" => 1 44 + }) 45 + end
+59
lib/atproto/app/bsky/graph/getLists.ex
··· 1 + defmodule App.Bsky.Graph.GetLists do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Enumerates the lists created by a specified account (actor).", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "lists" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.graph.defs#listView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + } 21 + }, 22 + "required" => ["lists"], 23 + "type" => "object" 24 + } 25 + }, 26 + "parameters" => %{ 27 + "properties" => %{ 28 + "actor" => %{ 29 + "description" => "The account (actor) to enumerate lists from.", 30 + "format" => "at-identifier", 31 + "type" => "string" 32 + }, 33 + "cursor" => %{"type" => "string"}, 34 + "limit" => %{ 35 + "default" => 50, 36 + "maximum" => 100, 37 + "minimum" => 1, 38 + "type" => "integer" 39 + }, 40 + "purposes" => %{ 41 + "description" => 42 + "Optional filter by list purpose. If not specified, all supported types are returned.", 43 + "items" => %{ 44 + "knownValues" => ["modlist", "curatelist"], 45 + "type" => "string" 46 + }, 47 + "type" => "array" 48 + } 49 + }, 50 + "required" => ["actor"], 51 + "type" => "params" 52 + }, 53 + "type" => "query" 54 + } 55 + }, 56 + "id" => "app.bsky.graph.getLists", 57 + "lexicon" => 1 58 + }) 59 + end
+70
lib/atproto/app/bsky/graph/getListsWithMembership.ex
··· 1 + defmodule App.Bsky.Graph.GetListsWithMembership do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "listWithMembership" => %{ 8 + "description" => 9 + "A list and an optional list item indicating membership of a target user to that list.", 10 + "properties" => %{ 11 + "list" => %{"ref" => "app.bsky.graph.defs#listView", "type" => "ref"}, 12 + "listItem" => %{ 13 + "ref" => "app.bsky.graph.defs#listItemView", 14 + "type" => "ref" 15 + } 16 + }, 17 + "required" => ["list"], 18 + "type" => "object" 19 + }, 20 + "main" => %{ 21 + "description" => 22 + "Enumerates the lists created by the session user, and includes membership information about `actor` in those lists. Only supports curation and moderation lists (no reference lists, used in starter packs). Requires auth.", 23 + "output" => %{ 24 + "encoding" => "application/json", 25 + "schema" => %{ 26 + "properties" => %{ 27 + "cursor" => %{"type" => "string"}, 28 + "listsWithMembership" => %{ 29 + "items" => %{"ref" => "#listWithMembership", "type" => "ref"}, 30 + "type" => "array" 31 + } 32 + }, 33 + "required" => ["listsWithMembership"], 34 + "type" => "object" 35 + } 36 + }, 37 + "parameters" => %{ 38 + "properties" => %{ 39 + "actor" => %{ 40 + "description" => "The account (actor) to check for membership.", 41 + "format" => "at-identifier", 42 + "type" => "string" 43 + }, 44 + "cursor" => %{"type" => "string"}, 45 + "limit" => %{ 46 + "default" => 50, 47 + "maximum" => 100, 48 + "minimum" => 1, 49 + "type" => "integer" 50 + }, 51 + "purposes" => %{ 52 + "description" => 53 + "Optional filter by list purpose. If not specified, all supported types are returned.", 54 + "items" => %{ 55 + "knownValues" => ["modlist", "curatelist"], 56 + "type" => "string" 57 + }, 58 + "type" => "array" 59 + } 60 + }, 61 + "required" => ["actor"], 62 + "type" => "params" 63 + }, 64 + "type" => "query" 65 + } 66 + }, 67 + "id" => "app.bsky.graph.getListsWithMembership", 68 + "lexicon" => 1 69 + }) 70 + end
+45
lib/atproto/app/bsky/graph/getMutes.ex
··· 1 + defmodule App.Bsky.Graph.GetMutes do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Enumerates accounts that the requesting account (actor) currently has muted. Requires auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "mutes" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.actor.defs#profileView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["mutes"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 50, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + } 36 + }, 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.graph.getMutes", 43 + "lexicon" => 1 44 + }) 45 + end
+59
lib/atproto/app/bsky/graph/getRelationships.ex
··· 1 + defmodule App.Bsky.Graph.GetRelationships do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Enumerates public relationships between one account, and a list of other accounts. Does not require auth.", 10 + "errors" => [ 11 + %{ 12 + "description" => "the primary actor at-identifier could not be resolved", 13 + "name" => "ActorNotFound" 14 + } 15 + ], 16 + "output" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "actor" => %{"format" => "did", "type" => "string"}, 21 + "relationships" => %{ 22 + "items" => %{ 23 + "refs" => [ 24 + "app.bsky.graph.defs#relationship", 25 + "app.bsky.graph.defs#notFoundActor" 26 + ], 27 + "type" => "union" 28 + }, 29 + "type" => "array" 30 + } 31 + }, 32 + "required" => ["relationships"], 33 + "type" => "object" 34 + } 35 + }, 36 + "parameters" => %{ 37 + "properties" => %{ 38 + "actor" => %{ 39 + "description" => "Primary account requesting relationships for.", 40 + "format" => "at-identifier", 41 + "type" => "string" 42 + }, 43 + "others" => %{ 44 + "description" => "List of 'other' accounts to be related back to the primary.", 45 + "items" => %{"format" => "at-identifier", "type" => "string"}, 46 + "maxLength" => 30, 47 + "type" => "array" 48 + } 49 + }, 50 + "required" => ["actor"], 51 + "type" => "params" 52 + }, 53 + "type" => "query" 54 + } 55 + }, 56 + "id" => "app.bsky.graph.getRelationships", 57 + "lexicon" => 1 58 + }) 59 + end
+39
lib/atproto/app/bsky/graph/getStarterPack.ex
··· 1 + defmodule App.Bsky.Graph.GetStarterPack do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Gets a view of a starter pack.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "starterPack" => %{ 14 + "ref" => "app.bsky.graph.defs#starterPackView", 15 + "type" => "ref" 16 + } 17 + }, 18 + "required" => ["starterPack"], 19 + "type" => "object" 20 + } 21 + }, 22 + "parameters" => %{ 23 + "properties" => %{ 24 + "starterPack" => %{ 25 + "description" => "Reference (AT-URI) of the starter pack record.", 26 + "format" => "at-uri", 27 + "type" => "string" 28 + } 29 + }, 30 + "required" => ["starterPack"], 31 + "type" => "params" 32 + }, 33 + "type" => "query" 34 + } 35 + }, 36 + "id" => "app.bsky.graph.getStarterPack", 37 + "lexicon" => 1 38 + }) 39 + end
+42
lib/atproto/app/bsky/graph/getStarterPacks.ex
··· 1 + defmodule App.Bsky.Graph.GetStarterPacks do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get views for a list of starter packs.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "starterPacks" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.graph.defs#starterPackViewBasic", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + } 20 + }, 21 + "required" => ["starterPacks"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "uris" => %{ 28 + "items" => %{"format" => "at-uri", "type" => "string"}, 29 + "maxLength" => 25, 30 + "type" => "array" 31 + } 32 + }, 33 + "required" => ["uris"], 34 + "type" => "params" 35 + }, 36 + "type" => "query" 37 + } 38 + }, 39 + "id" => "app.bsky.graph.getStarterPacks", 40 + "lexicon" => 1 41 + }) 42 + end
+67
lib/atproto/app/bsky/graph/getStarterPacksWithMembership.ex
··· 1 + defmodule App.Bsky.Graph.GetStarterPacksWithMembership do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Enumerates the starter packs created by the session user, and includes membership information about `actor` in those starter packs. Requires auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "starterPacksWithMembership" => %{ 16 + "items" => %{ 17 + "ref" => "#starterPackWithMembership", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["starterPacksWithMembership"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "actor" => %{ 30 + "description" => "The account (actor) to check for membership.", 31 + "format" => "at-identifier", 32 + "type" => "string" 33 + }, 34 + "cursor" => %{"type" => "string"}, 35 + "limit" => %{ 36 + "default" => 50, 37 + "maximum" => 100, 38 + "minimum" => 1, 39 + "type" => "integer" 40 + } 41 + }, 42 + "required" => ["actor"], 43 + "type" => "params" 44 + }, 45 + "type" => "query" 46 + }, 47 + "starterPackWithMembership" => %{ 48 + "description" => 49 + "A starter pack and an optional list item indicating membership of a target user to that starter pack.", 50 + "properties" => %{ 51 + "listItem" => %{ 52 + "ref" => "app.bsky.graph.defs#listItemView", 53 + "type" => "ref" 54 + }, 55 + "starterPack" => %{ 56 + "ref" => "app.bsky.graph.defs#starterPackView", 57 + "type" => "ref" 58 + } 59 + }, 60 + "required" => ["starterPack"], 61 + "type" => "object" 62 + } 63 + }, 64 + "id" => "app.bsky.graph.getStarterPacksWithMembership", 65 + "lexicon" => 1 66 + }) 67 + end
+54
lib/atproto/app/bsky/graph/getSuggestedFollowsByActor.ex
··· 1 + defmodule App.Bsky.Graph.GetSuggestedFollowsByActor do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "isFallback" => %{ 15 + "default" => false, 16 + "description" => 17 + "DEPRECATED, unused. Previously: if true, response has fallen-back to generic results, and is not scoped using relativeToDid", 18 + "type" => "boolean" 19 + }, 20 + "recId" => %{ 21 + "description" => "DEPRECATED: use recIdStr instead.", 22 + "type" => "integer" 23 + }, 24 + "recIdStr" => %{ 25 + "description" => 26 + "Snowflake for this recommendation, use when submitting recommendation events.", 27 + "type" => "string" 28 + }, 29 + "suggestions" => %{ 30 + "items" => %{ 31 + "ref" => "app.bsky.actor.defs#profileView", 32 + "type" => "ref" 33 + }, 34 + "type" => "array" 35 + } 36 + }, 37 + "required" => ["suggestions"], 38 + "type" => "object" 39 + } 40 + }, 41 + "parameters" => %{ 42 + "properties" => %{ 43 + "actor" => %{"format" => "at-identifier", "type" => "string"} 44 + }, 45 + "required" => ["actor"], 46 + "type" => "params" 47 + }, 48 + "type" => "query" 49 + } 50 + }, 51 + "id" => "app.bsky.graph.getSuggestedFollowsByActor", 52 + "lexicon" => 1 53 + }) 54 + end
+54
lib/atproto/app/bsky/graph/list.ex
··· 1 + defmodule App.Bsky.Graph.List do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Record representing a list of accounts (actors). Scope includes both moderation-oriented lists and curration-oriented lists.", 10 + "key" => "tid", 11 + "record" => %{ 12 + "properties" => %{ 13 + "avatar" => %{ 14 + "accept" => ["image/png", "image/jpeg"], 15 + "maxSize" => 1_000_000, 16 + "type" => "blob" 17 + }, 18 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 19 + "description" => %{ 20 + "maxGraphemes" => 300, 21 + "maxLength" => 3000, 22 + "type" => "string" 23 + }, 24 + "descriptionFacets" => %{ 25 + "items" => %{"ref" => "app.bsky.richtext.facet", "type" => "ref"}, 26 + "type" => "array" 27 + }, 28 + "labels" => %{ 29 + "refs" => ["com.atproto.label.defs#selfLabels"], 30 + "type" => "union" 31 + }, 32 + "name" => %{ 33 + "description" => "Display name for list; can not be empty.", 34 + "maxLength" => 64, 35 + "minLength" => 1, 36 + "type" => "string" 37 + }, 38 + "purpose" => %{ 39 + "description" => 40 + "Defines the purpose of the list (aka, moderation-oriented or curration-oriented)", 41 + "ref" => "app.bsky.graph.defs#listPurpose", 42 + "type" => "ref" 43 + } 44 + }, 45 + "required" => ["name", "purpose", "createdAt"], 46 + "type" => "object" 47 + }, 48 + "type" => "record" 49 + } 50 + }, 51 + "id" => "app.bsky.graph.list", 52 + "lexicon" => 1 53 + }) 54 + end
+29
lib/atproto/app/bsky/graph/listblock.ex
··· 1 + defmodule App.Bsky.Graph.Listblock do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Record representing a block relationship against an entire an entire list of accounts (actors).", 10 + "key" => "tid", 11 + "record" => %{ 12 + "properties" => %{ 13 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 14 + "subject" => %{ 15 + "description" => "Reference (AT-URI) to the mod list record.", 16 + "format" => "at-uri", 17 + "type" => "string" 18 + } 19 + }, 20 + "required" => ["subject", "createdAt"], 21 + "type" => "object" 22 + }, 23 + "type" => "record" 24 + } 25 + }, 26 + "id" => "app.bsky.graph.listblock", 27 + "lexicon" => 1 28 + }) 29 + end
+34
lib/atproto/app/bsky/graph/listitem.ex
··· 1 + defmodule App.Bsky.Graph.Listitem do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Record representing an account's inclusion on a specific list. The AppView will ignore duplicate listitem records.", 10 + "key" => "tid", 11 + "record" => %{ 12 + "properties" => %{ 13 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 14 + "list" => %{ 15 + "description" => "Reference (AT-URI) to the list record (app.bsky.graph.list).", 16 + "format" => "at-uri", 17 + "type" => "string" 18 + }, 19 + "subject" => %{ 20 + "description" => "The account which is included on the list.", 21 + "format" => "did", 22 + "type" => "string" 23 + } 24 + }, 25 + "required" => ["subject", "list", "createdAt"], 26 + "type" => "object" 27 + }, 28 + "type" => "record" 29 + } 30 + }, 31 + "id" => "app.bsky.graph.listitem", 32 + "lexicon" => 1 33 + }) 34 + end
+26
lib/atproto/app/bsky/graph/muteActor.ex
··· 1 + defmodule App.Bsky.Graph.MuteActor do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires auth.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "actor" => %{"format" => "at-identifier", "type" => "string"} 15 + }, 16 + "required" => ["actor"], 17 + "type" => "object" 18 + } 19 + }, 20 + "type" => "procedure" 21 + } 22 + }, 23 + "id" => "app.bsky.graph.muteActor", 24 + "lexicon" => 1 25 + }) 26 + end
+26
lib/atproto/app/bsky/graph/muteActorList.ex
··· 1 + defmodule App.Bsky.Graph.MuteActorList do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "list" => %{"format" => "at-uri", "type" => "string"} 15 + }, 16 + "required" => ["list"], 17 + "type" => "object" 18 + } 19 + }, 20 + "type" => "procedure" 21 + } 22 + }, 23 + "id" => "app.bsky.graph.muteActorList", 24 + "lexicon" => 1 25 + }) 26 + end
+26
lib/atproto/app/bsky/graph/muteThread.ex
··· 1 + defmodule App.Bsky.Graph.MuteThread do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Mutes a thread preventing notifications from the thread and any of its children. Mutes are private in Bluesky. Requires auth.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "root" => %{"format" => "at-uri", "type" => "string"} 15 + }, 16 + "required" => ["root"], 17 + "type" => "object" 18 + } 19 + }, 20 + "type" => "procedure" 21 + } 22 + }, 23 + "id" => "app.bsky.graph.muteThread", 24 + "lexicon" => 1 25 + }) 26 + end
+50
lib/atproto/app/bsky/graph/searchStarterPacks.ex
··· 1 + defmodule App.Bsky.Graph.SearchStarterPacks do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Find starter packs matching search criteria. Does not require auth.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "starterPacks" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.graph.defs#starterPackViewBasic", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + } 21 + }, 22 + "required" => ["starterPacks"], 23 + "type" => "object" 24 + } 25 + }, 26 + "parameters" => %{ 27 + "properties" => %{ 28 + "cursor" => %{"type" => "string"}, 29 + "limit" => %{ 30 + "default" => 25, 31 + "maximum" => 100, 32 + "minimum" => 1, 33 + "type" => "integer" 34 + }, 35 + "q" => %{ 36 + "description" => 37 + "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.", 38 + "type" => "string" 39 + } 40 + }, 41 + "required" => ["q"], 42 + "type" => "params" 43 + }, 44 + "type" => "query" 45 + } 46 + }, 47 + "id" => "app.bsky.graph.searchStarterPacks", 48 + "lexicon" => 1 49 + }) 50 + end
+54
lib/atproto/app/bsky/graph/starterpack.ex
··· 1 + defmodule App.Bsky.Graph.Starterpack do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "feedItem" => %{ 8 + "properties" => %{"uri" => %{"format" => "at-uri", "type" => "string"}}, 9 + "required" => ["uri"], 10 + "type" => "object" 11 + }, 12 + "main" => %{ 13 + "description" => "Record defining a starter pack of actors and feeds for new users.", 14 + "key" => "tid", 15 + "record" => %{ 16 + "properties" => %{ 17 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 18 + "description" => %{ 19 + "maxGraphemes" => 300, 20 + "maxLength" => 3000, 21 + "type" => "string" 22 + }, 23 + "descriptionFacets" => %{ 24 + "items" => %{"ref" => "app.bsky.richtext.facet", "type" => "ref"}, 25 + "type" => "array" 26 + }, 27 + "feeds" => %{ 28 + "items" => %{"ref" => "#feedItem", "type" => "ref"}, 29 + "maxLength" => 3, 30 + "type" => "array" 31 + }, 32 + "list" => %{ 33 + "description" => "Reference (AT-URI) to the list record.", 34 + "format" => "at-uri", 35 + "type" => "string" 36 + }, 37 + "name" => %{ 38 + "description" => "Display name for starter pack; can not be empty.", 39 + "maxGraphemes" => 50, 40 + "maxLength" => 500, 41 + "minLength" => 1, 42 + "type" => "string" 43 + } 44 + }, 45 + "required" => ["name", "list", "createdAt"], 46 + "type" => "object" 47 + }, 48 + "type" => "record" 49 + } 50 + }, 51 + "id" => "app.bsky.graph.starterpack", 52 + "lexicon" => 1 53 + }) 54 + end
+25
lib/atproto/app/bsky/graph/unmuteActor.ex
··· 1 + defmodule App.Bsky.Graph.UnmuteActor do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Unmutes the specified account. Requires auth.", 9 + "input" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "actor" => %{"format" => "at-identifier", "type" => "string"} 14 + }, 15 + "required" => ["actor"], 16 + "type" => "object" 17 + } 18 + }, 19 + "type" => "procedure" 20 + } 21 + }, 22 + "id" => "app.bsky.graph.unmuteActor", 23 + "lexicon" => 1 24 + }) 25 + end
+25
lib/atproto/app/bsky/graph/unmuteActorList.ex
··· 1 + defmodule App.Bsky.Graph.UnmuteActorList do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Unmutes the specified list of accounts. Requires auth.", 9 + "input" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "list" => %{"format" => "at-uri", "type" => "string"} 14 + }, 15 + "required" => ["list"], 16 + "type" => "object" 17 + } 18 + }, 19 + "type" => "procedure" 20 + } 21 + }, 22 + "id" => "app.bsky.graph.unmuteActorList", 23 + "lexicon" => 1 24 + }) 25 + end
+25
lib/atproto/app/bsky/graph/unmuteThread.ex
··· 1 + defmodule App.Bsky.Graph.UnmuteThread do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Unmutes the specified thread. Requires auth.", 9 + "input" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "root" => %{"format" => "at-uri", "type" => "string"} 14 + }, 15 + "required" => ["root"], 16 + "type" => "object" 17 + } 18 + }, 19 + "type" => "procedure" 20 + } 21 + }, 22 + "id" => "app.bsky.graph.unmuteThread", 23 + "lexicon" => 1 24 + }) 25 + end
+44
lib/atproto/app/bsky/graph/verification.ex
··· 1 + defmodule App.Bsky.Graph.Verification do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted.", 10 + "key" => "tid", 11 + "record" => %{ 12 + "properties" => %{ 13 + "createdAt" => %{ 14 + "description" => "Date of when the verification was created.", 15 + "format" => "datetime", 16 + "type" => "string" 17 + }, 18 + "displayName" => %{ 19 + "description" => 20 + "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.", 21 + "type" => "string" 22 + }, 23 + "handle" => %{ 24 + "description" => 25 + "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.", 26 + "format" => "handle", 27 + "type" => "string" 28 + }, 29 + "subject" => %{ 30 + "description" => "DID of the subject the verification applies to.", 31 + "format" => "did", 32 + "type" => "string" 33 + } 34 + }, 35 + "required" => ["subject", "handle", "displayName", "createdAt"], 36 + "type" => "object" 37 + }, 38 + "type" => "record" 39 + } 40 + }, 41 + "id" => "app.bsky.graph.verification", 42 + "lexicon" => 1 43 + }) 44 + end
+105
lib/atproto/app/bsky/labeler/defs.ex
··· 1 + defmodule App.Bsky.Labeler.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "labelerPolicies" => %{ 8 + "properties" => %{ 9 + "labelValueDefinitions" => %{ 10 + "description" => 11 + "Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler.", 12 + "items" => %{ 13 + "ref" => "com.atproto.label.defs#labelValueDefinition", 14 + "type" => "ref" 15 + }, 16 + "type" => "array" 17 + }, 18 + "labelValues" => %{ 19 + "description" => 20 + "The label values which this labeler publishes. May include global or custom labels.", 21 + "items" => %{ 22 + "ref" => "com.atproto.label.defs#labelValue", 23 + "type" => "ref" 24 + }, 25 + "type" => "array" 26 + } 27 + }, 28 + "required" => ["labelValues"], 29 + "type" => "object" 30 + }, 31 + "labelerView" => %{ 32 + "properties" => %{ 33 + "cid" => %{"format" => "cid", "type" => "string"}, 34 + "creator" => %{ 35 + "ref" => "app.bsky.actor.defs#profileView", 36 + "type" => "ref" 37 + }, 38 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 39 + "labels" => %{ 40 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 41 + "type" => "array" 42 + }, 43 + "likeCount" => %{"minimum" => 0, "type" => "integer"}, 44 + "uri" => %{"format" => "at-uri", "type" => "string"}, 45 + "viewer" => %{"ref" => "#labelerViewerState", "type" => "ref"} 46 + }, 47 + "required" => ["uri", "cid", "creator", "indexedAt"], 48 + "type" => "object" 49 + }, 50 + "labelerViewDetailed" => %{ 51 + "properties" => %{ 52 + "cid" => %{"format" => "cid", "type" => "string"}, 53 + "creator" => %{ 54 + "ref" => "app.bsky.actor.defs#profileView", 55 + "type" => "ref" 56 + }, 57 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 58 + "labels" => %{ 59 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 60 + "type" => "array" 61 + }, 62 + "likeCount" => %{"minimum" => 0, "type" => "integer"}, 63 + "policies" => %{ 64 + "ref" => "app.bsky.labeler.defs#labelerPolicies", 65 + "type" => "ref" 66 + }, 67 + "reasonTypes" => %{ 68 + "description" => 69 + "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.", 70 + "items" => %{ 71 + "ref" => "com.atproto.moderation.defs#reasonType", 72 + "type" => "ref" 73 + }, 74 + "type" => "array" 75 + }, 76 + "subjectCollections" => %{ 77 + "description" => 78 + "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.", 79 + "items" => %{"format" => "nsid", "type" => "string"}, 80 + "type" => "array" 81 + }, 82 + "subjectTypes" => %{ 83 + "description" => 84 + "The set of subject types (account, record, etc) this service accepts reports on.", 85 + "items" => %{ 86 + "ref" => "com.atproto.moderation.defs#subjectType", 87 + "type" => "ref" 88 + }, 89 + "type" => "array" 90 + }, 91 + "uri" => %{"format" => "at-uri", "type" => "string"}, 92 + "viewer" => %{"ref" => "#labelerViewerState", "type" => "ref"} 93 + }, 94 + "required" => ["uri", "cid", "creator", "policies", "indexedAt"], 95 + "type" => "object" 96 + }, 97 + "labelerViewerState" => %{ 98 + "properties" => %{"like" => %{"format" => "at-uri", "type" => "string"}}, 99 + "type" => "object" 100 + } 101 + }, 102 + "id" => "app.bsky.labeler.defs", 103 + "lexicon" => 1 104 + }) 105 + end
+45
lib/atproto/app/bsky/labeler/getServices.ex
··· 1 + defmodule App.Bsky.Labeler.GetServices do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get information about a list of labeler services.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "views" => %{ 14 + "items" => %{ 15 + "refs" => [ 16 + "app.bsky.labeler.defs#labelerView", 17 + "app.bsky.labeler.defs#labelerViewDetailed" 18 + ], 19 + "type" => "union" 20 + }, 21 + "type" => "array" 22 + } 23 + }, 24 + "required" => ["views"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "detailed" => %{"default" => false, "type" => "boolean"}, 31 + "dids" => %{ 32 + "items" => %{"format" => "did", "type" => "string"}, 33 + "type" => "array" 34 + } 35 + }, 36 + "required" => ["dids"], 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.labeler.getServices", 43 + "lexicon" => 1 44 + }) 45 + end
+55
lib/atproto/app/bsky/labeler/service.ex
··· 1 + defmodule App.Bsky.Labeler.Service do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "A declaration of the existence of labeler service.", 9 + "key" => "literal:self", 10 + "record" => %{ 11 + "properties" => %{ 12 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 13 + "labels" => %{ 14 + "refs" => ["com.atproto.label.defs#selfLabels"], 15 + "type" => "union" 16 + }, 17 + "policies" => %{ 18 + "ref" => "app.bsky.labeler.defs#labelerPolicies", 19 + "type" => "ref" 20 + }, 21 + "reasonTypes" => %{ 22 + "description" => 23 + "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.", 24 + "items" => %{ 25 + "ref" => "com.atproto.moderation.defs#reasonType", 26 + "type" => "ref" 27 + }, 28 + "type" => "array" 29 + }, 30 + "subjectCollections" => %{ 31 + "description" => 32 + "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.", 33 + "items" => %{"format" => "nsid", "type" => "string"}, 34 + "type" => "array" 35 + }, 36 + "subjectTypes" => %{ 37 + "description" => 38 + "The set of subject types (account, record, etc) this service accepts reports on.", 39 + "items" => %{ 40 + "ref" => "com.atproto.moderation.defs#subjectType", 41 + "type" => "ref" 42 + }, 43 + "type" => "array" 44 + } 45 + }, 46 + "required" => ["policies", "createdAt"], 47 + "type" => "object" 48 + }, 49 + "type" => "record" 50 + } 51 + }, 52 + "id" => "app.bsky.labeler.service", 53 + "lexicon" => 1 54 + }) 55 + end
+29
lib/atproto/app/bsky/notification/declaration.ex
··· 1 + defmodule App.Bsky.Notification.Declaration do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "A declaration of the user's choices related to notifications that can be produced by them.", 10 + "key" => "literal:self", 11 + "record" => %{ 12 + "properties" => %{ 13 + "allowSubscriptions" => %{ 14 + "description" => 15 + "A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'.", 16 + "knownValues" => ["followers", "mutuals", "none"], 17 + "type" => "string" 18 + } 19 + }, 20 + "required" => ["allowSubscriptions"], 21 + "type" => "object" 22 + }, 23 + "type" => "record" 24 + } 25 + }, 26 + "id" => "app.bsky.notification.declaration", 27 + "lexicon" => 1 28 + }) 29 + end
+93
lib/atproto/app/bsky/notification/defs.ex
··· 1 + defmodule App.Bsky.Notification.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "activitySubscription" => %{ 8 + "properties" => %{ 9 + "post" => %{"type" => "boolean"}, 10 + "reply" => %{"type" => "boolean"} 11 + }, 12 + "required" => ["post", "reply"], 13 + "type" => "object" 14 + }, 15 + "chatPreference" => %{ 16 + "properties" => %{ 17 + "include" => %{"knownValues" => ["all", "accepted"], "type" => "string"}, 18 + "push" => %{"type" => "boolean"} 19 + }, 20 + "required" => ["include", "push"], 21 + "type" => "object" 22 + }, 23 + "filterablePreference" => %{ 24 + "properties" => %{ 25 + "include" => %{"knownValues" => ["all", "follows"], "type" => "string"}, 26 + "list" => %{"type" => "boolean"}, 27 + "push" => %{"type" => "boolean"} 28 + }, 29 + "required" => ["include", "list", "push"], 30 + "type" => "object" 31 + }, 32 + "preference" => %{ 33 + "properties" => %{ 34 + "list" => %{"type" => "boolean"}, 35 + "push" => %{"type" => "boolean"} 36 + }, 37 + "required" => ["list", "push"], 38 + "type" => "object" 39 + }, 40 + "preferences" => %{ 41 + "properties" => %{ 42 + "chat" => %{"ref" => "#chatPreference", "type" => "ref"}, 43 + "follow" => %{"ref" => "#filterablePreference", "type" => "ref"}, 44 + "like" => %{"ref" => "#filterablePreference", "type" => "ref"}, 45 + "likeViaRepost" => %{"ref" => "#filterablePreference", "type" => "ref"}, 46 + "mention" => %{"ref" => "#filterablePreference", "type" => "ref"}, 47 + "quote" => %{"ref" => "#filterablePreference", "type" => "ref"}, 48 + "reply" => %{"ref" => "#filterablePreference", "type" => "ref"}, 49 + "repost" => %{"ref" => "#filterablePreference", "type" => "ref"}, 50 + "repostViaRepost" => %{ 51 + "ref" => "#filterablePreference", 52 + "type" => "ref" 53 + }, 54 + "starterpackJoined" => %{"ref" => "#preference", "type" => "ref"}, 55 + "subscribedPost" => %{"ref" => "#preference", "type" => "ref"}, 56 + "unverified" => %{"ref" => "#preference", "type" => "ref"}, 57 + "verified" => %{"ref" => "#preference", "type" => "ref"} 58 + }, 59 + "required" => [ 60 + "chat", 61 + "follow", 62 + "like", 63 + "likeViaRepost", 64 + "mention", 65 + "quote", 66 + "reply", 67 + "repost", 68 + "repostViaRepost", 69 + "starterpackJoined", 70 + "subscribedPost", 71 + "unverified", 72 + "verified" 73 + ], 74 + "type" => "object" 75 + }, 76 + "recordDeleted" => %{"properties" => %{}, "type" => "object"}, 77 + "subjectActivitySubscription" => %{ 78 + "description" => "Object used to store activity subscription data in stash.", 79 + "properties" => %{ 80 + "activitySubscription" => %{ 81 + "ref" => "#activitySubscription", 82 + "type" => "ref" 83 + }, 84 + "subject" => %{"format" => "did", "type" => "string"} 85 + }, 86 + "required" => ["subject", "activitySubscription"], 87 + "type" => "object" 88 + } 89 + }, 90 + "id" => "app.bsky.notification.defs", 91 + "lexicon" => 1 92 + }) 93 + end
+29
lib/atproto/app/bsky/notification/getPreferences.ex
··· 1 + defmodule App.Bsky.Notification.GetPreferences do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get notification-related preferences for an account. Requires auth.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "preferences" => %{ 14 + "ref" => "app.bsky.notification.defs#preferences", 15 + "type" => "ref" 16 + } 17 + }, 18 + "required" => ["preferences"], 19 + "type" => "object" 20 + } 21 + }, 22 + "parameters" => %{"properties" => %{}, "type" => "params"}, 23 + "type" => "query" 24 + } 25 + }, 26 + "id" => "app.bsky.notification.getPreferences", 27 + "lexicon" => 1 28 + }) 29 + end
+31
lib/atproto/app/bsky/notification/getUnreadCount.ex
··· 1 + defmodule App.Bsky.Notification.GetUnreadCount do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Count the number of unread notifications for the requesting account. Requires auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{"count" => %{"type" => "integer"}}, 14 + "required" => ["count"], 15 + "type" => "object" 16 + } 17 + }, 18 + "parameters" => %{ 19 + "properties" => %{ 20 + "priority" => %{"type" => "boolean"}, 21 + "seenAt" => %{"format" => "datetime", "type" => "string"} 22 + }, 23 + "type" => "params" 24 + }, 25 + "type" => "query" 26 + } 27 + }, 28 + "id" => "app.bsky.notification.getUnreadCount", 29 + "lexicon" => 1 30 + }) 31 + end
+45
lib/atproto/app/bsky/notification/listActivitySubscriptions.ex
··· 1 + defmodule App.Bsky.Notification.ListActivitySubscriptions do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Enumerate all accounts to which the requesting account is subscribed to receive notifications for. Requires auth.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "subscriptions" => %{ 16 + "items" => %{ 17 + "ref" => "app.bsky.actor.defs#profileView", 18 + "type" => "ref" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["subscriptions"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "cursor" => %{"type" => "string"}, 30 + "limit" => %{ 31 + "default" => 50, 32 + "maximum" => 100, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + } 36 + }, 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.notification.listActivitySubscriptions", 43 + "lexicon" => 1 44 + }) 45 + end
+93
lib/atproto/app/bsky/notification/listNotifications.ex
··· 1 + defmodule App.Bsky.Notification.ListNotifications do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Enumerate notifications for the requesting account. Requires auth.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "notifications" => %{ 15 + "items" => %{"ref" => "#notification", "type" => "ref"}, 16 + "type" => "array" 17 + }, 18 + "priority" => %{"type" => "boolean"}, 19 + "seenAt" => %{"format" => "datetime", "type" => "string"} 20 + }, 21 + "required" => ["notifications"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "cursor" => %{"type" => "string"}, 28 + "limit" => %{ 29 + "default" => 50, 30 + "maximum" => 100, 31 + "minimum" => 1, 32 + "type" => "integer" 33 + }, 34 + "priority" => %{"type" => "boolean"}, 35 + "reasons" => %{ 36 + "description" => "Notification reasons to include in response.", 37 + "items" => %{ 38 + "description" => "A reason that matches the reason property of #notification.", 39 + "type" => "string" 40 + }, 41 + "type" => "array" 42 + }, 43 + "seenAt" => %{"format" => "datetime", "type" => "string"} 44 + }, 45 + "type" => "params" 46 + }, 47 + "type" => "query" 48 + }, 49 + "notification" => %{ 50 + "properties" => %{ 51 + "author" => %{ 52 + "ref" => "app.bsky.actor.defs#profileView", 53 + "type" => "ref" 54 + }, 55 + "cid" => %{"format" => "cid", "type" => "string"}, 56 + "indexedAt" => %{"format" => "datetime", "type" => "string"}, 57 + "isRead" => %{"type" => "boolean"}, 58 + "labels" => %{ 59 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 60 + "type" => "array" 61 + }, 62 + "reason" => %{ 63 + "description" => 64 + "The reason why this notification was delivered - e.g. your post was liked, or you received a new follower.", 65 + "knownValues" => [ 66 + "like", 67 + "repost", 68 + "follow", 69 + "mention", 70 + "reply", 71 + "quote", 72 + "starterpack-joined", 73 + "verified", 74 + "unverified", 75 + "like-via-repost", 76 + "repost-via-repost", 77 + "subscribed-post", 78 + "contact-match" 79 + ], 80 + "type" => "string" 81 + }, 82 + "reasonSubject" => %{"format" => "at-uri", "type" => "string"}, 83 + "record" => %{"type" => "unknown"}, 84 + "uri" => %{"format" => "at-uri", "type" => "string"} 85 + }, 86 + "required" => ["uri", "cid", "author", "reason", "record", "isRead", "indexedAt"], 87 + "type" => "object" 88 + } 89 + }, 90 + "id" => "app.bsky.notification.listNotifications", 91 + "lexicon" => 1 92 + }) 93 + end
+44
lib/atproto/app/bsky/notification/putActivitySubscription.ex
··· 1 + defmodule App.Bsky.Notification.PutActivitySubscription do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Puts an activity subscription entry. The key should be omitted for creation and provided for updates. Requires auth.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "activitySubscription" => %{ 15 + "ref" => "app.bsky.notification.defs#activitySubscription", 16 + "type" => "ref" 17 + }, 18 + "subject" => %{"format" => "did", "type" => "string"} 19 + }, 20 + "required" => ["subject", "activitySubscription"], 21 + "type" => "object" 22 + } 23 + }, 24 + "output" => %{ 25 + "encoding" => "application/json", 26 + "schema" => %{ 27 + "properties" => %{ 28 + "activitySubscription" => %{ 29 + "ref" => "app.bsky.notification.defs#activitySubscription", 30 + "type" => "ref" 31 + }, 32 + "subject" => %{"format" => "did", "type" => "string"} 33 + }, 34 + "required" => ["subject"], 35 + "type" => "object" 36 + } 37 + }, 38 + "type" => "procedure" 39 + } 40 + }, 41 + "id" => "app.bsky.notification.putActivitySubscription", 42 + "lexicon" => 1 43 + }) 44 + end
+23
lib/atproto/app/bsky/notification/putPreferences.ex
··· 1 + defmodule App.Bsky.Notification.PutPreferences do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Set notification-related preferences for an account. Requires auth.", 9 + "input" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{"priority" => %{"type" => "boolean"}}, 13 + "required" => ["priority"], 14 + "type" => "object" 15 + } 16 + }, 17 + "type" => "procedure" 18 + } 19 + }, 20 + "id" => "app.bsky.notification.putPreferences", 21 + "lexicon" => 1 22 + }) 23 + end
+88
lib/atproto/app/bsky/notification/putPreferencesV2.ex
··· 1 + defmodule App.Bsky.Notification.PutPreferencesV2 do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Set notification-related preferences for an account. Requires auth.", 9 + "input" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "chat" => %{ 14 + "ref" => "app.bsky.notification.defs#chatPreference", 15 + "type" => "ref" 16 + }, 17 + "follow" => %{ 18 + "ref" => "app.bsky.notification.defs#filterablePreference", 19 + "type" => "ref" 20 + }, 21 + "like" => %{ 22 + "ref" => "app.bsky.notification.defs#filterablePreference", 23 + "type" => "ref" 24 + }, 25 + "likeViaRepost" => %{ 26 + "ref" => "app.bsky.notification.defs#filterablePreference", 27 + "type" => "ref" 28 + }, 29 + "mention" => %{ 30 + "ref" => "app.bsky.notification.defs#filterablePreference", 31 + "type" => "ref" 32 + }, 33 + "quote" => %{ 34 + "ref" => "app.bsky.notification.defs#filterablePreference", 35 + "type" => "ref" 36 + }, 37 + "reply" => %{ 38 + "ref" => "app.bsky.notification.defs#filterablePreference", 39 + "type" => "ref" 40 + }, 41 + "repost" => %{ 42 + "ref" => "app.bsky.notification.defs#filterablePreference", 43 + "type" => "ref" 44 + }, 45 + "repostViaRepost" => %{ 46 + "ref" => "app.bsky.notification.defs#filterablePreference", 47 + "type" => "ref" 48 + }, 49 + "starterpackJoined" => %{ 50 + "ref" => "app.bsky.notification.defs#preference", 51 + "type" => "ref" 52 + }, 53 + "subscribedPost" => %{ 54 + "ref" => "app.bsky.notification.defs#preference", 55 + "type" => "ref" 56 + }, 57 + "unverified" => %{ 58 + "ref" => "app.bsky.notification.defs#preference", 59 + "type" => "ref" 60 + }, 61 + "verified" => %{ 62 + "ref" => "app.bsky.notification.defs#preference", 63 + "type" => "ref" 64 + } 65 + }, 66 + "type" => "object" 67 + } 68 + }, 69 + "output" => %{ 70 + "encoding" => "application/json", 71 + "schema" => %{ 72 + "properties" => %{ 73 + "preferences" => %{ 74 + "ref" => "app.bsky.notification.defs#preferences", 75 + "type" => "ref" 76 + } 77 + }, 78 + "required" => ["preferences"], 79 + "type" => "object" 80 + } 81 + }, 82 + "type" => "procedure" 83 + } 84 + }, 85 + "id" => "app.bsky.notification.putPreferencesV2", 86 + "lexicon" => 1 87 + }) 88 + end
+36
lib/atproto/app/bsky/notification/registerPush.ex
··· 1 + defmodule App.Bsky.Notification.RegisterPush do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Register to receive push notifications, via a specified service, for the requesting account. Requires auth.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "ageRestricted" => %{ 15 + "description" => "Set to true when the actor is age restricted", 16 + "type" => "boolean" 17 + }, 18 + "appId" => %{"type" => "string"}, 19 + "platform" => %{ 20 + "knownValues" => ["ios", "android", "web"], 21 + "type" => "string" 22 + }, 23 + "serviceDid" => %{"format" => "did", "type" => "string"}, 24 + "token" => %{"type" => "string"} 25 + }, 26 + "required" => ["serviceDid", "token", "platform", "appId"], 27 + "type" => "object" 28 + } 29 + }, 30 + "type" => "procedure" 31 + } 32 + }, 33 + "id" => "app.bsky.notification.registerPush", 34 + "lexicon" => 1 35 + }) 36 + end
+32
lib/atproto/app/bsky/notification/unregisterPush.ex
··· 1 + defmodule App.Bsky.Notification.UnregisterPush do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "The inverse of registerPush - inform a specified service that push notifications should no longer be sent to the given token for the requesting account. Requires auth.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "appId" => %{"type" => "string"}, 15 + "platform" => %{ 16 + "knownValues" => ["ios", "android", "web"], 17 + "type" => "string" 18 + }, 19 + "serviceDid" => %{"format" => "did", "type" => "string"}, 20 + "token" => %{"type" => "string"} 21 + }, 22 + "required" => ["serviceDid", "token", "platform", "appId"], 23 + "type" => "object" 24 + } 25 + }, 26 + "type" => "procedure" 27 + } 28 + }, 29 + "id" => "app.bsky.notification.unregisterPush", 30 + "lexicon" => 1 31 + }) 32 + end
+26
lib/atproto/app/bsky/notification/updateSeen.ex
··· 1 + defmodule App.Bsky.Notification.UpdateSeen do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Notify server that the requesting account has seen notifications. Requires auth.", 10 + "input" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "seenAt" => %{"format" => "datetime", "type" => "string"} 15 + }, 16 + "required" => ["seenAt"], 17 + "type" => "object" 18 + } 19 + }, 20 + "type" => "procedure" 21 + } 22 + }, 23 + "id" => "app.bsky.notification.updateSeen", 24 + "lexicon" => 1 25 + }) 26 + end
+59
lib/atproto/app/bsky/richtext/facet.ex
··· 1 + defmodule App.Bsky.Richtext.Facet do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "byteSlice" => %{ 8 + "description" => 9 + "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.", 10 + "properties" => %{ 11 + "byteEnd" => %{"minimum" => 0, "type" => "integer"}, 12 + "byteStart" => %{"minimum" => 0, "type" => "integer"} 13 + }, 14 + "required" => ["byteStart", "byteEnd"], 15 + "type" => "object" 16 + }, 17 + "link" => %{ 18 + "description" => 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 + "properties" => %{"uri" => %{"format" => "uri", "type" => "string"}}, 21 + "required" => ["uri"], 22 + "type" => "object" 23 + }, 24 + "main" => %{ 25 + "description" => "Annotation of a sub-string within rich text.", 26 + "properties" => %{ 27 + "features" => %{ 28 + "items" => %{ 29 + "refs" => ["#mention", "#link", "#tag"], 30 + "type" => "union" 31 + }, 32 + "type" => "array" 33 + }, 34 + "index" => %{"ref" => "#byteSlice", "type" => "ref"} 35 + }, 36 + "required" => ["index", "features"], 37 + "type" => "object" 38 + }, 39 + "mention" => %{ 40 + "description" => 41 + "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.", 42 + "properties" => %{"did" => %{"format" => "did", "type" => "string"}}, 43 + "required" => ["did"], 44 + "type" => "object" 45 + }, 46 + "tag" => %{ 47 + "description" => 48 + "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').", 49 + "properties" => %{ 50 + "tag" => %{"maxGraphemes" => 64, "maxLength" => 640, "type" => "string"} 51 + }, 52 + "required" => ["tag"], 53 + "type" => "object" 54 + } 55 + }, 56 + "id" => "app.bsky.richtext.facet", 57 + "lexicon" => 1 58 + }) 59 + end
+183
lib/atproto/app/bsky/unspecced/defs.ex
··· 1 + defmodule App.Bsky.Unspecced.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "ageAssuranceEvent" => %{ 8 + "description" => "Object used to store age assurance data in stash.", 9 + "properties" => %{ 10 + "attemptId" => %{ 11 + "description" => 12 + "The unique identifier for this instance of the age assurance flow, in UUID format.", 13 + "type" => "string" 14 + }, 15 + "completeIp" => %{ 16 + "description" => "The IP address used when completing the AA flow.", 17 + "type" => "string" 18 + }, 19 + "completeUa" => %{ 20 + "description" => "The user agent used when completing the AA flow.", 21 + "type" => "string" 22 + }, 23 + "createdAt" => %{ 24 + "description" => "The date and time of this write operation.", 25 + "format" => "datetime", 26 + "type" => "string" 27 + }, 28 + "email" => %{ 29 + "description" => "The email used for AA.", 30 + "type" => "string" 31 + }, 32 + "initIp" => %{ 33 + "description" => "The IP address used when initiating the AA flow.", 34 + "type" => "string" 35 + }, 36 + "initUa" => %{ 37 + "description" => "The user agent used when initiating the AA flow.", 38 + "type" => "string" 39 + }, 40 + "status" => %{ 41 + "description" => "The status of the age assurance process.", 42 + "knownValues" => ["unknown", "pending", "assured"], 43 + "type" => "string" 44 + } 45 + }, 46 + "required" => ["createdAt", "status", "attemptId"], 47 + "type" => "object" 48 + }, 49 + "ageAssuranceState" => %{ 50 + "description" => 51 + "The computed state of the age assurance process, returned to the user in question on certain authenticated requests.", 52 + "properties" => %{ 53 + "lastInitiatedAt" => %{ 54 + "description" => "The timestamp when this state was last updated.", 55 + "format" => "datetime", 56 + "type" => "string" 57 + }, 58 + "status" => %{ 59 + "description" => "The status of the age assurance process.", 60 + "knownValues" => ["unknown", "pending", "assured", "blocked"], 61 + "type" => "string" 62 + } 63 + }, 64 + "required" => ["status"], 65 + "type" => "object" 66 + }, 67 + "skeletonSearchActor" => %{ 68 + "properties" => %{"did" => %{"format" => "did", "type" => "string"}}, 69 + "required" => ["did"], 70 + "type" => "object" 71 + }, 72 + "skeletonSearchPost" => %{ 73 + "properties" => %{"uri" => %{"format" => "at-uri", "type" => "string"}}, 74 + "required" => ["uri"], 75 + "type" => "object" 76 + }, 77 + "skeletonSearchStarterPack" => %{ 78 + "properties" => %{"uri" => %{"format" => "at-uri", "type" => "string"}}, 79 + "required" => ["uri"], 80 + "type" => "object" 81 + }, 82 + "skeletonTrend" => %{ 83 + "properties" => %{ 84 + "category" => %{"type" => "string"}, 85 + "dids" => %{ 86 + "items" => %{"format" => "did", "type" => "string"}, 87 + "type" => "array" 88 + }, 89 + "displayName" => %{"type" => "string"}, 90 + "link" => %{"type" => "string"}, 91 + "postCount" => %{"type" => "integer"}, 92 + "startedAt" => %{"format" => "datetime", "type" => "string"}, 93 + "status" => %{"knownValues" => ["hot"], "type" => "string"}, 94 + "topic" => %{"type" => "string"} 95 + }, 96 + "required" => ["topic", "displayName", "link", "startedAt", "postCount", "dids"], 97 + "type" => "object" 98 + }, 99 + "threadItemBlocked" => %{ 100 + "properties" => %{ 101 + "author" => %{ 102 + "ref" => "app.bsky.feed.defs#blockedAuthor", 103 + "type" => "ref" 104 + } 105 + }, 106 + "required" => ["author"], 107 + "type" => "object" 108 + }, 109 + "threadItemNoUnauthenticated" => %{"properties" => %{}, "type" => "object"}, 110 + "threadItemNotFound" => %{"properties" => %{}, "type" => "object"}, 111 + "threadItemPost" => %{ 112 + "properties" => %{ 113 + "hiddenByThreadgate" => %{ 114 + "description" => 115 + "The threadgate created by the author indicates this post as a reply to be hidden for everyone consuming the thread.", 116 + "type" => "boolean" 117 + }, 118 + "moreParents" => %{ 119 + "description" => 120 + "This post has more parents that were not present in the response. This is just a boolean, without the number of parents.", 121 + "type" => "boolean" 122 + }, 123 + "moreReplies" => %{ 124 + "description" => 125 + "This post has more replies that were not present in the response. This is a numeric value, which is best-effort and might not be accurate.", 126 + "type" => "integer" 127 + }, 128 + "mutedByViewer" => %{ 129 + "description" => "This is by an account muted by the viewer requesting it.", 130 + "type" => "boolean" 131 + }, 132 + "opThread" => %{ 133 + "description" => 134 + "This post is part of a contiguous thread by the OP from the thread root. Many different OP threads can happen in the same thread.", 135 + "type" => "boolean" 136 + }, 137 + "post" => %{"ref" => "app.bsky.feed.defs#postView", "type" => "ref"} 138 + }, 139 + "required" => [ 140 + "post", 141 + "moreParents", 142 + "moreReplies", 143 + "opThread", 144 + "hiddenByThreadgate", 145 + "mutedByViewer" 146 + ], 147 + "type" => "object" 148 + }, 149 + "trendView" => %{ 150 + "properties" => %{ 151 + "actors" => %{ 152 + "items" => %{ 153 + "ref" => "app.bsky.actor.defs#profileViewBasic", 154 + "type" => "ref" 155 + }, 156 + "type" => "array" 157 + }, 158 + "category" => %{"type" => "string"}, 159 + "displayName" => %{"type" => "string"}, 160 + "link" => %{"type" => "string"}, 161 + "postCount" => %{"type" => "integer"}, 162 + "startedAt" => %{"format" => "datetime", "type" => "string"}, 163 + "status" => %{"knownValues" => ["hot"], "type" => "string"}, 164 + "topic" => %{"type" => "string"} 165 + }, 166 + "required" => ["topic", "displayName", "link", "startedAt", "postCount", "actors"], 167 + "type" => "object" 168 + }, 169 + "trendingTopic" => %{ 170 + "properties" => %{ 171 + "description" => %{"type" => "string"}, 172 + "displayName" => %{"type" => "string"}, 173 + "link" => %{"type" => "string"}, 174 + "topic" => %{"type" => "string"} 175 + }, 176 + "required" => ["topic", "link"], 177 + "type" => "object" 178 + } 179 + }, 180 + "id" => "app.bsky.unspecced.defs", 181 + "lexicon" => 1 182 + }) 183 + end
+23
lib/atproto/app/bsky/unspecced/getAgeAssuranceState.ex
··· 1 + defmodule App.Bsky.Unspecced.GetAgeAssuranceState do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Returns the current state of the age assurance process for an account. This is used to check if the user has completed age assurance or if further action is required.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "ref" => "app.bsky.unspecced.defs#ageAssuranceState", 14 + "type" => "ref" 15 + } 16 + }, 17 + "type" => "query" 18 + } 19 + }, 20 + "id" => "app.bsky.unspecced.getAgeAssuranceState", 21 + "lexicon" => 1 22 + }) 23 + end
+37
lib/atproto/app/bsky/unspecced/getConfig.ex
··· 1 + defmodule App.Bsky.Unspecced.GetConfig do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "liveNowConfig" => %{ 8 + "properties" => %{ 9 + "did" => %{"format" => "did", "type" => "string"}, 10 + "domains" => %{"items" => %{"type" => "string"}, "type" => "array"} 11 + }, 12 + "required" => ["did", "domains"], 13 + "type" => "object" 14 + }, 15 + "main" => %{ 16 + "description" => "Get miscellaneous runtime configuration.", 17 + "output" => %{ 18 + "encoding" => "application/json", 19 + "schema" => %{ 20 + "properties" => %{ 21 + "checkEmailConfirmed" => %{"type" => "boolean"}, 22 + "liveNow" => %{ 23 + "items" => %{"ref" => "#liveNowConfig", "type" => "ref"}, 24 + "type" => "array" 25 + } 26 + }, 27 + "required" => [], 28 + "type" => "object" 29 + } 30 + }, 31 + "type" => "query" 32 + } 33 + }, 34 + "id" => "app.bsky.unspecced.getConfig", 35 + "lexicon" => 1 36 + }) 37 + end
+42
lib/atproto/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.ex
··· 1 + defmodule App.Bsky.Unspecced.GetOnboardingSuggestedStarterPacks do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggested starterpacks for onboarding", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "starterPacks" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.graph.defs#starterPackView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + } 20 + }, 21 + "required" => ["starterPacks"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "limit" => %{ 28 + "default" => 10, 29 + "maximum" => 25, 30 + "minimum" => 1, 31 + "type" => "integer" 32 + } 33 + }, 34 + "type" => "params" 35 + }, 36 + "type" => "query" 37 + } 38 + }, 39 + "id" => "app.bsky.unspecced.getOnboardingSuggestedStarterPacks", 40 + "lexicon" => 1 41 + }) 42 + end
+46
lib/atproto/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetOnboardingSuggestedStarterPacksSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested starterpacks for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getOnboardingSuggestedStarterPacks", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "starterPacks" => %{ 15 + "items" => %{"format" => "at-uri", "type" => "string"}, 16 + "type" => "array" 17 + } 18 + }, 19 + "required" => ["starterPacks"], 20 + "type" => "object" 21 + } 22 + }, 23 + "parameters" => %{ 24 + "properties" => %{ 25 + "limit" => %{ 26 + "default" => 10, 27 + "maximum" => 25, 28 + "minimum" => 1, 29 + "type" => "integer" 30 + }, 31 + "viewer" => %{ 32 + "description" => 33 + "DID of the account making the request (not included for public/unauthenticated queries).", 34 + "format" => "did", 35 + "type" => "string" 36 + } 37 + }, 38 + "type" => "params" 39 + }, 40 + "type" => "query" 41 + } 42 + }, 43 + "id" => "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton", 44 + "lexicon" => 1 45 + }) 46 + end
+59
lib/atproto/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetOnboardingSuggestedUsersSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested users for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedOnboardingUsers", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "dids" => %{ 15 + "items" => %{"format" => "did", "type" => "string"}, 16 + "type" => "array" 17 + }, 18 + "recId" => %{ 19 + "description" => "DEPRECATED: use recIdStr instead.", 20 + "type" => "string" 21 + }, 22 + "recIdStr" => %{ 23 + "description" => 24 + "Snowflake for this recommendation, use when submitting recommendation events.", 25 + "type" => "string" 26 + } 27 + }, 28 + "required" => ["dids"], 29 + "type" => "object" 30 + } 31 + }, 32 + "parameters" => %{ 33 + "properties" => %{ 34 + "category" => %{ 35 + "description" => "Category of users to get suggestions for.", 36 + "type" => "string" 37 + }, 38 + "limit" => %{ 39 + "default" => 25, 40 + "maximum" => 50, 41 + "minimum" => 1, 42 + "type" => "integer" 43 + }, 44 + "viewer" => %{ 45 + "description" => 46 + "DID of the account making the request (not included for public/unauthenticated queries).", 47 + "format" => "did", 48 + "type" => "string" 49 + } 50 + }, 51 + "type" => "params" 52 + }, 53 + "type" => "query" 54 + } 55 + }, 56 + "id" => "app.bsky.unspecced.getOnboardingSuggestedUsersSkeleton", 57 + "lexicon" => 1 58 + }) 59 + end
+45
lib/atproto/app/bsky/unspecced/getPopularFeedGenerators.ex
··· 1 + defmodule App.Bsky.Unspecced.GetPopularFeedGenerators do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "An unspecced view of globally popular feed generators.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "cursor" => %{"type" => "string"}, 14 + "feeds" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.feed.defs#generatorView", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + } 21 + }, 22 + "required" => ["feeds"], 23 + "type" => "object" 24 + } 25 + }, 26 + "parameters" => %{ 27 + "properties" => %{ 28 + "cursor" => %{"type" => "string"}, 29 + "limit" => %{ 30 + "default" => 50, 31 + "maximum" => 100, 32 + "minimum" => 1, 33 + "type" => "integer" 34 + }, 35 + "query" => %{"type" => "string"} 36 + }, 37 + "type" => "params" 38 + }, 39 + "type" => "query" 40 + } 41 + }, 42 + "id" => "app.bsky.unspecced.getPopularFeedGenerators", 43 + "lexicon" => 1 44 + }) 45 + end
+58
lib/atproto/app/bsky/unspecced/getPostThreadOtherV2.ex
··· 1 + defmodule App.Bsky.Unspecced.GetPostThreadOtherV2 do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get additional posts under a thread e.g. replies hidden by threadgate. Based on an anchor post at any depth of the tree, returns top-level replies below that anchor. It does not include ancestors nor the anchor itself. This should be called after exhausting `app.bsky.unspecced.getPostThreadV2`. Does not require auth, but additional metadata and filtering will be applied for authed requests.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "thread" => %{ 15 + "description" => 16 + "A flat list of other thread items. The depth of each item is indicated by the depth property inside the item.", 17 + "items" => %{"ref" => "#threadItem", "type" => "ref"}, 18 + "type" => "array" 19 + } 20 + }, 21 + "required" => ["thread"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "anchor" => %{ 28 + "description" => "Reference (AT-URI) to post record. This is the anchor post.", 29 + "format" => "at-uri", 30 + "type" => "string" 31 + } 32 + }, 33 + "required" => ["anchor"], 34 + "type" => "params" 35 + }, 36 + "type" => "query" 37 + }, 38 + "threadItem" => %{ 39 + "properties" => %{ 40 + "depth" => %{ 41 + "description" => 42 + "The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths.", 43 + "type" => "integer" 44 + }, 45 + "uri" => %{"format" => "at-uri", "type" => "string"}, 46 + "value" => %{ 47 + "refs" => ["app.bsky.unspecced.defs#threadItemPost"], 48 + "type" => "union" 49 + } 50 + }, 51 + "required" => ["uri", "depth", "value"], 52 + "type" => "object" 53 + } 54 + }, 55 + "id" => "app.bsky.unspecced.getPostThreadOtherV2", 56 + "lexicon" => 1 57 + }) 58 + end
+99
lib/atproto/app/bsky/unspecced/getPostThreadV2.ex
··· 1 + defmodule App.Bsky.Unspecced.GetPostThreadV2 do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get posts in a thread. It is based in an anchor post at any depth of the tree, and returns posts above it (recursively resolving the parent, without further branching to their replies) and below it (recursive replies, with branching to their replies). Does not require auth, but additional metadata and filtering will be applied for authed requests.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "hasOtherReplies" => %{ 15 + "description" => 16 + "Whether this thread has additional replies. If true, a call can be made to the `getPostThreadOtherV2` endpoint to retrieve them.", 17 + "type" => "boolean" 18 + }, 19 + "thread" => %{ 20 + "description" => 21 + "A flat list of thread items. The depth of each item is indicated by the depth property inside the item.", 22 + "items" => %{"ref" => "#threadItem", "type" => "ref"}, 23 + "type" => "array" 24 + }, 25 + "threadgate" => %{ 26 + "ref" => "app.bsky.feed.defs#threadgateView", 27 + "type" => "ref" 28 + } 29 + }, 30 + "required" => ["thread", "hasOtherReplies"], 31 + "type" => "object" 32 + } 33 + }, 34 + "parameters" => %{ 35 + "properties" => %{ 36 + "above" => %{ 37 + "default" => true, 38 + "description" => "Whether to include parents above the anchor.", 39 + "type" => "boolean" 40 + }, 41 + "anchor" => %{ 42 + "description" => 43 + "Reference (AT-URI) to post record. This is the anchor post, and the thread will be built around it. It can be any post in the tree, not necessarily a root post.", 44 + "format" => "at-uri", 45 + "type" => "string" 46 + }, 47 + "below" => %{ 48 + "default" => 6, 49 + "description" => "How many levels of replies to include below the anchor.", 50 + "maximum" => 20, 51 + "minimum" => 0, 52 + "type" => "integer" 53 + }, 54 + "branchingFactor" => %{ 55 + "default" => 10, 56 + "description" => 57 + "Maximum of replies to include at each level of the thread, except for the direct replies to the anchor, which are (NOTE: currently, during unspecced phase) all returned (NOTE: later they might be paginated).", 58 + "maximum" => 100, 59 + "minimum" => 0, 60 + "type" => "integer" 61 + }, 62 + "sort" => %{ 63 + "default" => "oldest", 64 + "description" => "Sorting for the thread replies.", 65 + "knownValues" => ["newest", "oldest", "top"], 66 + "type" => "string" 67 + } 68 + }, 69 + "required" => ["anchor"], 70 + "type" => "params" 71 + }, 72 + "type" => "query" 73 + }, 74 + "threadItem" => %{ 75 + "properties" => %{ 76 + "depth" => %{ 77 + "description" => 78 + "The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths.", 79 + "type" => "integer" 80 + }, 81 + "uri" => %{"format" => "at-uri", "type" => "string"}, 82 + "value" => %{ 83 + "refs" => [ 84 + "app.bsky.unspecced.defs#threadItemPost", 85 + "app.bsky.unspecced.defs#threadItemNoUnauthenticated", 86 + "app.bsky.unspecced.defs#threadItemNotFound", 87 + "app.bsky.unspecced.defs#threadItemBlocked" 88 + ], 89 + "type" => "union" 90 + } 91 + }, 92 + "required" => ["uri", "depth", "value"], 93 + "type" => "object" 94 + } 95 + }, 96 + "id" => "app.bsky.unspecced.getPostThreadV2", 97 + "lexicon" => 1 98 + }) 99 + end
+42
lib/atproto/app/bsky/unspecced/getSuggestedFeeds.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedFeeds do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggested feeds", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "feeds" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.feed.defs#generatorView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + } 20 + }, 21 + "required" => ["feeds"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "limit" => %{ 28 + "default" => 10, 29 + "maximum" => 25, 30 + "minimum" => 1, 31 + "type" => "integer" 32 + } 33 + }, 34 + "type" => "params" 35 + }, 36 + "type" => "query" 37 + } 38 + }, 39 + "id" => "app.bsky.unspecced.getSuggestedFeeds", 40 + "lexicon" => 1 41 + }) 42 + end
+46
lib/atproto/app/bsky/unspecced/getSuggestedFeedsSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedFeedsSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested feeds. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedFeeds", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "feeds" => %{ 15 + "items" => %{"format" => "at-uri", "type" => "string"}, 16 + "type" => "array" 17 + } 18 + }, 19 + "required" => ["feeds"], 20 + "type" => "object" 21 + } 22 + }, 23 + "parameters" => %{ 24 + "properties" => %{ 25 + "limit" => %{ 26 + "default" => 10, 27 + "maximum" => 25, 28 + "minimum" => 1, 29 + "type" => "integer" 30 + }, 31 + "viewer" => %{ 32 + "description" => 33 + "DID of the account making the request (not included for public/unauthenticated queries).", 34 + "format" => "did", 35 + "type" => "string" 36 + } 37 + }, 38 + "type" => "params" 39 + }, 40 + "type" => "query" 41 + } 42 + }, 43 + "id" => "app.bsky.unspecced.getSuggestedFeedsSkeleton", 44 + "lexicon" => 1 45 + }) 46 + end
+55
lib/atproto/app/bsky/unspecced/getSuggestedOnboardingUsers.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedOnboardingUsers do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggested users for onboarding", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "actors" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.actor.defs#profileView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + }, 20 + "recId" => %{ 21 + "description" => "DEPRECATED: use recIdStr instead.", 22 + "type" => "string" 23 + }, 24 + "recIdStr" => %{ 25 + "description" => 26 + "Snowflake for this recommendation, use when submitting recommendation events.", 27 + "type" => "string" 28 + } 29 + }, 30 + "required" => ["actors"], 31 + "type" => "object" 32 + } 33 + }, 34 + "parameters" => %{ 35 + "properties" => %{ 36 + "category" => %{ 37 + "description" => "Category of users to get suggestions for.", 38 + "type" => "string" 39 + }, 40 + "limit" => %{ 41 + "default" => 25, 42 + "maximum" => 50, 43 + "minimum" => 1, 44 + "type" => "integer" 45 + } 46 + }, 47 + "type" => "params" 48 + }, 49 + "type" => "query" 50 + } 51 + }, 52 + "id" => "app.bsky.unspecced.getSuggestedOnboardingUsers", 53 + "lexicon" => 1 54 + }) 55 + end
+42
lib/atproto/app/bsky/unspecced/getSuggestedStarterPacks.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedStarterPacks do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggested starterpacks", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "starterPacks" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.graph.defs#starterPackView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + } 20 + }, 21 + "required" => ["starterPacks"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "limit" => %{ 28 + "default" => 10, 29 + "maximum" => 25, 30 + "minimum" => 1, 31 + "type" => "integer" 32 + } 33 + }, 34 + "type" => "params" 35 + }, 36 + "type" => "query" 37 + } 38 + }, 39 + "id" => "app.bsky.unspecced.getSuggestedStarterPacks", 40 + "lexicon" => 1 41 + }) 42 + end
+46
lib/atproto/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedStarterPacksSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested starterpacks. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedStarterpacks", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "starterPacks" => %{ 15 + "items" => %{"format" => "at-uri", "type" => "string"}, 16 + "type" => "array" 17 + } 18 + }, 19 + "required" => ["starterPacks"], 20 + "type" => "object" 21 + } 22 + }, 23 + "parameters" => %{ 24 + "properties" => %{ 25 + "limit" => %{ 26 + "default" => 10, 27 + "maximum" => 25, 28 + "minimum" => 1, 29 + "type" => "integer" 30 + }, 31 + "viewer" => %{ 32 + "description" => 33 + "DID of the account making the request (not included for public/unauthenticated queries).", 34 + "format" => "did", 35 + "type" => "string" 36 + } 37 + }, 38 + "type" => "params" 39 + }, 40 + "type" => "query" 41 + } 42 + }, 43 + "id" => "app.bsky.unspecced.getSuggestedStarterPacksSkeleton", 44 + "lexicon" => 1 45 + }) 46 + end
+55
lib/atproto/app/bsky/unspecced/getSuggestedUsers.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedUsers do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggested users", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "actors" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.actor.defs#profileView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + }, 20 + "recId" => %{ 21 + "description" => "DEPRECATED: use recIdStr instead.", 22 + "type" => "string" 23 + }, 24 + "recIdStr" => %{ 25 + "description" => 26 + "Snowflake for this recommendation, use when submitting recommendation events.", 27 + "type" => "string" 28 + } 29 + }, 30 + "required" => ["actors"], 31 + "type" => "object" 32 + } 33 + }, 34 + "parameters" => %{ 35 + "properties" => %{ 36 + "category" => %{ 37 + "description" => "Category of users to get suggestions for.", 38 + "type" => "string" 39 + }, 40 + "limit" => %{ 41 + "default" => 25, 42 + "maximum" => 50, 43 + "minimum" => 1, 44 + "type" => "integer" 45 + } 46 + }, 47 + "type" => "params" 48 + }, 49 + "type" => "query" 50 + } 51 + }, 52 + "id" => "app.bsky.unspecced.getSuggestedUsers", 53 + "lexicon" => 1 54 + }) 55 + end
+47
lib/atproto/app/bsky/unspecced/getSuggestedUsersForDiscover.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedUsersForDiscover do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggested users for the Discover page", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "actors" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.actor.defs#profileView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + }, 20 + "recIdStr" => %{ 21 + "description" => 22 + "Snowflake for this recommendation, use when submitting recommendation events.", 23 + "type" => "string" 24 + } 25 + }, 26 + "required" => ["actors"], 27 + "type" => "object" 28 + } 29 + }, 30 + "parameters" => %{ 31 + "properties" => %{ 32 + "limit" => %{ 33 + "default" => 25, 34 + "maximum" => 50, 35 + "minimum" => 1, 36 + "type" => "integer" 37 + } 38 + }, 39 + "type" => "params" 40 + }, 41 + "type" => "query" 42 + } 43 + }, 44 + "id" => "app.bsky.unspecced.getSuggestedUsersForDiscover", 45 + "lexicon" => 1 46 + }) 47 + end
+51
lib/atproto/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedUsersForDiscoverSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested users for the Discover page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForDiscover", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "dids" => %{ 15 + "items" => %{"format" => "did", "type" => "string"}, 16 + "type" => "array" 17 + }, 18 + "recIdStr" => %{ 19 + "description" => 20 + "Snowflake for this recommendation, use when submitting recommendation events.", 21 + "type" => "string" 22 + } 23 + }, 24 + "required" => ["dids"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "limit" => %{ 31 + "default" => 25, 32 + "maximum" => 50, 33 + "minimum" => 1, 34 + "type" => "integer" 35 + }, 36 + "viewer" => %{ 37 + "description" => 38 + "DID of the account making the request (not included for public/unauthenticated queries).", 39 + "format" => "did", 40 + "type" => "string" 41 + } 42 + }, 43 + "type" => "params" 44 + }, 45 + "type" => "query" 46 + } 47 + }, 48 + "id" => "app.bsky.unspecced.getSuggestedUsersForDiscoverSkeleton", 49 + "lexicon" => 1 50 + }) 51 + end
+51
lib/atproto/app/bsky/unspecced/getSuggestedUsersForExplore.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedUsersForExplore do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggested users for the Explore page", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "actors" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.actor.defs#profileView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + }, 20 + "recIdStr" => %{ 21 + "description" => 22 + "Snowflake for this recommendation, use when submitting recommendation events.", 23 + "type" => "string" 24 + } 25 + }, 26 + "required" => ["actors"], 27 + "type" => "object" 28 + } 29 + }, 30 + "parameters" => %{ 31 + "properties" => %{ 32 + "category" => %{ 33 + "description" => "Category of users to get suggestions for.", 34 + "type" => "string" 35 + }, 36 + "limit" => %{ 37 + "default" => 25, 38 + "maximum" => 50, 39 + "minimum" => 1, 40 + "type" => "integer" 41 + } 42 + }, 43 + "type" => "params" 44 + }, 45 + "type" => "query" 46 + } 47 + }, 48 + "id" => "app.bsky.unspecced.getSuggestedUsersForExplore", 49 + "lexicon" => 1 50 + }) 51 + end
+55
lib/atproto/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedUsersForExploreSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested users for the Explore page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForExplore", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "dids" => %{ 15 + "items" => %{"format" => "did", "type" => "string"}, 16 + "type" => "array" 17 + }, 18 + "recIdStr" => %{ 19 + "description" => 20 + "Snowflake for this recommendation, use when submitting recommendation events.", 21 + "type" => "string" 22 + } 23 + }, 24 + "required" => ["dids"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "category" => %{ 31 + "description" => "Category of users to get suggestions for.", 32 + "type" => "string" 33 + }, 34 + "limit" => %{ 35 + "default" => 25, 36 + "maximum" => 50, 37 + "minimum" => 1, 38 + "type" => "integer" 39 + }, 40 + "viewer" => %{ 41 + "description" => 42 + "DID of the account making the request (not included for public/unauthenticated queries).", 43 + "format" => "did", 44 + "type" => "string" 45 + } 46 + }, 47 + "type" => "params" 48 + }, 49 + "type" => "query" 50 + } 51 + }, 52 + "id" => "app.bsky.unspecced.getSuggestedUsersForExploreSkeleton", 53 + "lexicon" => 1 54 + }) 55 + end
+51
lib/atproto/app/bsky/unspecced/getSuggestedUsersForSeeMore.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedUsersForSeeMore do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggested users for the See More page", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "actors" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.actor.defs#profileView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + }, 20 + "recIdStr" => %{ 21 + "description" => 22 + "Snowflake for this recommendation, use when submitting recommendation events.", 23 + "type" => "string" 24 + } 25 + }, 26 + "required" => ["actors"], 27 + "type" => "object" 28 + } 29 + }, 30 + "parameters" => %{ 31 + "properties" => %{ 32 + "category" => %{ 33 + "description" => "Category of users to get suggestions for.", 34 + "type" => "string" 35 + }, 36 + "limit" => %{ 37 + "default" => 25, 38 + "maximum" => 50, 39 + "minimum" => 1, 40 + "type" => "integer" 41 + } 42 + }, 43 + "type" => "params" 44 + }, 45 + "type" => "query" 46 + } 47 + }, 48 + "id" => "app.bsky.unspecced.getSuggestedUsersForSeeMore", 49 + "lexicon" => 1 50 + }) 51 + end
+55
lib/atproto/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedUsersForSeeMoreSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested users for the See More page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForSeeMore", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "dids" => %{ 15 + "items" => %{"format" => "did", "type" => "string"}, 16 + "type" => "array" 17 + }, 18 + "recIdStr" => %{ 19 + "description" => 20 + "Snowflake for this recommendation, use when submitting recommendation events.", 21 + "type" => "string" 22 + } 23 + }, 24 + "required" => ["dids"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "category" => %{ 31 + "description" => "Category of users to get suggestions for.", 32 + "type" => "string" 33 + }, 34 + "limit" => %{ 35 + "default" => 25, 36 + "maximum" => 50, 37 + "minimum" => 1, 38 + "type" => "integer" 39 + }, 40 + "viewer" => %{ 41 + "description" => 42 + "DID of the account making the request (not included for public/unauthenticated queries).", 43 + "format" => "did", 44 + "type" => "string" 45 + } 46 + }, 47 + "type" => "params" 48 + }, 49 + "type" => "query" 50 + } 51 + }, 52 + "id" => "app.bsky.unspecced.getSuggestedUsersForSeeMoreSkeleton", 53 + "lexicon" => 1 54 + }) 55 + end
+59
lib/atproto/app/bsky/unspecced/getSuggestedUsersSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestedUsersSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested users. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsers", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "dids" => %{ 15 + "items" => %{"format" => "did", "type" => "string"}, 16 + "type" => "array" 17 + }, 18 + "recId" => %{ 19 + "description" => "DEPRECATED: use recIdStr instead.", 20 + "type" => "string" 21 + }, 22 + "recIdStr" => %{ 23 + "description" => 24 + "Snowflake for this recommendation, use when submitting recommendation events.", 25 + "type" => "string" 26 + } 27 + }, 28 + "required" => ["dids"], 29 + "type" => "object" 30 + } 31 + }, 32 + "parameters" => %{ 33 + "properties" => %{ 34 + "category" => %{ 35 + "description" => "Category of users to get suggestions for.", 36 + "type" => "string" 37 + }, 38 + "limit" => %{ 39 + "default" => 25, 40 + "maximum" => 50, 41 + "minimum" => 1, 42 + "type" => "integer" 43 + }, 44 + "viewer" => %{ 45 + "description" => 46 + "DID of the account making the request (not included for public/unauthenticated queries).", 47 + "format" => "did", 48 + "type" => "string" 49 + } 50 + }, 51 + "type" => "params" 52 + }, 53 + "type" => "query" 54 + } 55 + }, 56 + "id" => "app.bsky.unspecced.getSuggestedUsersSkeleton", 57 + "lexicon" => 1 58 + }) 59 + end
+72
lib/atproto/app/bsky/unspecced/getSuggestionsSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetSuggestionsSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get a skeleton of suggested actors. Intended to be called and then hydrated through app.bsky.actor.getSuggestions", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "actors" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.unspecced.defs#skeletonSearchActor", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "cursor" => %{"type" => "string"}, 22 + "recId" => %{ 23 + "description" => "DEPRECATED: use recIdStr instead.", 24 + "type" => "integer" 25 + }, 26 + "recIdStr" => %{ 27 + "description" => 28 + "Snowflake for this recommendation, use when submitting recommendation events.", 29 + "type" => "string" 30 + }, 31 + "relativeToDid" => %{ 32 + "description" => 33 + "DID of the account these suggestions are relative to. If this is returned undefined, suggestions are based on the viewer.", 34 + "format" => "did", 35 + "type" => "string" 36 + } 37 + }, 38 + "required" => ["actors"], 39 + "type" => "object" 40 + } 41 + }, 42 + "parameters" => %{ 43 + "properties" => %{ 44 + "cursor" => %{"type" => "string"}, 45 + "limit" => %{ 46 + "default" => 50, 47 + "maximum" => 100, 48 + "minimum" => 1, 49 + "type" => "integer" 50 + }, 51 + "relativeToDid" => %{ 52 + "description" => 53 + "DID of the account to get suggestions relative to. If not provided, suggestions will be based on the viewer.", 54 + "format" => "did", 55 + "type" => "string" 56 + }, 57 + "viewer" => %{ 58 + "description" => 59 + "DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking.", 60 + "format" => "did", 61 + "type" => "string" 62 + } 63 + }, 64 + "type" => "params" 65 + }, 66 + "type" => "query" 67 + } 68 + }, 69 + "id" => "app.bsky.unspecced.getSuggestionsSkeleton", 70 + "lexicon" => 1 71 + }) 72 + end
+41
lib/atproto/app/bsky/unspecced/getTaggedSuggestions.ex
··· 1 + defmodule App.Bsky.Unspecced.GetTaggedSuggestions do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of suggestions (feeds and users) tagged with categories", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "suggestions" => %{ 14 + "items" => %{"ref" => "#suggestion", "type" => "ref"}, 15 + "type" => "array" 16 + } 17 + }, 18 + "required" => ["suggestions"], 19 + "type" => "object" 20 + } 21 + }, 22 + "parameters" => %{"properties" => %{}, "type" => "params"}, 23 + "type" => "query" 24 + }, 25 + "suggestion" => %{ 26 + "properties" => %{ 27 + "subject" => %{"format" => "uri", "type" => "string"}, 28 + "subjectType" => %{ 29 + "knownValues" => ["actor", "feed"], 30 + "type" => "string" 31 + }, 32 + "tag" => %{"type" => "string"} 33 + }, 34 + "required" => ["tag", "subjectType", "subject"], 35 + "type" => "object" 36 + } 37 + }, 38 + "id" => "app.bsky.unspecced.getTaggedSuggestions", 39 + "lexicon" => 1 40 + }) 41 + end
+55
lib/atproto/app/bsky/unspecced/getTrendingTopics.ex
··· 1 + defmodule App.Bsky.Unspecced.GetTrendingTopics do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get a list of trending topics", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "suggested" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.unspecced.defs#trendingTopic", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + }, 20 + "topics" => %{ 21 + "items" => %{ 22 + "ref" => "app.bsky.unspecced.defs#trendingTopic", 23 + "type" => "ref" 24 + }, 25 + "type" => "array" 26 + } 27 + }, 28 + "required" => ["topics", "suggested"], 29 + "type" => "object" 30 + } 31 + }, 32 + "parameters" => %{ 33 + "properties" => %{ 34 + "limit" => %{ 35 + "default" => 10, 36 + "maximum" => 25, 37 + "minimum" => 1, 38 + "type" => "integer" 39 + }, 40 + "viewer" => %{ 41 + "description" => 42 + "DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking.", 43 + "format" => "did", 44 + "type" => "string" 45 + } 46 + }, 47 + "type" => "params" 48 + }, 49 + "type" => "query" 50 + } 51 + }, 52 + "id" => "app.bsky.unspecced.getTrendingTopics", 53 + "lexicon" => 1 54 + }) 55 + end
+42
lib/atproto/app/bsky/unspecced/getTrends.ex
··· 1 + defmodule App.Bsky.Unspecced.GetTrends do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get the current trends on the network", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "trends" => %{ 14 + "items" => %{ 15 + "ref" => "app.bsky.unspecced.defs#trendView", 16 + "type" => "ref" 17 + }, 18 + "type" => "array" 19 + } 20 + }, 21 + "required" => ["trends"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "limit" => %{ 28 + "default" => 10, 29 + "maximum" => 25, 30 + "minimum" => 1, 31 + "type" => "integer" 32 + } 33 + }, 34 + "type" => "params" 35 + }, 36 + "type" => "query" 37 + } 38 + }, 39 + "id" => "app.bsky.unspecced.getTrends", 40 + "lexicon" => 1 41 + }) 42 + end
+49
lib/atproto/app/bsky/unspecced/getTrendsSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.GetTrendsSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get the skeleton of trends on the network. Intended to be called and then hydrated through app.bsky.unspecced.getTrends", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "trends" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.unspecced.defs#skeletonTrend", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + } 21 + }, 22 + "required" => ["trends"], 23 + "type" => "object" 24 + } 25 + }, 26 + "parameters" => %{ 27 + "properties" => %{ 28 + "limit" => %{ 29 + "default" => 10, 30 + "maximum" => 25, 31 + "minimum" => 1, 32 + "type" => "integer" 33 + }, 34 + "viewer" => %{ 35 + "description" => 36 + "DID of the account making the request (not included for public/unauthenticated queries).", 37 + "format" => "did", 38 + "type" => "string" 39 + } 40 + }, 41 + "type" => "params" 42 + }, 43 + "type" => "query" 44 + } 45 + }, 46 + "id" => "app.bsky.unspecced.getTrendsSkeleton", 47 + "lexicon" => 1 48 + }) 49 + end
+50
lib/atproto/app/bsky/unspecced/initAgeAssurance.ex
··· 1 + defmodule App.Bsky.Unspecced.InitAgeAssurance do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Initiate age assurance for an account. This is a one-time action that will start the process of verifying the user's age.", 10 + "errors" => [ 11 + %{"name" => "InvalidEmail"}, 12 + %{"name" => "DidTooLong"}, 13 + %{"name" => "InvalidInitiation"} 14 + ], 15 + "input" => %{ 16 + "encoding" => "application/json", 17 + "schema" => %{ 18 + "properties" => %{ 19 + "countryCode" => %{ 20 + "description" => "An ISO 3166-1 alpha-2 code of the user's location.", 21 + "type" => "string" 22 + }, 23 + "email" => %{ 24 + "description" => "The user's email address to receive assurance instructions.", 25 + "type" => "string" 26 + }, 27 + "language" => %{ 28 + "description" => 29 + "The user's preferred language for communication during the assurance process.", 30 + "type" => "string" 31 + } 32 + }, 33 + "required" => ["email", "language", "countryCode"], 34 + "type" => "object" 35 + } 36 + }, 37 + "output" => %{ 38 + "encoding" => "application/json", 39 + "schema" => %{ 40 + "ref" => "app.bsky.unspecced.defs#ageAssuranceState", 41 + "type" => "ref" 42 + } 43 + }, 44 + "type" => "procedure" 45 + } 46 + }, 47 + "id" => "app.bsky.unspecced.initAgeAssurance", 48 + "lexicon" => 1 49 + }) 50 + end
+70
lib/atproto/app/bsky/unspecced/searchActorsSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.SearchActorsSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Backend Actors (profile) search, returns only skeleton.", 9 + "errors" => [%{"name" => "BadQueryString"}], 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "actors" => %{ 15 + "items" => %{ 16 + "ref" => "app.bsky.unspecced.defs#skeletonSearchActor", 17 + "type" => "ref" 18 + }, 19 + "type" => "array" 20 + }, 21 + "cursor" => %{"type" => "string"}, 22 + "hitsTotal" => %{ 23 + "description" => 24 + "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits.", 25 + "type" => "integer" 26 + } 27 + }, 28 + "required" => ["actors"], 29 + "type" => "object" 30 + } 31 + }, 32 + "parameters" => %{ 33 + "properties" => %{ 34 + "cursor" => %{ 35 + "description" => 36 + "Optional pagination mechanism; may not necessarily allow scrolling through entire result set.", 37 + "type" => "string" 38 + }, 39 + "limit" => %{ 40 + "default" => 25, 41 + "maximum" => 100, 42 + "minimum" => 1, 43 + "type" => "integer" 44 + }, 45 + "q" => %{ 46 + "description" => 47 + "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.", 48 + "type" => "string" 49 + }, 50 + "typeahead" => %{ 51 + "description" => "If true, acts as fast/simple 'typeahead' query.", 52 + "type" => "boolean" 53 + }, 54 + "viewer" => %{ 55 + "description" => 56 + "DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking.", 57 + "format" => "did", 58 + "type" => "string" 59 + } 60 + }, 61 + "required" => ["q"], 62 + "type" => "params" 63 + }, 64 + "type" => "query" 65 + } 66 + }, 67 + "id" => "app.bsky.unspecced.searchActorsSkeleton", 68 + "lexicon" => 1 69 + }) 70 + end
+121
lib/atproto/app/bsky/unspecced/searchPostsSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.SearchPostsSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Backend Posts search, returns only skeleton", 9 + "errors" => [%{"name" => "BadQueryString"}], 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "hitsTotal" => %{ 16 + "description" => 17 + "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits.", 18 + "type" => "integer" 19 + }, 20 + "posts" => %{ 21 + "items" => %{ 22 + "ref" => "app.bsky.unspecced.defs#skeletonSearchPost", 23 + "type" => "ref" 24 + }, 25 + "type" => "array" 26 + } 27 + }, 28 + "required" => ["posts"], 29 + "type" => "object" 30 + } 31 + }, 32 + "parameters" => %{ 33 + "properties" => %{ 34 + "author" => %{ 35 + "description" => 36 + "Filter to posts by the given account. Handles are resolved to DID before query-time.", 37 + "format" => "at-identifier", 38 + "type" => "string" 39 + }, 40 + "cursor" => %{ 41 + "description" => 42 + "Optional pagination mechanism; may not necessarily allow scrolling through entire result set.", 43 + "type" => "string" 44 + }, 45 + "domain" => %{ 46 + "description" => 47 + "Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization.", 48 + "type" => "string" 49 + }, 50 + "lang" => %{ 51 + "description" => 52 + "Filter to posts in the given language. Expected to be based on post language field, though server may override language detection.", 53 + "format" => "language", 54 + "type" => "string" 55 + }, 56 + "limit" => %{ 57 + "default" => 25, 58 + "maximum" => 100, 59 + "minimum" => 1, 60 + "type" => "integer" 61 + }, 62 + "mentions" => %{ 63 + "description" => 64 + "Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions.", 65 + "format" => "at-identifier", 66 + "type" => "string" 67 + }, 68 + "q" => %{ 69 + "description" => 70 + "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.", 71 + "type" => "string" 72 + }, 73 + "since" => %{ 74 + "description" => 75 + "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).", 76 + "type" => "string" 77 + }, 78 + "sort" => %{ 79 + "default" => "latest", 80 + "description" => "Specifies the ranking order of results.", 81 + "knownValues" => ["top", "latest"], 82 + "type" => "string" 83 + }, 84 + "tag" => %{ 85 + "description" => 86 + "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.", 87 + "items" => %{ 88 + "maxGraphemes" => 64, 89 + "maxLength" => 640, 90 + "type" => "string" 91 + }, 92 + "type" => "array" 93 + }, 94 + "until" => %{ 95 + "description" => 96 + "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).", 97 + "type" => "string" 98 + }, 99 + "url" => %{ 100 + "description" => 101 + "Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching.", 102 + "format" => "uri", 103 + "type" => "string" 104 + }, 105 + "viewer" => %{ 106 + "description" => 107 + "DID of the account making the request (not included for public/unauthenticated queries). Used for 'from:me' queries.", 108 + "format" => "did", 109 + "type" => "string" 110 + } 111 + }, 112 + "required" => ["q"], 113 + "type" => "params" 114 + }, 115 + "type" => "query" 116 + } 117 + }, 118 + "id" => "app.bsky.unspecced.searchPostsSkeleton", 119 + "lexicon" => 1 120 + }) 121 + end
+66
lib/atproto/app/bsky/unspecced/searchStarterPacksSkeleton.ex
··· 1 + defmodule App.Bsky.Unspecced.SearchStarterPacksSkeleton do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Backend Starter Pack search, returns only skeleton.", 9 + "errors" => [%{"name" => "BadQueryString"}], 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "cursor" => %{"type" => "string"}, 15 + "hitsTotal" => %{ 16 + "description" => 17 + "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits.", 18 + "type" => "integer" 19 + }, 20 + "starterPacks" => %{ 21 + "items" => %{ 22 + "ref" => "app.bsky.unspecced.defs#skeletonSearchStarterPack", 23 + "type" => "ref" 24 + }, 25 + "type" => "array" 26 + } 27 + }, 28 + "required" => ["starterPacks"], 29 + "type" => "object" 30 + } 31 + }, 32 + "parameters" => %{ 33 + "properties" => %{ 34 + "cursor" => %{ 35 + "description" => 36 + "Optional pagination mechanism; may not necessarily allow scrolling through entire result set.", 37 + "type" => "string" 38 + }, 39 + "limit" => %{ 40 + "default" => 25, 41 + "maximum" => 100, 42 + "minimum" => 1, 43 + "type" => "integer" 44 + }, 45 + "q" => %{ 46 + "description" => 47 + "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.", 48 + "type" => "string" 49 + }, 50 + "viewer" => %{ 51 + "description" => 52 + "DID of the account making the request (not included for public/unauthenticated queries).", 53 + "format" => "did", 54 + "type" => "string" 55 + } 56 + }, 57 + "required" => ["q"], 58 + "type" => "params" 59 + }, 60 + "type" => "query" 61 + } 62 + }, 63 + "id" => "app.bsky.unspecced.searchStarterPacksSkeleton", 64 + "lexicon" => 1 65 + }) 66 + end
+34
lib/atproto/app/bsky/video/defs.ex
··· 1 + defmodule App.Bsky.Video.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "jobStatus" => %{ 8 + "properties" => %{ 9 + "blob" => %{"type" => "blob"}, 10 + "did" => %{"format" => "did", "type" => "string"}, 11 + "error" => %{"type" => "string"}, 12 + "jobId" => %{"type" => "string"}, 13 + "message" => %{"type" => "string"}, 14 + "progress" => %{ 15 + "description" => "Progress within the current processing state.", 16 + "maximum" => 100, 17 + "minimum" => 0, 18 + "type" => "integer" 19 + }, 20 + "state" => %{ 21 + "description" => 22 + "The state of the video processing job. All values not listed as a known value indicate that the job is in process.", 23 + "knownValues" => ["JOB_STATE_COMPLETED", "JOB_STATE_FAILED"], 24 + "type" => "string" 25 + } 26 + }, 27 + "required" => ["jobId", "did", "state"], 28 + "type" => "object" 29 + } 30 + }, 31 + "id" => "app.bsky.video.defs", 32 + "lexicon" => 1 33 + }) 34 + end
+33
lib/atproto/app/bsky/video/getJobStatus.ex
··· 1 + defmodule App.Bsky.Video.GetJobStatus do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get status details for a video processing job.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "jobStatus" => %{ 14 + "ref" => "app.bsky.video.defs#jobStatus", 15 + "type" => "ref" 16 + } 17 + }, 18 + "required" => ["jobStatus"], 19 + "type" => "object" 20 + } 21 + }, 22 + "parameters" => %{ 23 + "properties" => %{"jobId" => %{"type" => "string"}}, 24 + "required" => ["jobId"], 25 + "type" => "params" 26 + }, 27 + "type" => "query" 28 + } 29 + }, 30 + "id" => "app.bsky.video.getJobStatus", 31 + "lexicon" => 1 32 + }) 33 + end
+29
lib/atproto/app/bsky/video/getUploadLimits.ex
··· 1 + defmodule App.Bsky.Video.GetUploadLimits do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Get video upload limits for the authenticated user.", 9 + "output" => %{ 10 + "encoding" => "application/json", 11 + "schema" => %{ 12 + "properties" => %{ 13 + "canUpload" => %{"type" => "boolean"}, 14 + "error" => %{"type" => "string"}, 15 + "message" => %{"type" => "string"}, 16 + "remainingDailyBytes" => %{"type" => "integer"}, 17 + "remainingDailyVideos" => %{"type" => "integer"} 18 + }, 19 + "required" => ["canUpload"], 20 + "type" => "object" 21 + } 22 + }, 23 + "type" => "query" 24 + } 25 + }, 26 + "id" => "app.bsky.video.getUploadLimits", 27 + "lexicon" => 1 28 + }) 29 + end
+29
lib/atproto/app/bsky/video/uploadVideo.ex
··· 1 + defmodule App.Bsky.Video.UploadVideo do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "Upload a video to be processed then stored on the PDS.", 9 + "input" => %{"encoding" => "video/mp4"}, 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "jobStatus" => %{ 15 + "ref" => "app.bsky.video.defs#jobStatus", 16 + "type" => "ref" 17 + } 18 + }, 19 + "required" => ["jobStatus"], 20 + "type" => "object" 21 + } 22 + }, 23 + "type" => "procedure" 24 + } 25 + }, 26 + "id" => "app.bsky.video.uploadVideo", 27 + "lexicon" => 1 28 + }) 29 + end
+26
lib/atproto/chat/bsky/actor/declaration.ex
··· 1 + defmodule Chat.Bsky.Actor.Declaration do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => "A declaration of a Bluesky chat account.", 9 + "key" => "literal:self", 10 + "record" => %{ 11 + "properties" => %{ 12 + "allowIncoming" => %{ 13 + "knownValues" => ["all", "none", "following"], 14 + "type" => "string" 15 + } 16 + }, 17 + "required" => ["allowIncoming"], 18 + "type" => "object" 19 + }, 20 + "type" => "record" 21 + } 22 + }, 23 + "id" => "chat.bsky.actor.declaration", 24 + "lexicon" => 1 25 + }) 26 + end
+46
lib/atproto/chat/bsky/actor/defs.ex
··· 1 + defmodule Chat.Bsky.Actor.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "profileViewBasic" => %{ 8 + "properties" => %{ 9 + "associated" => %{ 10 + "ref" => "app.bsky.actor.defs#profileAssociated", 11 + "type" => "ref" 12 + }, 13 + "avatar" => %{"format" => "uri", "type" => "string"}, 14 + "chatDisabled" => %{ 15 + "description" => 16 + "Set to true when the actor cannot actively participate in conversations", 17 + "type" => "boolean" 18 + }, 19 + "did" => %{"format" => "did", "type" => "string"}, 20 + "displayName" => %{ 21 + "maxGraphemes" => 64, 22 + "maxLength" => 640, 23 + "type" => "string" 24 + }, 25 + "handle" => %{"format" => "handle", "type" => "string"}, 26 + "labels" => %{ 27 + "items" => %{"ref" => "com.atproto.label.defs#label", "type" => "ref"}, 28 + "type" => "array" 29 + }, 30 + "verification" => %{ 31 + "ref" => "app.bsky.actor.defs#verificationState", 32 + "type" => "ref" 33 + }, 34 + "viewer" => %{ 35 + "ref" => "app.bsky.actor.defs#viewerState", 36 + "type" => "ref" 37 + } 38 + }, 39 + "required" => ["did", "handle"], 40 + "type" => "object" 41 + } 42 + }, 43 + "id" => "chat.bsky.actor.defs", 44 + "lexicon" => 1 45 + }) 46 + end
+18
lib/atproto/chat/bsky/actor/deleteAccount.ex
··· 1 + defmodule Chat.Bsky.Actor.DeleteAccount do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{"properties" => %{}, "type" => "object"} 11 + }, 12 + "type" => "procedure" 13 + } 14 + }, 15 + "id" => "chat.bsky.actor.deleteAccount", 16 + "lexicon" => 1 17 + }) 18 + end
+15
lib/atproto/chat/bsky/actor/exportAccountData.ex
··· 1 + defmodule Chat.Bsky.Actor.ExportAccountData do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{"encoding" => "application/jsonl"}, 9 + "type" => "query" 10 + } 11 + }, 12 + "id" => "chat.bsky.actor.exportAccountData", 13 + "lexicon" => 1 14 + }) 15 + end
+35
lib/atproto/chat/bsky/convo/acceptConvo.ex
··· 1 + defmodule Chat.Bsky.Convo.AcceptConvo do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{"convoId" => %{"type" => "string"}}, 12 + "required" => ["convoId"], 13 + "type" => "object" 14 + } 15 + }, 16 + "output" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "rev" => %{ 21 + "description" => 22 + "Rev when the convo was accepted. If not present, the convo was already accepted.", 23 + "type" => "string" 24 + } 25 + }, 26 + "type" => "object" 27 + } 28 + }, 29 + "type" => "procedure" 30 + } 31 + }, 32 + "id" => "chat.bsky.convo.acceptConvo", 33 + "lexicon" => 1 34 + }) 35 + end
+64
lib/atproto/chat/bsky/convo/addReaction.ex
··· 1 + defmodule Chat.Bsky.Convo.AddReaction do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "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.", 10 + "errors" => [ 11 + %{ 12 + "description" => 13 + "Indicates that the message has been deleted and reactions can no longer be added/removed.", 14 + "name" => "ReactionMessageDeleted" 15 + }, 16 + %{ 17 + "description" => 18 + "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.", 19 + "name" => "ReactionLimitReached" 20 + }, 21 + %{ 22 + "description" => 23 + "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji.", 24 + "name" => "ReactionInvalidValue" 25 + } 26 + ], 27 + "input" => %{ 28 + "encoding" => "application/json", 29 + "schema" => %{ 30 + "properties" => %{ 31 + "convoId" => %{"type" => "string"}, 32 + "messageId" => %{"type" => "string"}, 33 + "value" => %{ 34 + "maxGraphemes" => 1, 35 + "maxLength" => 64, 36 + "minGraphemes" => 1, 37 + "minLength" => 1, 38 + "type" => "string" 39 + } 40 + }, 41 + "required" => ["convoId", "messageId", "value"], 42 + "type" => "object" 43 + } 44 + }, 45 + "output" => %{ 46 + "encoding" => "application/json", 47 + "schema" => %{ 48 + "properties" => %{ 49 + "message" => %{ 50 + "ref" => "chat.bsky.convo.defs#messageView", 51 + "type" => "ref" 52 + } 53 + }, 54 + "required" => ["message"], 55 + "type" => "object" 56 + } 57 + }, 58 + "type" => "procedure" 59 + } 60 + }, 61 + "id" => "chat.bsky.convo.addReaction", 62 + "lexicon" => 1 63 + }) 64 + end
+234
lib/atproto/chat/bsky/convo/defs.ex
··· 1 + defmodule Chat.Bsky.Convo.Defs do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "convoView" => %{ 8 + "properties" => %{ 9 + "id" => %{"type" => "string"}, 10 + "lastMessage" => %{ 11 + "refs" => ["#messageView", "#deletedMessageView"], 12 + "type" => "union" 13 + }, 14 + "lastReaction" => %{ 15 + "refs" => ["#messageAndReactionView"], 16 + "type" => "union" 17 + }, 18 + "members" => %{ 19 + "items" => %{ 20 + "ref" => "chat.bsky.actor.defs#profileViewBasic", 21 + "type" => "ref" 22 + }, 23 + "type" => "array" 24 + }, 25 + "muted" => %{"type" => "boolean"}, 26 + "rev" => %{"type" => "string"}, 27 + "status" => %{ 28 + "knownValues" => ["request", "accepted"], 29 + "type" => "string" 30 + }, 31 + "unreadCount" => %{"type" => "integer"} 32 + }, 33 + "required" => ["id", "rev", "members", "muted", "unreadCount"], 34 + "type" => "object" 35 + }, 36 + "deletedMessageView" => %{ 37 + "properties" => %{ 38 + "id" => %{"type" => "string"}, 39 + "rev" => %{"type" => "string"}, 40 + "sender" => %{"ref" => "#messageViewSender", "type" => "ref"}, 41 + "sentAt" => %{"format" => "datetime", "type" => "string"} 42 + }, 43 + "required" => ["id", "rev", "sender", "sentAt"], 44 + "type" => "object" 45 + }, 46 + "logAcceptConvo" => %{ 47 + "properties" => %{ 48 + "convoId" => %{"type" => "string"}, 49 + "rev" => %{"type" => "string"} 50 + }, 51 + "required" => ["rev", "convoId"], 52 + "type" => "object" 53 + }, 54 + "logAddReaction" => %{ 55 + "properties" => %{ 56 + "convoId" => %{"type" => "string"}, 57 + "message" => %{ 58 + "refs" => ["#messageView", "#deletedMessageView"], 59 + "type" => "union" 60 + }, 61 + "reaction" => %{"ref" => "#reactionView", "type" => "ref"}, 62 + "rev" => %{"type" => "string"} 63 + }, 64 + "required" => ["rev", "convoId", "message", "reaction"], 65 + "type" => "object" 66 + }, 67 + "logBeginConvo" => %{ 68 + "properties" => %{ 69 + "convoId" => %{"type" => "string"}, 70 + "rev" => %{"type" => "string"} 71 + }, 72 + "required" => ["rev", "convoId"], 73 + "type" => "object" 74 + }, 75 + "logCreateMessage" => %{ 76 + "properties" => %{ 77 + "convoId" => %{"type" => "string"}, 78 + "message" => %{ 79 + "refs" => ["#messageView", "#deletedMessageView"], 80 + "type" => "union" 81 + }, 82 + "rev" => %{"type" => "string"} 83 + }, 84 + "required" => ["rev", "convoId", "message"], 85 + "type" => "object" 86 + }, 87 + "logDeleteMessage" => %{ 88 + "properties" => %{ 89 + "convoId" => %{"type" => "string"}, 90 + "message" => %{ 91 + "refs" => ["#messageView", "#deletedMessageView"], 92 + "type" => "union" 93 + }, 94 + "rev" => %{"type" => "string"} 95 + }, 96 + "required" => ["rev", "convoId", "message"], 97 + "type" => "object" 98 + }, 99 + "logLeaveConvo" => %{ 100 + "properties" => %{ 101 + "convoId" => %{"type" => "string"}, 102 + "rev" => %{"type" => "string"} 103 + }, 104 + "required" => ["rev", "convoId"], 105 + "type" => "object" 106 + }, 107 + "logMuteConvo" => %{ 108 + "properties" => %{ 109 + "convoId" => %{"type" => "string"}, 110 + "rev" => %{"type" => "string"} 111 + }, 112 + "required" => ["rev", "convoId"], 113 + "type" => "object" 114 + }, 115 + "logReadMessage" => %{ 116 + "properties" => %{ 117 + "convoId" => %{"type" => "string"}, 118 + "message" => %{ 119 + "refs" => ["#messageView", "#deletedMessageView"], 120 + "type" => "union" 121 + }, 122 + "rev" => %{"type" => "string"} 123 + }, 124 + "required" => ["rev", "convoId", "message"], 125 + "type" => "object" 126 + }, 127 + "logRemoveReaction" => %{ 128 + "properties" => %{ 129 + "convoId" => %{"type" => "string"}, 130 + "message" => %{ 131 + "refs" => ["#messageView", "#deletedMessageView"], 132 + "type" => "union" 133 + }, 134 + "reaction" => %{"ref" => "#reactionView", "type" => "ref"}, 135 + "rev" => %{"type" => "string"} 136 + }, 137 + "required" => ["rev", "convoId", "message", "reaction"], 138 + "type" => "object" 139 + }, 140 + "logUnmuteConvo" => %{ 141 + "properties" => %{ 142 + "convoId" => %{"type" => "string"}, 143 + "rev" => %{"type" => "string"} 144 + }, 145 + "required" => ["rev", "convoId"], 146 + "type" => "object" 147 + }, 148 + "messageAndReactionView" => %{ 149 + "properties" => %{ 150 + "message" => %{"ref" => "#messageView", "type" => "ref"}, 151 + "reaction" => %{"ref" => "#reactionView", "type" => "ref"} 152 + }, 153 + "required" => ["message", "reaction"], 154 + "type" => "object" 155 + }, 156 + "messageInput" => %{ 157 + "properties" => %{ 158 + "embed" => %{"refs" => ["app.bsky.embed.record"], "type" => "union"}, 159 + "facets" => %{ 160 + "description" => "Annotations of text (mentions, URLs, hashtags, etc)", 161 + "items" => %{"ref" => "app.bsky.richtext.facet", "type" => "ref"}, 162 + "type" => "array" 163 + }, 164 + "text" => %{ 165 + "maxGraphemes" => 1000, 166 + "maxLength" => 10000, 167 + "type" => "string" 168 + } 169 + }, 170 + "required" => ["text"], 171 + "type" => "object" 172 + }, 173 + "messageRef" => %{ 174 + "properties" => %{ 175 + "convoId" => %{"type" => "string"}, 176 + "did" => %{"format" => "did", "type" => "string"}, 177 + "messageId" => %{"type" => "string"} 178 + }, 179 + "required" => ["did", "messageId", "convoId"], 180 + "type" => "object" 181 + }, 182 + "messageView" => %{ 183 + "properties" => %{ 184 + "embed" => %{ 185 + "refs" => ["app.bsky.embed.record#view"], 186 + "type" => "union" 187 + }, 188 + "facets" => %{ 189 + "description" => "Annotations of text (mentions, URLs, hashtags, etc)", 190 + "items" => %{"ref" => "app.bsky.richtext.facet", "type" => "ref"}, 191 + "type" => "array" 192 + }, 193 + "id" => %{"type" => "string"}, 194 + "reactions" => %{ 195 + "description" => "Reactions to this message, in ascending order of creation time.", 196 + "items" => %{"ref" => "#reactionView", "type" => "ref"}, 197 + "type" => "array" 198 + }, 199 + "rev" => %{"type" => "string"}, 200 + "sender" => %{"ref" => "#messageViewSender", "type" => "ref"}, 201 + "sentAt" => %{"format" => "datetime", "type" => "string"}, 202 + "text" => %{ 203 + "maxGraphemes" => 1000, 204 + "maxLength" => 10000, 205 + "type" => "string" 206 + } 207 + }, 208 + "required" => ["id", "rev", "text", "sender", "sentAt"], 209 + "type" => "object" 210 + }, 211 + "messageViewSender" => %{ 212 + "properties" => %{"did" => %{"format" => "did", "type" => "string"}}, 213 + "required" => ["did"], 214 + "type" => "object" 215 + }, 216 + "reactionView" => %{ 217 + "properties" => %{ 218 + "createdAt" => %{"format" => "datetime", "type" => "string"}, 219 + "sender" => %{"ref" => "#reactionViewSender", "type" => "ref"}, 220 + "value" => %{"type" => "string"} 221 + }, 222 + "required" => ["value", "sender", "createdAt"], 223 + "type" => "object" 224 + }, 225 + "reactionViewSender" => %{ 226 + "properties" => %{"did" => %{"format" => "did", "type" => "string"}}, 227 + "required" => ["did"], 228 + "type" => "object" 229 + } 230 + }, 231 + "id" => "chat.bsky.convo.defs", 232 + "lexicon" => 1 233 + }) 234 + end
+32
lib/atproto/chat/bsky/convo/deleteMessageForSelf.ex
··· 1 + defmodule Chat.Bsky.Convo.DeleteMessageForSelf do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "convoId" => %{"type" => "string"}, 13 + "messageId" => %{"type" => "string"} 14 + }, 15 + "required" => ["convoId", "messageId"], 16 + "type" => "object" 17 + } 18 + }, 19 + "output" => %{ 20 + "encoding" => "application/json", 21 + "schema" => %{ 22 + "ref" => "chat.bsky.convo.defs#deletedMessageView", 23 + "type" => "ref" 24 + } 25 + }, 26 + "type" => "procedure" 27 + } 28 + }, 29 + "id" => "chat.bsky.convo.deleteMessageForSelf", 30 + "lexicon" => 1 31 + }) 32 + end
+32
lib/atproto/chat/bsky/convo/getConvo.ex
··· 1 + defmodule Chat.Bsky.Convo.GetConvo do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "convo" => %{ 13 + "ref" => "chat.bsky.convo.defs#convoView", 14 + "type" => "ref" 15 + } 16 + }, 17 + "required" => ["convo"], 18 + "type" => "object" 19 + } 20 + }, 21 + "parameters" => %{ 22 + "properties" => %{"convoId" => %{"type" => "string"}}, 23 + "required" => ["convoId"], 24 + "type" => "params" 25 + }, 26 + "type" => "query" 27 + } 28 + }, 29 + "id" => "chat.bsky.convo.getConvo", 30 + "lexicon" => 1 31 + }) 32 + end
+42
lib/atproto/chat/bsky/convo/getConvoAvailability.ex
··· 1 + defmodule Chat.Bsky.Convo.GetConvoAvailability do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "Get whether the requester and the other members can chat. If an existing convo is found for these members, it is returned.", 10 + "output" => %{ 11 + "encoding" => "application/json", 12 + "schema" => %{ 13 + "properties" => %{ 14 + "canChat" => %{"type" => "boolean"}, 15 + "convo" => %{ 16 + "ref" => "chat.bsky.convo.defs#convoView", 17 + "type" => "ref" 18 + } 19 + }, 20 + "required" => ["canChat"], 21 + "type" => "object" 22 + } 23 + }, 24 + "parameters" => %{ 25 + "properties" => %{ 26 + "members" => %{ 27 + "items" => %{"format" => "did", "type" => "string"}, 28 + "maxLength" => 10, 29 + "minLength" => 1, 30 + "type" => "array" 31 + } 32 + }, 33 + "required" => ["members"], 34 + "type" => "params" 35 + }, 36 + "type" => "query" 37 + } 38 + }, 39 + "id" => "chat.bsky.convo.getConvoAvailability", 40 + "lexicon" => 1 41 + }) 42 + end
+39
lib/atproto/chat/bsky/convo/getConvoForMembers.ex
··· 1 + defmodule Chat.Bsky.Convo.GetConvoForMembers do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "convo" => %{ 13 + "ref" => "chat.bsky.convo.defs#convoView", 14 + "type" => "ref" 15 + } 16 + }, 17 + "required" => ["convo"], 18 + "type" => "object" 19 + } 20 + }, 21 + "parameters" => %{ 22 + "properties" => %{ 23 + "members" => %{ 24 + "items" => %{"format" => "did", "type" => "string"}, 25 + "maxLength" => 10, 26 + "minLength" => 1, 27 + "type" => "array" 28 + } 29 + }, 30 + "required" => ["members"], 31 + "type" => "params" 32 + }, 33 + "type" => "query" 34 + } 35 + }, 36 + "id" => "chat.bsky.convo.getConvoForMembers", 37 + "lexicon" => 1 38 + }) 39 + end
+47
lib/atproto/chat/bsky/convo/getLog.ex
··· 1 + defmodule Chat.Bsky.Convo.GetLog do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "cursor" => %{"type" => "string"}, 13 + "logs" => %{ 14 + "items" => %{ 15 + "refs" => [ 16 + "chat.bsky.convo.defs#logBeginConvo", 17 + "chat.bsky.convo.defs#logAcceptConvo", 18 + "chat.bsky.convo.defs#logLeaveConvo", 19 + "chat.bsky.convo.defs#logMuteConvo", 20 + "chat.bsky.convo.defs#logUnmuteConvo", 21 + "chat.bsky.convo.defs#logCreateMessage", 22 + "chat.bsky.convo.defs#logDeleteMessage", 23 + "chat.bsky.convo.defs#logReadMessage", 24 + "chat.bsky.convo.defs#logAddReaction", 25 + "chat.bsky.convo.defs#logRemoveReaction" 26 + ], 27 + "type" => "union" 28 + }, 29 + "type" => "array" 30 + } 31 + }, 32 + "required" => ["logs"], 33 + "type" => "object" 34 + } 35 + }, 36 + "parameters" => %{ 37 + "properties" => %{"cursor" => %{"type" => "string"}}, 38 + "required" => [], 39 + "type" => "params" 40 + }, 41 + "type" => "query" 42 + } 43 + }, 44 + "id" => "chat.bsky.convo.getLog", 45 + "lexicon" => 1 46 + }) 47 + end
+48
lib/atproto/chat/bsky/convo/getMessages.ex
··· 1 + defmodule Chat.Bsky.Convo.GetMessages do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "cursor" => %{"type" => "string"}, 13 + "messages" => %{ 14 + "items" => %{ 15 + "refs" => [ 16 + "chat.bsky.convo.defs#messageView", 17 + "chat.bsky.convo.defs#deletedMessageView" 18 + ], 19 + "type" => "union" 20 + }, 21 + "type" => "array" 22 + } 23 + }, 24 + "required" => ["messages"], 25 + "type" => "object" 26 + } 27 + }, 28 + "parameters" => %{ 29 + "properties" => %{ 30 + "convoId" => %{"type" => "string"}, 31 + "cursor" => %{"type" => "string"}, 32 + "limit" => %{ 33 + "default" => 50, 34 + "maximum" => 100, 35 + "minimum" => 1, 36 + "type" => "integer" 37 + } 38 + }, 39 + "required" => ["convoId"], 40 + "type" => "params" 41 + }, 42 + "type" => "query" 43 + } 44 + }, 45 + "id" => "chat.bsky.convo.getMessages", 46 + "lexicon" => 1 47 + }) 48 + end
+33
lib/atproto/chat/bsky/convo/leaveConvo.ex
··· 1 + defmodule Chat.Bsky.Convo.LeaveConvo do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{"convoId" => %{"type" => "string"}}, 12 + "required" => ["convoId"], 13 + "type" => "object" 14 + } 15 + }, 16 + "output" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "convoId" => %{"type" => "string"}, 21 + "rev" => %{"type" => "string"} 22 + }, 23 + "required" => ["convoId", "rev"], 24 + "type" => "object" 25 + } 26 + }, 27 + "type" => "procedure" 28 + } 29 + }, 30 + "id" => "chat.bsky.convo.leaveConvo", 31 + "lexicon" => 1 32 + }) 33 + end
+48
lib/atproto/chat/bsky/convo/listConvos.ex
··· 1 + defmodule Chat.Bsky.Convo.ListConvos do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "convos" => %{ 13 + "items" => %{ 14 + "ref" => "chat.bsky.convo.defs#convoView", 15 + "type" => "ref" 16 + }, 17 + "type" => "array" 18 + }, 19 + "cursor" => %{"type" => "string"} 20 + }, 21 + "required" => ["convos"], 22 + "type" => "object" 23 + } 24 + }, 25 + "parameters" => %{ 26 + "properties" => %{ 27 + "cursor" => %{"type" => "string"}, 28 + "limit" => %{ 29 + "default" => 50, 30 + "maximum" => 100, 31 + "minimum" => 1, 32 + "type" => "integer" 33 + }, 34 + "readState" => %{"knownValues" => ["unread"], "type" => "string"}, 35 + "status" => %{ 36 + "knownValues" => ["request", "accepted"], 37 + "type" => "string" 38 + } 39 + }, 40 + "type" => "params" 41 + }, 42 + "type" => "query" 43 + } 44 + }, 45 + "id" => "chat.bsky.convo.listConvos", 46 + "lexicon" => 1 47 + }) 48 + end
+35
lib/atproto/chat/bsky/convo/muteConvo.ex
··· 1 + defmodule Chat.Bsky.Convo.MuteConvo do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{"convoId" => %{"type" => "string"}}, 12 + "required" => ["convoId"], 13 + "type" => "object" 14 + } 15 + }, 16 + "output" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "convo" => %{ 21 + "ref" => "chat.bsky.convo.defs#convoView", 22 + "type" => "ref" 23 + } 24 + }, 25 + "required" => ["convo"], 26 + "type" => "object" 27 + } 28 + }, 29 + "type" => "procedure" 30 + } 31 + }, 32 + "id" => "chat.bsky.convo.muteConvo", 33 + "lexicon" => 1 34 + }) 35 + end
+59
lib/atproto/chat/bsky/convo/removeReaction.ex
··· 1 + defmodule Chat.Bsky.Convo.RemoveReaction do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "description" => 9 + "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.", 10 + "errors" => [ 11 + %{ 12 + "description" => 13 + "Indicates that the message has been deleted and reactions can no longer be added/removed.", 14 + "name" => "ReactionMessageDeleted" 15 + }, 16 + %{ 17 + "description" => 18 + "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji.", 19 + "name" => "ReactionInvalidValue" 20 + } 21 + ], 22 + "input" => %{ 23 + "encoding" => "application/json", 24 + "schema" => %{ 25 + "properties" => %{ 26 + "convoId" => %{"type" => "string"}, 27 + "messageId" => %{"type" => "string"}, 28 + "value" => %{ 29 + "maxGraphemes" => 1, 30 + "maxLength" => 64, 31 + "minGraphemes" => 1, 32 + "minLength" => 1, 33 + "type" => "string" 34 + } 35 + }, 36 + "required" => ["convoId", "messageId", "value"], 37 + "type" => "object" 38 + } 39 + }, 40 + "output" => %{ 41 + "encoding" => "application/json", 42 + "schema" => %{ 43 + "properties" => %{ 44 + "message" => %{ 45 + "ref" => "chat.bsky.convo.defs#messageView", 46 + "type" => "ref" 47 + } 48 + }, 49 + "required" => ["message"], 50 + "type" => "object" 51 + } 52 + }, 53 + "type" => "procedure" 54 + } 55 + }, 56 + "id" => "chat.bsky.convo.removeReaction", 57 + "lexicon" => 1 58 + }) 59 + end
+35
lib/atproto/chat/bsky/convo/sendMessage.ex
··· 1 + defmodule Chat.Bsky.Convo.SendMessage do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "convoId" => %{"type" => "string"}, 13 + "message" => %{ 14 + "ref" => "chat.bsky.convo.defs#messageInput", 15 + "type" => "ref" 16 + } 17 + }, 18 + "required" => ["convoId", "message"], 19 + "type" => "object" 20 + } 21 + }, 22 + "output" => %{ 23 + "encoding" => "application/json", 24 + "schema" => %{ 25 + "ref" => "chat.bsky.convo.defs#messageView", 26 + "type" => "ref" 27 + } 28 + }, 29 + "type" => "procedure" 30 + } 31 + }, 32 + "id" => "chat.bsky.convo.sendMessage", 33 + "lexicon" => 1 34 + }) 35 + end
+55
lib/atproto/chat/bsky/convo/sendMessageBatch.ex
··· 1 + defmodule Chat.Bsky.Convo.SendMessageBatch do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "batchItem" => %{ 8 + "properties" => %{ 9 + "convoId" => %{"type" => "string"}, 10 + "message" => %{ 11 + "ref" => "chat.bsky.convo.defs#messageInput", 12 + "type" => "ref" 13 + } 14 + }, 15 + "required" => ["convoId", "message"], 16 + "type" => "object" 17 + }, 18 + "main" => %{ 19 + "input" => %{ 20 + "encoding" => "application/json", 21 + "schema" => %{ 22 + "properties" => %{ 23 + "items" => %{ 24 + "items" => %{"ref" => "#batchItem", "type" => "ref"}, 25 + "maxLength" => 100, 26 + "type" => "array" 27 + } 28 + }, 29 + "required" => ["items"], 30 + "type" => "object" 31 + } 32 + }, 33 + "output" => %{ 34 + "encoding" => "application/json", 35 + "schema" => %{ 36 + "properties" => %{ 37 + "items" => %{ 38 + "items" => %{ 39 + "ref" => "chat.bsky.convo.defs#messageView", 40 + "type" => "ref" 41 + }, 42 + "type" => "array" 43 + } 44 + }, 45 + "required" => ["items"], 46 + "type" => "object" 47 + } 48 + }, 49 + "type" => "procedure" 50 + } 51 + }, 52 + "id" => "chat.bsky.convo.sendMessageBatch", 53 + "lexicon" => 1 54 + }) 55 + end
+35
lib/atproto/chat/bsky/convo/unmuteConvo.ex
··· 1 + defmodule Chat.Bsky.Convo.UnmuteConvo do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{"convoId" => %{"type" => "string"}}, 12 + "required" => ["convoId"], 13 + "type" => "object" 14 + } 15 + }, 16 + "output" => %{ 17 + "encoding" => "application/json", 18 + "schema" => %{ 19 + "properties" => %{ 20 + "convo" => %{ 21 + "ref" => "chat.bsky.convo.defs#convoView", 22 + "type" => "ref" 23 + } 24 + }, 25 + "required" => ["convo"], 26 + "type" => "object" 27 + } 28 + }, 29 + "type" => "procedure" 30 + } 31 + }, 32 + "id" => "chat.bsky.convo.unmuteConvo", 33 + "lexicon" => 1 34 + }) 35 + end
+39
lib/atproto/chat/bsky/convo/updateAllRead.ex
··· 1 + defmodule Chat.Bsky.Convo.UpdateAllRead do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "status" => %{ 13 + "knownValues" => ["request", "accepted"], 14 + "type" => "string" 15 + } 16 + }, 17 + "type" => "object" 18 + } 19 + }, 20 + "output" => %{ 21 + "encoding" => "application/json", 22 + "schema" => %{ 23 + "properties" => %{ 24 + "updatedCount" => %{ 25 + "description" => "The count of updated convos.", 26 + "type" => "integer" 27 + } 28 + }, 29 + "required" => ["updatedCount"], 30 + "type" => "object" 31 + } 32 + }, 33 + "type" => "procedure" 34 + } 35 + }, 36 + "id" => "chat.bsky.convo.updateAllRead", 37 + "lexicon" => 1 38 + }) 39 + end
+38
lib/atproto/chat/bsky/convo/updateRead.ex
··· 1 + defmodule Chat.Bsky.Convo.UpdateRead do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "convoId" => %{"type" => "string"}, 13 + "messageId" => %{"type" => "string"} 14 + }, 15 + "required" => ["convoId"], 16 + "type" => "object" 17 + } 18 + }, 19 + "output" => %{ 20 + "encoding" => "application/json", 21 + "schema" => %{ 22 + "properties" => %{ 23 + "convo" => %{ 24 + "ref" => "chat.bsky.convo.defs#convoView", 25 + "type" => "ref" 26 + } 27 + }, 28 + "required" => ["convo"], 29 + "type" => "object" 30 + } 31 + }, 32 + "type" => "procedure" 33 + } 34 + }, 35 + "id" => "chat.bsky.convo.updateRead", 36 + "lexicon" => 1 37 + }) 38 + end
+41
lib/atproto/chat/bsky/moderation/getActorMetadata.ex
··· 1 + defmodule Chat.Bsky.Moderation.GetActorMetadata do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "all" => %{"ref" => "#metadata", "type" => "ref"}, 13 + "day" => %{"ref" => "#metadata", "type" => "ref"}, 14 + "month" => %{"ref" => "#metadata", "type" => "ref"} 15 + }, 16 + "required" => ["day", "month", "all"], 17 + "type" => "object" 18 + } 19 + }, 20 + "parameters" => %{ 21 + "properties" => %{"actor" => %{"format" => "did", "type" => "string"}}, 22 + "required" => ["actor"], 23 + "type" => "params" 24 + }, 25 + "type" => "query" 26 + }, 27 + "metadata" => %{ 28 + "properties" => %{ 29 + "convos" => %{"type" => "integer"}, 30 + "convosStarted" => %{"type" => "integer"}, 31 + "messagesReceived" => %{"type" => "integer"}, 32 + "messagesSent" => %{"type" => "integer"} 33 + }, 34 + "required" => ["messagesSent", "messagesReceived", "convos", "convosStarted"], 35 + "type" => "object" 36 + } 37 + }, 38 + "id" => "chat.bsky.moderation.getActorMetadata", 39 + "lexicon" => 1 40 + }) 41 + end
+47
lib/atproto/chat/bsky/moderation/getMessageContext.ex
··· 1 + defmodule Chat.Bsky.Moderation.GetMessageContext do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "output" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "messages" => %{ 13 + "items" => %{ 14 + "refs" => [ 15 + "chat.bsky.convo.defs#messageView", 16 + "chat.bsky.convo.defs#deletedMessageView" 17 + ], 18 + "type" => "union" 19 + }, 20 + "type" => "array" 21 + } 22 + }, 23 + "required" => ["messages"], 24 + "type" => "object" 25 + } 26 + }, 27 + "parameters" => %{ 28 + "properties" => %{ 29 + "after" => %{"default" => 5, "type" => "integer"}, 30 + "before" => %{"default" => 5, "type" => "integer"}, 31 + "convoId" => %{ 32 + "description" => 33 + "Conversation that the message is from. NOTE: this field will eventually be required.", 34 + "type" => "string" 35 + }, 36 + "messageId" => %{"type" => "string"} 37 + }, 38 + "required" => ["messageId"], 39 + "type" => "params" 40 + }, 41 + "type" => "query" 42 + } 43 + }, 44 + "id" => "chat.bsky.moderation.getMessageContext", 45 + "lexicon" => 1 46 + }) 47 + end
+26
lib/atproto/chat/bsky/moderation/updateActorAccess.ex
··· 1 + defmodule Chat.Bsky.Moderation.UpdateActorAccess do 2 + @moduledoc false 3 + use Atex.Lexicon 4 + 5 + deflexicon(%{ 6 + "defs" => %{ 7 + "main" => %{ 8 + "input" => %{ 9 + "encoding" => "application/json", 10 + "schema" => %{ 11 + "properties" => %{ 12 + "actor" => %{"format" => "did", "type" => "string"}, 13 + "allowAccess" => %{"type" => "boolean"}, 14 + "ref" => %{"type" => "string"} 15 + }, 16 + "required" => ["actor", "allowAccess"], 17 + "type" => "object" 18 + } 19 + }, 20 + "type" => "procedure" 21 + } 22 + }, 23 + "id" => "chat.bsky.moderation.updateActorAccess", 24 + "lexicon" => 1 25 + }) 26 + end
+36
mix.exs
··· 1 + defmodule AtexBsky.MixProject do 2 + use Mix.Project 3 + 4 + @version "0.1.0" 5 + @github "https://github.com/cometsh/atex_bsky" 6 + @tangled "https://tangled.sh/@comet.sh/atex_bsky" 7 + 8 + def project do 9 + [ 10 + app: :atex_bsky, 11 + version: @version, 12 + elixir: "~> 1.18", 13 + start_permanent: Mix.env() == :prod, 14 + name: "atex_bsky", 15 + description: "Pre-packaged `app.bsky` and `chat.bsky` AT Protocol lexicons.", 16 + deps: deps(), 17 + package: package() 18 + ] 19 + end 20 + 21 + def application, do: [] 22 + 23 + defp package do 24 + [ 25 + licenses: ["MIT"], 26 + links: %{"GitHub" => @github, "Tangled" => @tangled} 27 + ] 28 + end 29 + 30 + defp deps do 31 + [ 32 + {:atex, "~> 0.8"}, 33 + {:ex_doc, "~> 0.39", only: :dev, runtime: false, warn_if_outdated: true} 34 + ] 35 + end 36 + end
+31
mix.lock
··· 1 + %{ 2 + "atex": {:hex, :atex, "0.8.0", "53f0801e5a269548501fc1d7d007133c7b3e3808a107137f5a1b26ea7dd35103", [:mix], [{:con_cache, "~> 1.1", [hex: :con_cache, repo: "hexpm", optional: false]}, {:ex_cldr, "~> 2.42", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:jose, "~> 1.11", [hex: :jose, repo: "hexpm", optional: false]}, {:multiformats_ex, "~> 0.2", [hex: :multiformats_ex, repo: "hexpm", optional: false]}, {:mutex, "~> 3.0", [hex: :mutex, repo: "hexpm", optional: false]}, {:peri, "~> 0.6", [hex: :peri, repo: "hexpm", optional: false]}, {:plug, "~> 1.18", [hex: :plug, repo: "hexpm", optional: false]}, {:recase, "~> 0.5", [hex: :recase, repo: "hexpm", optional: false]}, {:req, "~> 0.5", [hex: :req, repo: "hexpm", optional: false]}, {:typedstruct, "~> 0.5", [hex: :typedstruct, repo: "hexpm", optional: false]}], "hexpm", "38353a3071e950f42b2908ca1818dbf8ca46390a9e76ff118abd117cf3c4decb"}, 3 + "cldr_utils": {:hex, :cldr_utils, "2.29.5", "f43161e04acb4016f5841b2320d69120d51827f5346babb2227893a2c5916dc8", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.9 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "962d3a2028b232ee0a5373941dc411028a9442f53444a4d5d2c354f687db1835"}, 4 + "con_cache": {:hex, :con_cache, "1.1.1", "9f47a68dfef5ac3bbff8ce2c499869dbc5ba889dadde6ac4aff8eb78ddaf6d82", [:mix], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "1def4d1bec296564c75b5bbc60a19f2b5649d81bfa345a2febcc6ae380e8ae15"}, 5 + "decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"}, 6 + "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, 7 + "ex_cldr": {:hex, :ex_cldr, "2.47.2", "c866f4b45523abd25eea3e5252eb91364296dd15bddf970db1c78cd38f25df9a", [:mix], [{:cldr_utils, "~> 2.29", [hex: :cldr_utils, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:gettext, "~> 0.19 or ~> 1.0", [hex: :gettext, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: true]}], "hexpm", "4a7cef380a1c2546166b45d6ee5e8e2f707ea695b12ae6dadd250201588b4f16"}, 8 + "ex_doc": {:hex, :ex_doc, "0.40.1", "67542e4b6dde74811cfd580e2c0149b78010fd13001fda7cfeb2b2c2ffb1344d", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "bcef0e2d360d93ac19f01a85d58f91752d930c0a30e2681145feea6bd3516e00"}, 9 + "finch": {:hex, :finch, "0.21.0", "b1c3b2d48af02d0c66d2a9ebfb5622be5c5ecd62937cf79a88a7f98d48a8290c", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.6.2 or ~> 1.7", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 1.1", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "87dc6e169794cb2570f75841a19da99cfde834249568f2a5b121b809588a4377"}, 10 + "hpax": {:hex, :hpax, "1.0.3", "ed67ef51ad4df91e75cc6a1494f851850c0bd98ebc0be6e81b026e765ee535aa", [:mix], [], "hexpm", "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"}, 11 + "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 12 + "jose": {:hex, :jose, "1.11.12", "06e62b467b61d3726cbc19e9b5489f7549c37993de846dfb3ee8259f9ed208b3", [:mix, :rebar3], [], "hexpm", "31e92b653e9210b696765cdd885437457de1add2a9011d92f8cf63e4641bab7b"}, 13 + "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, 14 + "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, 15 + "makeup_erlang": {:hex, :makeup_erlang, "1.0.3", "4252d5d4098da7415c390e847c814bad3764c94a814a0b4245176215615e1035", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "953297c02582a33411ac6208f2c6e55f0e870df7f80da724ed613f10e6706afd"}, 16 + "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, 17 + "mint": {:hex, :mint, "1.7.1", "113fdb2b2f3b59e47c7955971854641c61f378549d73e829e1768de90fc1abf1", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "fceba0a4d0f24301ddee3024ae116df1c3f4bb7a563a731f45fdfeb9d39a231b"}, 18 + "multiformats_ex": {:hex, :multiformats_ex, "0.2.0", "5b0a3faa1a770dc671aa8a89b6323cc20b0ecf67dc93dcd21312151fbea6b4ee", [:mix], [{:varint, "~> 1.4", [hex: :varint, repo: "hexpm", optional: false]}], "hexpm", "aa406d9addb06dc197e0e92212992486af6599158d357680f29f2d11e08d0423"}, 19 + "mutex": {:hex, :mutex, "3.0.3", "26408c7c518b10da5c37bc4a95511b8ac1d4841f86780e947fb683eede682952", [:mix], [], "hexpm", "fb2d7d5fc1174f6c812fa0289c907cfae10793d7bd02eadd46faea2cb1516eb5"}, 20 + "nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"}, 21 + "nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"}, 22 + "nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"}, 23 + "peri": {:hex, :peri, "0.6.2", "3c043bfb6aa18eb1ea41d80981d19294c5e943937b1311e8e958da3581139061", [:mix], [{:ecto, "~> 3.12", [hex: :ecto, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:stream_data, "~> 1.1", [hex: :stream_data, repo: "hexpm", optional: true]}], "hexpm", "5e0d8e0bd9de93d0f8e3ad6b9a5bd143f7349c025196ef4a3591af93ce6ecad9"}, 24 + "plug": {:hex, :plug, "1.19.1", "09bac17ae7a001a68ae393658aa23c7e38782be5c5c00c80be82901262c394c0", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "560a0017a8f6d5d30146916862aaf9300b7280063651dd7e532b8be168511e62"}, 25 + "plug_crypto": {:hex, :plug_crypto, "2.1.1", "19bda8184399cb24afa10be734f84a16ea0a2bc65054e23a62bb10f06bc89491", [:mix], [], "hexpm", "6470bce6ffe41c8bd497612ffde1a7e4af67f36a15eea5f921af71cf3e11247c"}, 26 + "recase": {:hex, :recase, "0.9.1", "82d2e2e2d4f9e92da1ce5db338ede2e4f15a50ac1141fc082b80050b9f49d96e", [:mix], [], "hexpm", "19ba03ceb811750e6bec4a015a9f9e45d16a8b9e09187f6d72c3798f454710f3"}, 27 + "req": {:hex, :req, "0.5.17", "0096ddd5b0ed6f576a03dde4b158a0c727215b15d2795e59e0916c6971066ede", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.17", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 2.0.6 or ~> 2.1", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "0b8bc6ffdfebbc07968e59d3ff96d52f2202d0536f10fef4dc11dc02a2a43e39"}, 28 + "telemetry": {:hex, :telemetry, "1.4.1", "ab6de178e2b29b58e8256b92b382ea3f590a47152ca3651ea857a6cae05ac423", [:rebar3], [], "hexpm", "2172e05a27531d3d31dd9782841065c50dd5c3c7699d95266b2edd54c2dafa1c"}, 29 + "typedstruct": {:hex, :typedstruct, "0.5.4", "d1d33d58460a74f413e9c26d55e66fd633abd8ac0fb12639add9a11a60a0462a", [:make, :mix], [], "hexpm", "ffaef36d5dbaebdbf4ed07f7fb2ebd1037b2c1f757db6fb8e7bcbbfabbe608d8"}, 30 + "varint": {:hex, :varint, "1.5.1", "17160c70d0428c3f8a7585e182468cac10bbf165c2360cf2328aaa39d3fb1795", [:mix], [], "hexpm", "24f3deb61e91cb988056de79d06f01161dd01be5e0acae61d8d936a552f1be73"}, 31 + }
+11
update.sh
··· 1 + #!/usr/bin/env bash 2 + 3 + set -euo pipefail 4 + 5 + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 6 + cd "$SCRIPT_DIR" 7 + 8 + mkdir -p ./tmp 9 + git clone --depth 1 --single-branch https://github.com/bluesky-social/atproto.git ./tmp/atproto 10 + mix atex.lexicons ./tmp/atproto/lexicons/app/bsky/**/*.json ./tmp/atproto/lexicons/chat/bsky/**/*.json 11 + rm -rf ./tmp