[SDK] Add lexicon codegen pipeline (@atproto/lex) (#11346)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"id": "chat.bsky.actor.declaration",
|
||||
"defs": {
|
||||
"main": {
|
||||
"key": "literal:self",
|
||||
"type": "record",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"allowIncoming"
|
||||
],
|
||||
"properties": {
|
||||
"allowIncoming": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"all",
|
||||
"none",
|
||||
"following"
|
||||
]
|
||||
},
|
||||
"allowGroupInvites": {
|
||||
"type": "string",
|
||||
"description": "Declaration about group chat invitation preferences for the record owner.",
|
||||
"knownValues": [
|
||||
"all",
|
||||
"none",
|
||||
"following"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "A declaration of a Bluesky chat account."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"id": "chat.bsky.actor.defs",
|
||||
"defs": {
|
||||
"memberRole": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"owner",
|
||||
"standard"
|
||||
]
|
||||
},
|
||||
"groupConvoMember": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"role"
|
||||
],
|
||||
"properties": {
|
||||
"role": {
|
||||
"ref": "#memberRole",
|
||||
"type": "ref",
|
||||
"description": "The member's role within this conversation. Only present in group conversation member lists."
|
||||
},
|
||||
"addedBy": {
|
||||
"ref": "#profileViewBasic",
|
||||
"type": "ref",
|
||||
"description": "Who added this member. Only present if the member was added (instead of joining via link)."
|
||||
}
|
||||
},
|
||||
"description": "A current group convo member."
|
||||
},
|
||||
"profileViewBasic": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"did",
|
||||
"handle"
|
||||
],
|
||||
"properties": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"kind": {
|
||||
"refs": [
|
||||
"#directConvoMember",
|
||||
"#groupConvoMember",
|
||||
"#pastGroupConvoMember"
|
||||
],
|
||||
"type": "union",
|
||||
"description": "Union field that has data specific to different kinds of convos."
|
||||
},
|
||||
"avatar": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"handle": {
|
||||
"type": "string",
|
||||
"format": "handle"
|
||||
},
|
||||
"labels": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "com.atproto.label.defs#label",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"viewer": {
|
||||
"ref": "app.bsky.actor.defs#viewerState",
|
||||
"type": "ref"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"associated": {
|
||||
"ref": "app.bsky.actor.defs#profileAssociated",
|
||||
"type": "ref"
|
||||
},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 640,
|
||||
"maxGraphemes": 64
|
||||
},
|
||||
"chatDisabled": {
|
||||
"type": "boolean",
|
||||
"description": "Set to true when the actor cannot actively participate in conversations"
|
||||
},
|
||||
"verification": {
|
||||
"ref": "app.bsky.actor.defs#verificationState",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"directConvoMember": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
},
|
||||
"pastGroupConvoMember": {
|
||||
"type": "object",
|
||||
"required": [],
|
||||
"properties": {},
|
||||
"description": "A past group convo member."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"id": "chat.bsky.actor.deleteAccount",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"id": "chat.bsky.actor.exportAccountData",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"encoding": "application/jsonl"
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"id": "chat.bsky.actor.getStatus",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"chatDisabled",
|
||||
"canCreateGroups",
|
||||
"groupMemberLimit"
|
||||
],
|
||||
"properties": {
|
||||
"chatDisabled": {
|
||||
"type": "boolean",
|
||||
"description": "True when the viewer's account is disabled and cannot actively participate in chat."
|
||||
},
|
||||
"canCreateGroups": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the viewer's account is allowed to create group chats. New accounts are restricted from creating groups."
|
||||
},
|
||||
"groupMemberLimit": {
|
||||
"type": "integer",
|
||||
"description": "The maximum number of members allowed in a group conversation."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Get the authenticated viewer's chat status: whether their account is chat-disabled and whether their group-membership additions are restricted to accounts they follow."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.acceptConvo",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string",
|
||||
"description": "Rev when the convo was accepted. If not present, the convo was already accepted."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Marks a conversation as accepted, so it is shown in the list of accepted convos instead on the request convos."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.addReaction",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"messageId",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"value": {
|
||||
"type": "string",
|
||||
"maxLength": 64,
|
||||
"minLength": 1,
|
||||
"maxGraphemes": 1,
|
||||
"minGraphemes": 1
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"messageId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "ReactionNotAllowed",
|
||||
"description": "Indicates that reactions are not allowed on this message, e.g. because it is a system message."
|
||||
},
|
||||
{
|
||||
"name": "ReactionMessageDeleted",
|
||||
"description": "Indicates that the message has been deleted and reactions can no longer be added/removed."
|
||||
},
|
||||
{
|
||||
"name": "ReactionLimitReached",
|
||||
"description": "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."
|
||||
},
|
||||
{
|
||||
"name": "ReactionInvalidValue",
|
||||
"description": "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji."
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"message": {
|
||||
"ref": "chat.bsky.convo.defs#messageView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "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."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.deleteMessageForSelf",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"messageId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"messageId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "MessageDeleteNotAllowed",
|
||||
"description": "Indicates that this message cannot be deleted, e.g. because it is a system message."
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"ref": "chat.bsky.convo.defs#deletedMessageView",
|
||||
"type": "ref"
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Marks a message as deleted for the viewer, so they won't see that message in future enumerations."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.getConvo",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Gets an existing conversation by its ID."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.getConvoAvailability",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"canChat"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
},
|
||||
"canChat": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"members"
|
||||
],
|
||||
"properties": {
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"maxLength": 10,
|
||||
"minLength": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Check whether the requester and the other members can start a 1-1 chat. Only applicable to direct (non-group) conversations. If an existing convo is found for these members, it is returned. Does not create a new convo if it doesn't exist."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.getConvoForMembers",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "AccountSuspended"
|
||||
},
|
||||
{
|
||||
"name": "BlockedActor"
|
||||
},
|
||||
{
|
||||
"name": "BlockedSubject"
|
||||
},
|
||||
{
|
||||
"name": "MessagesDisabled"
|
||||
},
|
||||
{
|
||||
"name": "NotFollowedBySender"
|
||||
},
|
||||
{
|
||||
"name": "RecipientNotFound"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"members"
|
||||
],
|
||||
"properties": {
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"maxLength": 10,
|
||||
"minLength": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get or create a 1-1 conversation for the given members. Always returns the same direct (non-group) conversation. To create a group conversation, use createGroup."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.getConvoMembers",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"members"
|
||||
],
|
||||
"properties": {
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Returns a paginated list of members from a conversation."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.getLog",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"logs"
|
||||
],
|
||||
"properties": {
|
||||
"logs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"chat.bsky.convo.defs#logBeginConvo",
|
||||
"chat.bsky.convo.defs#logAcceptConvo",
|
||||
"chat.bsky.convo.defs#logLeaveConvo",
|
||||
"chat.bsky.convo.defs#logMuteConvo",
|
||||
"chat.bsky.convo.defs#logUnmuteConvo",
|
||||
"chat.bsky.convo.defs#logCreateMessage",
|
||||
"chat.bsky.convo.defs#logDeleteMessage",
|
||||
"chat.bsky.convo.defs#logReadMessage",
|
||||
"chat.bsky.convo.defs#logAddReaction",
|
||||
"chat.bsky.convo.defs#logRemoveReaction",
|
||||
"chat.bsky.convo.defs#logReadConvo",
|
||||
"chat.bsky.convo.defs#logAddMember",
|
||||
"chat.bsky.convo.defs#logRemoveMember",
|
||||
"chat.bsky.convo.defs#logMemberJoin",
|
||||
"chat.bsky.convo.defs#logMemberLeave",
|
||||
"chat.bsky.convo.defs#logLockConvo",
|
||||
"chat.bsky.convo.defs#logUnlockConvo",
|
||||
"chat.bsky.convo.defs#logLockConvoPermanently",
|
||||
"chat.bsky.convo.defs#logEditGroup",
|
||||
"chat.bsky.convo.defs#logCreateJoinLink",
|
||||
"chat.bsky.convo.defs#logEditJoinLink",
|
||||
"chat.bsky.convo.defs#logEnableJoinLink",
|
||||
"chat.bsky.convo.defs#logDisableJoinLink",
|
||||
"chat.bsky.convo.defs#logIncomingJoinRequest",
|
||||
"chat.bsky.convo.defs#logApproveJoinRequest",
|
||||
"chat.bsky.convo.defs#logRejectJoinRequest",
|
||||
"chat.bsky.convo.defs#logOutgoingJoinRequest",
|
||||
"chat.bsky.convo.defs#logWithdrawIncomingJoinRequest",
|
||||
"chat.bsky.convo.defs#logWithdrawOutgoingJoinRequest",
|
||||
"chat.bsky.convo.defs#logReadJoinRequests"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [],
|
||||
"properties": {
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.getMessages",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"messages"
|
||||
],
|
||||
"properties": {
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"messages": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"chat.bsky.convo.defs#messageView",
|
||||
"chat.bsky.convo.defs#deletedMessageView",
|
||||
"chat.bsky.convo.defs#systemMessageView"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
},
|
||||
"relatedProfiles": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": "Set of all members who authored or reacted to the returned messages. Members referred to by system messages are also included."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Returns a page of messages from a conversation."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.getUnreadCounts",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"unreadAcceptedConvos",
|
||||
"unreadRequestConvos"
|
||||
],
|
||||
"properties": {
|
||||
"unreadRequestConvos": {
|
||||
"type": "integer",
|
||||
"description": "Number of unread, unlocked request convos. Includes convos with unread messages, but not with unread join request, since only the owner of a group has join requests to read, and the group would necessarily be accepted. Capped at 100, where 100 means more than 99."
|
||||
},
|
||||
"unreadAcceptedConvos": {
|
||||
"type": "integer",
|
||||
"description": "Number of unread, unlocked accepted convos. Counts convos with unread messages and unread join requests. Capped at 100, where 100 means more than 99."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"properties": {
|
||||
"includeGroupChats": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "When false, group convos are excluded from the counts."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Returns unread conversation counts for conversations that are unlocked, not muted, split by convo status. Direct convos are excluded when a block relationship exists between the actor and the other member, or when the other member's account is deleted or deactivated. Group convos are considered unread if they have unread join request counts."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.leaveConvo",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "OwnerCannotLeave",
|
||||
"description": "The owner of a group conversation cannot leave before locking the group."
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"rev"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Leaves a conversation (direct or group). For group, this effectively removes membership. For direct, membership is never removed, only changed to remove from enumerations by the user who left."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.listConvoRequests",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"requests"
|
||||
],
|
||||
"properties": {
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"requests": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"chat.bsky.convo.defs#convoView",
|
||||
"chat.bsky.group.defs#joinRequestConvoView"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Returns a page of incoming conversation requests for the user. Direct convo requests are returned as convoView; group join requests made by the user are returned as joinRequestConvoView."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.listConvos",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convos"
|
||||
],
|
||||
"properties": {
|
||||
"convos": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Filter by conversation kind.",
|
||||
"knownValues": [
|
||||
"direct",
|
||||
"group"
|
||||
]
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Filter convos by their status. It is discouraged to call with \"request\" and preferred to call chat.bsky.convo.listConvoRequests, which also includes group join requests made by the user.",
|
||||
"knownValues": [
|
||||
"request",
|
||||
"accepted"
|
||||
]
|
||||
},
|
||||
"readState": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"unread"
|
||||
]
|
||||
},
|
||||
"lockStatus": {
|
||||
"type": "string",
|
||||
"description": "Filter by conversation lock status. Values follow chat.bsky.convo.defs#convoLockStatus.",
|
||||
"knownValues": [
|
||||
"unlocked",
|
||||
"locked",
|
||||
"locked-permanently"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Returns a page of conversations (direct or group) for the user."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.lockConvo",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "ConvoLocked"
|
||||
},
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Locks a group convo so no more content (messages, reactions) can be added to it."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.muteConvo",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Mutes a conversation, preventing notifications related to it."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.removeReaction",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"messageId",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"value": {
|
||||
"type": "string",
|
||||
"maxLength": 64,
|
||||
"minLength": 1,
|
||||
"maxGraphemes": 1,
|
||||
"minGraphemes": 1
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"messageId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "ReactionNotAllowed",
|
||||
"description": "Indicates that reactions are not allowed on this message, e.g. because it is a system message."
|
||||
},
|
||||
{
|
||||
"name": "ReactionMessageDeleted",
|
||||
"description": "Indicates that the message has been deleted and reactions can no longer be added/removed."
|
||||
},
|
||||
{
|
||||
"name": "ReactionInvalidValue",
|
||||
"description": "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji."
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"message": {
|
||||
"ref": "chat.bsky.convo.defs#messageView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "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."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.sendMessage",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"message": {
|
||||
"ref": "chat.bsky.convo.defs#messageInput",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "ConvoLocked"
|
||||
},
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "ReplyTargetNotFound"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"ref": "chat.bsky.convo.defs#messageView",
|
||||
"type": "ref"
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Sends a message to a conversation."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.sendMessageBatch",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"items"
|
||||
],
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#batchItem",
|
||||
"type": "ref"
|
||||
},
|
||||
"maxLength": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "ConvoLocked"
|
||||
},
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "ReplyTargetNotFound"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"items"
|
||||
],
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.convo.defs#messageView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Sends a batch of messages to a conversation."
|
||||
},
|
||||
"batchItem": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"message": {
|
||||
"ref": "chat.bsky.convo.defs#messageInput",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.unlockConvo",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
},
|
||||
{
|
||||
"name": "ConvoLockedByModeration"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Unlocks a group convo so it is able to receive new content."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.unmuteConvo",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Unmutes a conversation, allowing notifications related to it."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.updateAllRead",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"request",
|
||||
"accepted"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"updatedCount"
|
||||
],
|
||||
"properties": {
|
||||
"updatedCount": {
|
||||
"type": "integer",
|
||||
"description": "The count of updated convos."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Sets conversations from a user as read to the latest message, with filters."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"id": "chat.bsky.convo.updateRead",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"messageId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Updates the read state of a conversation from, optionally specifying the last read message."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"id": "chat.bsky.embed.joinLink",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"code"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string",
|
||||
"description": "The join link code."
|
||||
}
|
||||
}
|
||||
},
|
||||
"view": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"joinLinkPreview"
|
||||
],
|
||||
"properties": {
|
||||
"joinLinkPreview": {
|
||||
"refs": [
|
||||
"chat.bsky.group.defs#joinLinkPreviewView",
|
||||
"chat.bsky.group.defs#disabledJoinLinkPreviewView",
|
||||
"chat.bsky.group.defs#invalidJoinLinkPreviewView"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1,
|
||||
"description": "A join link embedded in a chat message."
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"id": "chat.bsky.group.addMembers",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"members"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"minLength": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "AccountSuspended"
|
||||
},
|
||||
{
|
||||
"name": "BlockedActor"
|
||||
},
|
||||
{
|
||||
"name": "BlockedSubject"
|
||||
},
|
||||
{
|
||||
"name": "ConvoLocked"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
},
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "MemberLimitReached"
|
||||
},
|
||||
{
|
||||
"name": "NotFollowedBySender"
|
||||
},
|
||||
{
|
||||
"name": "RecipientNotFound"
|
||||
},
|
||||
{
|
||||
"name": "UserForbidsGroups"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
},
|
||||
"addedMembers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Adds members to a group. The members are added in 'request' status, so they have to accept it. This creates convo memberships."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"id": "chat.bsky.group.approveJoinRequest",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"member"
|
||||
],
|
||||
"properties": {
|
||||
"member": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
},
|
||||
{
|
||||
"name": "MemberLimitReached"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Approves a request to join a group (via join link) the user owns. Action taken by the group owner."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"id": "chat.bsky.group.createGroup",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"members",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 500,
|
||||
"minLength": 1,
|
||||
"maxGraphemes": 50
|
||||
},
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"maxLength": 10000,
|
||||
"description": "The members to add to the group. The owner is automatically added. Implementations may enforce a lower maximum than the 10,000-item schema limit; Bluesky currently supports up to 100 total members. If the owner is included in this list, the list may contain up to the implementation's total member limit. Otherwise, it may contain one fewer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "AccountSuspended"
|
||||
},
|
||||
{
|
||||
"name": "BlockedActor"
|
||||
},
|
||||
{
|
||||
"name": "BlockedSubject"
|
||||
},
|
||||
{
|
||||
"name": "NewAccountCannotCreateGroup"
|
||||
},
|
||||
{
|
||||
"name": "NotFollowedBySender"
|
||||
},
|
||||
{
|
||||
"name": "RecipientNotFound"
|
||||
},
|
||||
{
|
||||
"name": "UserForbidsGroups"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Creates a group convo, specifying the members to be added to it. Unlike getConvoForMembers, this isn't idempotent. It will create new groups even if the membership is identical to pre-existing groups. Will create 'request' membership for all members, except the owner who is 'accepted'."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"id": "chat.bsky.group.createJoinLink",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"joinRule"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"joinRule": {
|
||||
"ref": "chat.bsky.group.defs#joinRule",
|
||||
"type": "ref"
|
||||
},
|
||||
"requireApproval": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "EnabledJoinLinkAlreadyExists"
|
||||
},
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"joinLink"
|
||||
],
|
||||
"properties": {
|
||||
"joinLink": {
|
||||
"ref": "chat.bsky.group.defs#joinLinkView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Creates a join link for the group convo."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,192 @@
|
||||
{
|
||||
"id": "chat.bsky.group.defs",
|
||||
"defs": {
|
||||
"joinRule": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"anyone",
|
||||
"followedByOwner"
|
||||
]
|
||||
},
|
||||
"joinLinkView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"code",
|
||||
"enabledStatus",
|
||||
"requireApproval",
|
||||
"joinRule",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string"
|
||||
},
|
||||
"joinRule": {
|
||||
"ref": "#joinRule",
|
||||
"type": "ref"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"enabledStatus": {
|
||||
"ref": "#linkEnabledStatus",
|
||||
"type": "ref"
|
||||
},
|
||||
"requireApproval": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"description": "Join link view to be used within a group view, so the convo is surrounding, not specified inside this view."
|
||||
},
|
||||
"joinRequestView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"requestedBy",
|
||||
"requestedAt"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"requestedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"requestedBy": {
|
||||
"ref": "chat.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"description": "A join request from the perspective of the group owner."
|
||||
},
|
||||
"linkEnabledStatus": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"enabled",
|
||||
"disabled"
|
||||
]
|
||||
},
|
||||
"joinLinkPreviewView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"code",
|
||||
"name",
|
||||
"owner",
|
||||
"memberCount",
|
||||
"memberLimit",
|
||||
"requireApproval",
|
||||
"joinRule"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref",
|
||||
"description": "Present only if the request is authenticated and the user is a member of the group."
|
||||
},
|
||||
"owner": {
|
||||
"ref": "chat.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
},
|
||||
"viewer": {
|
||||
"ref": "#joinLinkViewerState",
|
||||
"type": "ref"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"joinRule": {
|
||||
"ref": "#joinRule",
|
||||
"type": "ref"
|
||||
},
|
||||
"memberCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"memberLimit": {
|
||||
"type": "integer"
|
||||
},
|
||||
"requireApproval": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"description": "Preview that can be shown in feeds, including to unauthenticated viewers."
|
||||
},
|
||||
"joinLinkViewerState": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"requestedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
}
|
||||
}
|
||||
},
|
||||
"joinRequestConvoView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"name",
|
||||
"owner",
|
||||
"memberCount",
|
||||
"memberLimit",
|
||||
"viewer"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"owner": {
|
||||
"ref": "chat.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
},
|
||||
"viewer": {
|
||||
"ref": "#joinLinkViewerState",
|
||||
"type": "ref"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"memberCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"memberLimit": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"description": "A join request from the perspective of the requester, including enough group context to render the request in a list (e.g. group name, owner, member count)."
|
||||
},
|
||||
"invalidJoinLinkPreviewView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"code"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "Preview for a join link code that does not map to an existing link. Carries only the code so clients can correlate with the input and render an invalid state."
|
||||
},
|
||||
"disabledJoinLinkPreviewView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"code"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "Preview for a disabled join link. Carries only the code so clients can correlate with the input and render a disabled state."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"id": "chat.bsky.group.disableJoinLink",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
},
|
||||
{
|
||||
"name": "NoJoinLink"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"joinLink"
|
||||
],
|
||||
"properties": {
|
||||
"joinLink": {
|
||||
"ref": "chat.bsky.group.defs#joinLinkView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Disables the active join link for the group convo."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"id": "chat.bsky.group.editGroup",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 500,
|
||||
"minLength": 1,
|
||||
"maxGraphemes": 50
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "ConvoLocked"
|
||||
},
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Edits group settings."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"id": "chat.bsky.group.editJoinLink",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"joinRule": {
|
||||
"ref": "chat.bsky.group.defs#joinRule",
|
||||
"type": "ref"
|
||||
},
|
||||
"requireApproval": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
},
|
||||
{
|
||||
"name": "NoJoinLink"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"joinLink"
|
||||
],
|
||||
"properties": {
|
||||
"joinLink": {
|
||||
"ref": "chat.bsky.group.defs#joinLinkView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Edits the existing join link settings for the group convo."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"id": "chat.bsky.group.enableJoinLink",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
},
|
||||
{
|
||||
"name": "NoJoinLink"
|
||||
},
|
||||
{
|
||||
"name": "LinkAlreadyEnabled"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"joinLink"
|
||||
],
|
||||
"properties": {
|
||||
"joinLink": {
|
||||
"ref": "chat.bsky.group.defs#joinLinkView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Re-enables a previously disabled join link for the group convo."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"id": "chat.bsky.group.getJoinLinkPreviews",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"joinLinkPreviews"
|
||||
],
|
||||
"properties": {
|
||||
"joinLinkPreviews": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"chat.bsky.group.defs#joinLinkPreviewView",
|
||||
"chat.bsky.group.defs#disabledJoinLinkPreviewView",
|
||||
"chat.bsky.group.defs#invalidJoinLinkPreviewView"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"codes"
|
||||
],
|
||||
"properties": {
|
||||
"codes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"maxLength": 50,
|
||||
"minLength": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get public information about groups from join links. The output array matches the input codes one-to-one by position (and each view also carries its 'code'). Disabled codes return a disabledJoinLinkPreviewView, and codes that do not map to a previewable link return an invalidJoinLinkPreviewView."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"id": "chat.bsky.group.listJoinRequests",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"requests"
|
||||
],
|
||||
"properties": {
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"requests": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.group.defs#joinRequestView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Lists a page of request to join a group (via join link) the user owns. Shows the data from the owner's point of view."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"id": "chat.bsky.group.listMutualGroups",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convos"
|
||||
],
|
||||
"properties": {
|
||||
"convos": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"subject"
|
||||
],
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"subject": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Returns a page of group conversations that both the requester and the specified actor are members of."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"id": "chat.bsky.group.rejectJoinRequest",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"member"
|
||||
],
|
||||
"properties": {
|
||||
"member": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [],
|
||||
"properties": {}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Rejects a request to join a group (via join link) the user owns. Action taken by the group owner."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"id": "chat.bsky.group.removeMembers",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId",
|
||||
"members"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"minLength": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Removes members from a group. This deletes convo memberships, doesn't just set a status."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"id": "chat.bsky.group.requestJoin",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"code"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "ConvoLocked"
|
||||
},
|
||||
{
|
||||
"name": "FollowRequired"
|
||||
},
|
||||
{
|
||||
"name": "InvalidCode"
|
||||
},
|
||||
{
|
||||
"name": "LinkDisabled"
|
||||
},
|
||||
{
|
||||
"name": "MemberLimitReached"
|
||||
},
|
||||
{
|
||||
"name": "UserKicked"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"status"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.convo.defs#convoView",
|
||||
"type": "ref",
|
||||
"description": "The group convo joined. This is only present in the case of status=joined"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"joined",
|
||||
"pending"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Sends a request to join a group (via join link) to the group owner. Action taken by the prospective group member."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"id": "chat.bsky.group.updateJoinRequestsRead",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
},
|
||||
{
|
||||
"name": "InsufficientRole"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [],
|
||||
"properties": {}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Marks all join requests as read for the group owner."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"id": "chat.bsky.group.withdrawJoinRequest",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidJoinRequest"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [],
|
||||
"properties": {}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Withdraws a pending request to join a group. Action taken by the prospective member who originally requested to join."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"id": "chat.bsky.moderation.defs",
|
||||
"defs": {
|
||||
"convoView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"rev"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"refs": [
|
||||
"#directConvo",
|
||||
"#groupConvo"
|
||||
],
|
||||
"type": "union",
|
||||
"description": "Union field that has data specific to different kinds of convos."
|
||||
}
|
||||
},
|
||||
"description": "A view of a conversation for moderation purposes. Unlike chat.bsky.convo.defs#convoView, it does not include viewer-specific data (such as muted, unreadCount, status, lastMessage, lastReaction), since the requester is a moderator and not a member of the conversation. The member list is not included; use chat.bsky.moderation.getConvoMembers to list members."
|
||||
},
|
||||
"groupConvo": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"createdAt",
|
||||
"joinRequestCount",
|
||||
"lockStatus",
|
||||
"memberCount",
|
||||
"memberLimit",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 500,
|
||||
"description": "The display name of the group conversation.",
|
||||
"maxGraphemes": 50
|
||||
},
|
||||
"joinLink": {
|
||||
"ref": "chat.bsky.group.defs#joinLinkView",
|
||||
"type": "ref"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"lockStatus": {
|
||||
"ref": "chat.bsky.convo.defs#convoLockStatus",
|
||||
"type": "ref",
|
||||
"description": "The lock status of the conversation."
|
||||
},
|
||||
"memberCount": {
|
||||
"type": "integer",
|
||||
"description": "The total number of members in the group conversation."
|
||||
},
|
||||
"memberLimit": {
|
||||
"type": "integer",
|
||||
"description": "The maximum number of members allowed in the group conversation."
|
||||
},
|
||||
"joinRequestCount": {
|
||||
"type": "integer",
|
||||
"description": "The total number of pending join requests for the group conversation. This information is only visible to the owner and to moderators. Capped at 21."
|
||||
}
|
||||
},
|
||||
"description": "Data specific to a group conversation, for moderation purposes. Unlike chat.bsky.convo.defs#groupConvo, it does not include viewer-specific data (such as unreadJoinRequestCount), since the requester is a moderator and not a member of the conversation."
|
||||
},
|
||||
"directConvo": {
|
||||
"type": "object",
|
||||
"properties": {},
|
||||
"description": "Data specific to a direct conversation, for moderation purposes."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"id": "chat.bsky.moderation.getActorMetadata",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"day",
|
||||
"month",
|
||||
"all"
|
||||
],
|
||||
"properties": {
|
||||
"all": {
|
||||
"ref": "#metadata",
|
||||
"type": "ref"
|
||||
},
|
||||
"day": {
|
||||
"ref": "#metadata",
|
||||
"type": "ref"
|
||||
},
|
||||
"month": {
|
||||
"ref": "#metadata",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"actor"
|
||||
],
|
||||
"properties": {
|
||||
"actor": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"messagesSent",
|
||||
"messagesReceived",
|
||||
"convos",
|
||||
"convosStarted"
|
||||
],
|
||||
"properties": {
|
||||
"convos": {
|
||||
"type": "integer"
|
||||
},
|
||||
"messagesSent": {
|
||||
"type": "integer"
|
||||
},
|
||||
"convosStarted": {
|
||||
"type": "integer"
|
||||
},
|
||||
"messagesReceived": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"id": "chat.bsky.moderation.getConvo",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convo"
|
||||
],
|
||||
"properties": {
|
||||
"convo": {
|
||||
"ref": "chat.bsky.moderation.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Gets an existing conversation by its ID, for moderation purposes. Does not require the requester to be a member of the conversation."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"id": "chat.bsky.moderation.getConvoMembers",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "InvalidConvo"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"members"
|
||||
],
|
||||
"properties": {
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"convoId"
|
||||
],
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Returns a paginated list of members from a conversation, for moderation purposes. Does not require the requester to be a member of the conversation."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "chat.bsky.moderation.getConvos",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"convos"
|
||||
],
|
||||
"properties": {
|
||||
"convos": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "chat.bsky.moderation.defs#convoView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"convoIds"
|
||||
],
|
||||
"properties": {
|
||||
"convoIds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"maxLength": 100,
|
||||
"minLength": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Gets existing conversations by their IDs, for moderation purposes. Does not require the requester to be a member of the conversations. Unknown IDs are silently omitted from the response."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"id": "chat.bsky.moderation.getMessageContext",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"messages"
|
||||
],
|
||||
"properties": {
|
||||
"messages": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"chat.bsky.convo.defs#messageView",
|
||||
"chat.bsky.convo.defs#systemMessageView"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"messageId"
|
||||
],
|
||||
"properties": {
|
||||
"after": {
|
||||
"type": "integer",
|
||||
"default": 5,
|
||||
"description": "Number of user messages after the target to include. System messages between the target and the latest returned user message are also included, capped per gap by `maxInterleavedSystemMessages`. If there are no user messages after the target, up to `maxInterleavedSystemMessages` system messages immediately following the target are returned instead."
|
||||
},
|
||||
"before": {
|
||||
"type": "integer",
|
||||
"default": 5,
|
||||
"description": "Number of user messages before the target to include. System messages between the earliest returned user message and the target are also included, capped per gap by `maxInterleavedSystemMessages`. If there are no user messages before the target, up to `maxInterleavedSystemMessages` system messages immediately preceding the target are returned instead."
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string",
|
||||
"description": "Conversation that the message is from. NOTE: this field will eventually be required."
|
||||
},
|
||||
"messageId": {
|
||||
"type": "string"
|
||||
},
|
||||
"maxInterleavedSystemMessages": {
|
||||
"type": "integer",
|
||||
"default": 10,
|
||||
"maximum": 1000,
|
||||
"minimum": 0,
|
||||
"description": "Maximum number of system messages to include per gap between consecutive returned messages (and per side when there are no user messages on that side). Within a gap, the system messages closest to the earlier message are kept."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,675 @@
|
||||
{
|
||||
"id": "chat.bsky.moderation.subscribeModEvents",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "subscription",
|
||||
"errors": [
|
||||
{
|
||||
"name": "FutureCursor"
|
||||
},
|
||||
{
|
||||
"name": "ConsumerTooSlow",
|
||||
"description": "If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection."
|
||||
}
|
||||
],
|
||||
"message": {
|
||||
"schema": {
|
||||
"refs": [
|
||||
"#eventConvoFirstMessage",
|
||||
"#eventGroupChatCreated",
|
||||
"#eventGroupChatMemberAdded",
|
||||
"#eventGroupChatMemberJoined",
|
||||
"#eventGroupChatJoinRequest",
|
||||
"#eventGroupChatJoinRequestApproved",
|
||||
"#eventGroupChatJoinRequestRejected",
|
||||
"#eventChatAccepted",
|
||||
"#eventGroupChatMemberLeft",
|
||||
"#eventGroupChatUpdated",
|
||||
"#eventRateLimitExceeded"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"properties": {
|
||||
"cursor": {
|
||||
"type": "string",
|
||||
"description": "The last known event seq number to backfill from. Use '2222222222222' to backfill from the beginning. Don't specify a cursor to listen only for new events."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Subscribe to stream of chat events targeted to moderation. Private endpoint."
|
||||
},
|
||||
"eventChatAccepted": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"method",
|
||||
"rev"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"method": {
|
||||
"type": "string",
|
||||
"description": "How the convo was accepted.",
|
||||
"knownValues": [
|
||||
"explicit",
|
||||
"message"
|
||||
]
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the person accepting the convo."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner. Only present for group convos."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string",
|
||||
"description": "The name of the group chat. Only present for group convos."
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the convo was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event. Only present for group convos."
|
||||
}
|
||||
},
|
||||
"description": "Fired when a user accepts a chat convo, either explicitly or by sending a message."
|
||||
},
|
||||
"eventGroupChatCreated": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"groupMemberCount",
|
||||
"groupName",
|
||||
"initialMemberDids",
|
||||
"ownerDid",
|
||||
"rev"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the actor performing the action. For this event, same as ownerDid."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string",
|
||||
"description": "The name set at creation time."
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the group was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event."
|
||||
},
|
||||
"initialMemberDids": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"description": "DIDs of everyone added at creation time."
|
||||
}
|
||||
},
|
||||
"description": "Fire when a group chat is created."
|
||||
},
|
||||
"eventGroupChatUpdated": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"groupMemberCount",
|
||||
"groupName",
|
||||
"ownerDid",
|
||||
"rev",
|
||||
"updateType"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"newName": {
|
||||
"type": "string",
|
||||
"description": "The new group name. Only present when updateType is 'name_changed'."
|
||||
},
|
||||
"oldName": {
|
||||
"type": "string",
|
||||
"description": "The previous group name. Only present when updateType is 'name_changed'."
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the actor performing the action (the owner)."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string",
|
||||
"description": "Current group name."
|
||||
},
|
||||
"lockReason": {
|
||||
"type": "string",
|
||||
"description": "Why the group was locked. Only present when updateType is 'locked'.",
|
||||
"knownValues": [
|
||||
"owner_action",
|
||||
"owner_left",
|
||||
"owner_deactivated",
|
||||
"owner_deleted",
|
||||
"owner_suspended",
|
||||
"owner_taken_down",
|
||||
"label_applied",
|
||||
"convo_taken_down"
|
||||
]
|
||||
},
|
||||
"updateType": {
|
||||
"type": "string",
|
||||
"description": "What changed.",
|
||||
"knownValues": [
|
||||
"name_changed",
|
||||
"locked",
|
||||
"locked_permanently",
|
||||
"unlocked",
|
||||
"join_link_created",
|
||||
"join_link_disabled",
|
||||
"join_link_settings_changed"
|
||||
]
|
||||
},
|
||||
"joinLinkCode": {
|
||||
"type": "string",
|
||||
"description": "The code of the join link. Only present when updateType is join-link-related."
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the group was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event."
|
||||
},
|
||||
"joinLinkFollowersOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the join link is restricted to followers of the owner. Only present when updateType is join-link-related."
|
||||
},
|
||||
"joinLinkRequiresApproval": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the join link requires owner approval to join. Only present when updateType is join-link-related."
|
||||
}
|
||||
},
|
||||
"description": "Fired when a group chat's metadata or status changes."
|
||||
},
|
||||
"eventConvoFirstMessage": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"createdAt",
|
||||
"rev",
|
||||
"convoId",
|
||||
"user",
|
||||
"recipients"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"user": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the message author."
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"messageId": {
|
||||
"type": "string"
|
||||
},
|
||||
"recipients": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"description": "The list of DIDs message recipients. Does not include the sender, which is in the `user` field"
|
||||
}
|
||||
},
|
||||
"description": "Fired when the first message was sent on a convo."
|
||||
},
|
||||
"eventRateLimitExceeded": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"createdAt",
|
||||
"endpoint",
|
||||
"rev"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the user who hit the rate limit."
|
||||
},
|
||||
"endpoint": {
|
||||
"type": "string",
|
||||
"description": "The NSID of the endpoint that was rate limited."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
}
|
||||
},
|
||||
"description": "Fired when a user exceeds a rate limit."
|
||||
},
|
||||
"eventGroupChatMemberLeft": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"groupMemberCount",
|
||||
"groupName",
|
||||
"leaveMethod",
|
||||
"ownerDid",
|
||||
"rev",
|
||||
"subjectDid"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the actor. For voluntary: the person leaving. For kicked: the owner."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string"
|
||||
},
|
||||
"subjectDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the member who left or was removed."
|
||||
},
|
||||
"leaveMethod": {
|
||||
"type": "string",
|
||||
"description": "How the member left.",
|
||||
"knownValues": [
|
||||
"voluntary",
|
||||
"kicked"
|
||||
]
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the group was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event."
|
||||
}
|
||||
},
|
||||
"description": "Fired when a member leaves or is removed from a group chat."
|
||||
},
|
||||
"eventGroupChatJoinRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"groupMemberCount",
|
||||
"groupName",
|
||||
"joinLinkCode",
|
||||
"ownerDid",
|
||||
"rev",
|
||||
"subjectFollowsOwner"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the person requesting to join."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string"
|
||||
},
|
||||
"joinLinkCode": {
|
||||
"type": "string",
|
||||
"description": "The code of the join link used to request joining."
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the group was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event."
|
||||
},
|
||||
"subjectFollowsOwner": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the requesting member follows the group owner."
|
||||
}
|
||||
},
|
||||
"description": "Fired when a user requests to join a group chat via an join link that requires approval."
|
||||
},
|
||||
"eventGroupChatMemberAdded": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"groupMemberCount",
|
||||
"groupName",
|
||||
"ownerDid",
|
||||
"requestMembersCount",
|
||||
"rev",
|
||||
"subjectDid",
|
||||
"subjectFollowsOwner"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the actor performing the action. For this event, same as ownerDid."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string"
|
||||
},
|
||||
"subjectDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the member who was added."
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the group was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event."
|
||||
},
|
||||
"requestMembersCount": {
|
||||
"type": "integer",
|
||||
"description": "The number of members who have not yet accepted the convo."
|
||||
},
|
||||
"subjectFollowsOwner": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the added member follows the group owner."
|
||||
}
|
||||
},
|
||||
"description": "Fired when a member is added to a group chat. Note that members are added in the 'request' state."
|
||||
},
|
||||
"eventGroupChatMemberJoined": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"groupMemberCount",
|
||||
"groupName",
|
||||
"joinLinkCode",
|
||||
"ownerDid",
|
||||
"rev",
|
||||
"subjectFollowsOwner"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the person joining."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string"
|
||||
},
|
||||
"joinLinkCode": {
|
||||
"type": "string",
|
||||
"description": "The code of the join link used to join."
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the group was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event."
|
||||
},
|
||||
"subjectFollowsOwner": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the joining member follows the group owner."
|
||||
}
|
||||
},
|
||||
"description": "Fired when a member joins a group chat via an join link that does not require approval."
|
||||
},
|
||||
"eventGroupChatJoinRequestApproved": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"groupMemberCount",
|
||||
"groupName",
|
||||
"ownerDid",
|
||||
"rev",
|
||||
"subjectDid"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the owner approving the request."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string"
|
||||
},
|
||||
"subjectDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the member whose request was approved."
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the group was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event."
|
||||
}
|
||||
},
|
||||
"description": "Fired when a join request is approved by the group owner."
|
||||
},
|
||||
"eventGroupChatJoinRequestRejected": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actorDid",
|
||||
"convoCreatedAt",
|
||||
"convoId",
|
||||
"createdAt",
|
||||
"groupMemberCount",
|
||||
"groupName",
|
||||
"ownerDid",
|
||||
"rev",
|
||||
"subjectDid"
|
||||
],
|
||||
"properties": {
|
||||
"rev": {
|
||||
"type": "string"
|
||||
},
|
||||
"convoId": {
|
||||
"type": "string"
|
||||
},
|
||||
"actorDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the owner rejecting the request."
|
||||
},
|
||||
"ownerDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the group chat owner."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"groupName": {
|
||||
"type": "string"
|
||||
},
|
||||
"subjectDid": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the member whose request was rejected."
|
||||
},
|
||||
"convoCreatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the group was originally created."
|
||||
},
|
||||
"groupMemberCount": {
|
||||
"type": "integer",
|
||||
"description": "Current member count at the time of the event."
|
||||
}
|
||||
},
|
||||
"description": "Fired when a join request is rejected by the group owner."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"id": "chat.bsky.moderation.updateActorAccess",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"actor",
|
||||
"allowAccess"
|
||||
],
|
||||
"properties": {
|
||||
"ref": {
|
||||
"type": "string"
|
||||
},
|
||||
"actor": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"allowAccess": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "chat.bsky.notification.defs",
|
||||
"defs": {
|
||||
"preferences": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"chat",
|
||||
"chatRequest"
|
||||
],
|
||||
"properties": {
|
||||
"chat": {
|
||||
"ref": "#chatPreference",
|
||||
"type": "ref"
|
||||
},
|
||||
"chatRequest": {
|
||||
"ref": "#chatPreference",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chatPreference": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"include",
|
||||
"push"
|
||||
],
|
||||
"properties": {
|
||||
"push": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"include": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"all",
|
||||
"follows"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"id": "chat.bsky.notification.getPreferences",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"preferences"
|
||||
],
|
||||
"properties": {
|
||||
"preferences": {
|
||||
"ref": "chat.bsky.notification.defs#preferences",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Get the requesting account's chat notification preferences. Defaults are returned for accounts that have not set any preferences. Requires auth."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"id": "chat.bsky.notification.putPreferences",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"chat": {
|
||||
"ref": "chat.bsky.notification.defs#chatPreference",
|
||||
"type": "ref"
|
||||
},
|
||||
"chatRequest": {
|
||||
"ref": "chat.bsky.notification.defs#chatPreference",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"preferences"
|
||||
],
|
||||
"properties": {
|
||||
"preferences": {
|
||||
"ref": "chat.bsky.notification.defs#preferences",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Set the requesting account's chat notification preferences. Only the provided preferences are updated; omitted preferences are left unchanged."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
Reference in New Issue
Block a user