658 lines
18 KiB
JSON
658 lines
18 KiB
JSON
{
|
|
"lexicon": 1,
|
|
"id": "chat.bsky.moderation.subscribeModEvents",
|
|
"defs": {
|
|
"main": {
|
|
"type": "subscription",
|
|
"description": "Subscribe to stream of chat events targeted to moderation. Private endpoint.",
|
|
"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."
|
|
}
|
|
}
|
|
},
|
|
"message": {
|
|
"schema": {
|
|
"type": "union",
|
|
"refs": [
|
|
"#eventConvoFirstMessage",
|
|
"#eventGroupChatCreated",
|
|
"#eventGroupChatMemberAdded",
|
|
"#eventGroupChatMemberJoined",
|
|
"#eventGroupChatJoinRequest",
|
|
"#eventGroupChatJoinRequestApproved",
|
|
"#eventGroupChatJoinRequestRejected",
|
|
"#eventChatAccepted",
|
|
"#eventGroupChatMemberLeft",
|
|
"#eventGroupChatUpdated",
|
|
"#eventRateLimitExceeded"
|
|
]
|
|
}
|
|
},
|
|
"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."
|
|
}
|
|
]
|
|
},
|
|
"eventConvoFirstMessage": {
|
|
"type": "object",
|
|
"description": "Fired when the first message was sent on a convo.",
|
|
"required": ["createdAt", "rev", "convoId", "user", "recipients"],
|
|
"properties": {
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"messageId": {
|
|
"type": "string"
|
|
},
|
|
"recipients": {
|
|
"description": "The list of DIDs message recipients. Does not include the sender, which is in the `user` field",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"description": "The DID of the message author.",
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"eventGroupChatCreated": {
|
|
"type": "object",
|
|
"description": "Fire when a group chat is created.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"groupMemberCount",
|
|
"groupName",
|
|
"initialMemberDids",
|
|
"ownerDid",
|
|
"rev"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the actor performing the action. For this event, same as ownerDid.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the group was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"description": "The name set at creation time.",
|
|
"type": "string"
|
|
},
|
|
"initialMemberDids": {
|
|
"description": "DIDs of everyone added at creation time.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"eventGroupChatMemberAdded": {
|
|
"type": "object",
|
|
"description": "Fired when a member is added to a group chat. Note that members are added in the 'request' state.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"groupMemberCount",
|
|
"groupName",
|
|
"ownerDid",
|
|
"requestMembersCount",
|
|
"rev",
|
|
"subjectDid",
|
|
"subjectFollowsOwner"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the actor performing the action. For this event, same as ownerDid.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the group was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"type": "string"
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"requestMembersCount": {
|
|
"description": "The number of members who have not yet accepted the convo.",
|
|
"type": "integer"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
},
|
|
"subjectDid": {
|
|
"description": "The DID of the member who was added.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"subjectFollowsOwner": {
|
|
"description": "Whether the added member follows the group owner.",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"eventGroupChatMemberJoined": {
|
|
"type": "object",
|
|
"description": "Fired when a member joins a group chat via an join link that does not require approval.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"groupMemberCount",
|
|
"groupName",
|
|
"joinLinkCode",
|
|
"ownerDid",
|
|
"rev",
|
|
"subjectFollowsOwner"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the person joining.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the group was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"type": "string"
|
|
},
|
|
"joinLinkCode": {
|
|
"description": "The code of the join link used to join.",
|
|
"type": "string"
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
},
|
|
"subjectFollowsOwner": {
|
|
"description": "Whether the joining member follows the group owner.",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"eventGroupChatJoinRequest": {
|
|
"type": "object",
|
|
"description": "Fired when a user requests to join a group chat via an join link that requires approval.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"groupMemberCount",
|
|
"groupName",
|
|
"joinLinkCode",
|
|
"ownerDid",
|
|
"rev",
|
|
"subjectFollowsOwner"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the person requesting to join.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the group was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"type": "string"
|
|
},
|
|
"joinLinkCode": {
|
|
"description": "The code of the join link used to request joining.",
|
|
"type": "string"
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
},
|
|
"subjectFollowsOwner": {
|
|
"description": "Whether the requesting member follows the group owner.",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"eventGroupChatJoinRequestApproved": {
|
|
"type": "object",
|
|
"description": "Fired when a join request is approved by the group owner.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"groupMemberCount",
|
|
"groupName",
|
|
"ownerDid",
|
|
"rev",
|
|
"subjectDid"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the owner approving the request.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the group was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"type": "string"
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
},
|
|
"subjectDid": {
|
|
"description": "The DID of the member whose request was approved.",
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"eventGroupChatJoinRequestRejected": {
|
|
"type": "object",
|
|
"description": "Fired when a join request is rejected by the group owner.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"groupMemberCount",
|
|
"groupName",
|
|
"ownerDid",
|
|
"rev",
|
|
"subjectDid"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the owner rejecting the request.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the group was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"type": "string"
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
},
|
|
"subjectDid": {
|
|
"description": "The DID of the member whose request was rejected.",
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"eventChatAccepted": {
|
|
"type": "object",
|
|
"description": "Fired when a user accepts a chat convo, either explicitly or by sending a message.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"method",
|
|
"rev"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the person accepting the convo.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the convo was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event. Only present for group convos.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"description": "The name of the group chat. Only present for group convos.",
|
|
"type": "string"
|
|
},
|
|
"method": {
|
|
"description": "How the convo was accepted.",
|
|
"type": "string",
|
|
"knownValues": ["explicit", "message"]
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner. Only present for group convos.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"eventGroupChatMemberLeft": {
|
|
"type": "object",
|
|
"description": "Fired when a member leaves or is removed from a group chat.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"groupMemberCount",
|
|
"groupName",
|
|
"leaveMethod",
|
|
"ownerDid",
|
|
"rev",
|
|
"subjectDid"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the actor. For voluntary: the person leaving. For kicked: the owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the group was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"type": "string"
|
|
},
|
|
"leaveMethod": {
|
|
"description": "How the member left.",
|
|
"type": "string",
|
|
"knownValues": ["voluntary", "kicked"]
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
},
|
|
"subjectDid": {
|
|
"description": "The DID of the member who left or was removed.",
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"eventGroupChatUpdated": {
|
|
"type": "object",
|
|
"description": "Fired when a group chat's metadata or status changes.",
|
|
"required": [
|
|
"actorDid",
|
|
"convoCreatedAt",
|
|
"convoId",
|
|
"createdAt",
|
|
"groupMemberCount",
|
|
"groupName",
|
|
"ownerDid",
|
|
"rev",
|
|
"updateType"
|
|
],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the actor performing the action (the owner).",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"convoCreatedAt": {
|
|
"description": "When the group was originally created.",
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"convoId": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"groupMemberCount": {
|
|
"description": "Current member count at the time of the event.",
|
|
"type": "integer"
|
|
},
|
|
"groupName": {
|
|
"description": "Current group name.",
|
|
"type": "string"
|
|
},
|
|
"joinLinkCode": {
|
|
"description": "The code of the join link. Only present when updateType is join-link-related.",
|
|
"type": "string"
|
|
},
|
|
"joinLinkFollowersOnly": {
|
|
"description": "Whether the join link is restricted to followers of the owner. Only present when updateType is join-link-related.",
|
|
"type": "boolean"
|
|
},
|
|
"joinLinkRequiresApproval": {
|
|
"description": "Whether the join link requires owner approval to join. Only present when updateType is join-link-related.",
|
|
"type": "boolean"
|
|
},
|
|
"lockReason": {
|
|
"description": "Why the group was locked. Only present when updateType is 'locked'.",
|
|
"type": "string",
|
|
"knownValues": [
|
|
"owner_action",
|
|
"owner_left",
|
|
"owner_deactivated",
|
|
"owner_deleted",
|
|
"owner_suspended",
|
|
"owner_taken_down",
|
|
"label_applied",
|
|
"convo_taken_down"
|
|
]
|
|
},
|
|
"newName": {
|
|
"description": "The new group name. Only present when updateType is 'name_changed'.",
|
|
"type": "string"
|
|
},
|
|
"oldName": {
|
|
"description": "The previous group name. Only present when updateType is 'name_changed'.",
|
|
"type": "string"
|
|
},
|
|
"ownerDid": {
|
|
"description": "The DID of the group chat owner.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
},
|
|
"updateType": {
|
|
"description": "What changed.",
|
|
"type": "string",
|
|
"knownValues": [
|
|
"name_changed",
|
|
"locked",
|
|
"locked_permanently",
|
|
"unlocked",
|
|
"join_link_created",
|
|
"join_link_disabled",
|
|
"join_link_settings_changed"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"eventRateLimitExceeded": {
|
|
"type": "object",
|
|
"description": "Fired when a user exceeds a rate limit.",
|
|
"required": ["actorDid", "createdAt", "endpoint", "rev"],
|
|
"properties": {
|
|
"actorDid": {
|
|
"description": "The DID of the user who hit the rate limit.",
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "datetime"
|
|
},
|
|
"endpoint": {
|
|
"description": "The NSID of the endpoint that was rate limited.",
|
|
"type": "string"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|