chatBskyModerationSubscribeModEvents top-level constant
chat.bsky.moderation.subscribeModEvents
Implementation
const chatBskyModerationSubscribeModEvents = <String, dynamic>{
"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": {
"type": "array",
"description":
"The list of DIDs message recipients. Does not include the sender, which is in the `user` field",
"items": {"type": "string", "format": "did"},
},
"rev": {"type": "string"},
"user": {
"type": "string",
"format": "did",
"description": "The DID of the message author.",
},
},
},
"eventGroupChatCreated": {
"type": "object",
"description": "Fire when a group chat is created.",
"required": [
"actorDid",
"convoCreatedAt",
"convoId",
"createdAt",
"groupMemberCount",
"groupName",
"initialMemberDids",
"ownerDid",
"rev",
],
"properties": {
"actorDid": {
"type": "string",
"format": "did",
"description":
"The DID of the actor performing the action. For this event, same as ownerDid.",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the group was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description": "Current member count at the time of the event.",
},
"groupName": {
"type": "string",
"description": "The name set at creation time.",
},
"initialMemberDids": {
"type": "array",
"description": "DIDs of everyone added at creation time.",
"items": {"type": "string", "format": "did"},
},
"ownerDid": {
"type": "string",
"format": "did",
"description": "The DID of the group chat owner.",
},
"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": {
"type": "string",
"format": "did",
"description":
"The DID of the actor performing the action. For this event, same as ownerDid.",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the group was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description": "Current member count at the time of the event.",
},
"groupName": {"type": "string"},
"ownerDid": {
"type": "string",
"format": "did",
"description": "The DID of the group chat owner.",
},
"requestMembersCount": {
"type": "integer",
"description":
"The number of members who have not yet accepted the convo.",
},
"rev": {"type": "string"},
"subjectDid": {
"type": "string",
"format": "did",
"description": "The DID of the member who was added.",
},
"subjectFollowsOwner": {
"type": "boolean",
"description": "Whether the added member follows the group owner.",
},
},
},
"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": {
"type": "string",
"format": "did",
"description": "The DID of the person joining.",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the group was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description": "Current member count at the time of the event.",
},
"groupName": {"type": "string"},
"joinLinkCode": {
"type": "string",
"description": "The code of the join link used to join.",
},
"ownerDid": {
"type": "string",
"format": "did",
"description": "The DID of the group chat owner.",
},
"rev": {"type": "string"},
"subjectFollowsOwner": {
"type": "boolean",
"description": "Whether the joining member follows the group owner.",
},
},
},
"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": {
"type": "string",
"format": "did",
"description": "The DID of the person requesting to join.",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the group was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description": "Current member count at the time of the event.",
},
"groupName": {"type": "string"},
"joinLinkCode": {
"type": "string",
"description": "The code of the join link used to request joining.",
},
"ownerDid": {
"type": "string",
"format": "did",
"description": "The DID of the group chat owner.",
},
"rev": {"type": "string"},
"subjectFollowsOwner": {
"type": "boolean",
"description":
"Whether the requesting member follows the group owner.",
},
},
},
"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": {
"type": "string",
"format": "did",
"description": "The DID of the owner approving the request.",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the group was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description": "Current member count at the time of the event.",
},
"groupName": {"type": "string"},
"ownerDid": {
"type": "string",
"format": "did",
"description": "The DID of the group chat owner.",
},
"rev": {"type": "string"},
"subjectDid": {
"type": "string",
"format": "did",
"description": "The DID of the member whose request was approved.",
},
},
},
"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": {
"type": "string",
"format": "did",
"description": "The DID of the owner rejecting the request.",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the group was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description": "Current member count at the time of the event.",
},
"groupName": {"type": "string"},
"ownerDid": {
"type": "string",
"format": "did",
"description": "The DID of the group chat owner.",
},
"rev": {"type": "string"},
"subjectDid": {
"type": "string",
"format": "did",
"description": "The DID of the member whose request was rejected.",
},
},
},
"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": {
"type": "string",
"format": "did",
"description": "The DID of the person accepting the convo.",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the convo was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description":
"Current member count at the time of the event. Only present for group convos.",
},
"groupName": {
"type": "string",
"description":
"The name of the group chat. Only present for group convos.",
},
"method": {
"type": "string",
"description": "How the convo was accepted.",
"knownValues": ["explicit", "message"],
},
"ownerDid": {
"type": "string",
"format": "did",
"description":
"The DID of the group chat owner. Only present for group convos.",
},
"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": {
"type": "string",
"format": "did",
"description":
"The DID of the actor. For voluntary: the person leaving. For kicked: the owner.",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the group was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description": "Current member count at the time of the event.",
},
"groupName": {"type": "string"},
"leaveMethod": {
"type": "string",
"description": "How the member left.",
"knownValues": ["voluntary", "kicked"],
},
"ownerDid": {
"type": "string",
"format": "did",
"description": "The DID of the group chat owner.",
},
"rev": {"type": "string"},
"subjectDid": {
"type": "string",
"format": "did",
"description": "The DID of the member who left or was removed.",
},
},
},
"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": {
"type": "string",
"format": "did",
"description":
"The DID of the actor performing the action (the owner).",
},
"convoCreatedAt": {
"type": "string",
"format": "datetime",
"description": "When the group was originally created.",
},
"convoId": {"type": "string"},
"createdAt": {"type": "string", "format": "datetime"},
"groupMemberCount": {
"type": "integer",
"description": "Current member count at the time of the event.",
},
"groupName": {"type": "string", "description": "Current group name."},
"joinLinkCode": {
"type": "string",
"description":
"The code of the join link. Only present when updateType is join-link-related.",
},
"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.",
},
"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",
],
},
"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'.",
},
"ownerDid": {
"type": "string",
"format": "did",
"description": "The DID of the group chat owner.",
},
"rev": {"type": "string"},
"updateType": {
"type": "string",
"description": "What changed.",
"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": {
"type": "string",
"format": "did",
"description": "The DID of the user who hit the rate limit.",
},
"createdAt": {"type": "string", "format": "datetime"},
"endpoint": {
"type": "string",
"description": "The NSID of the endpoint that was rate limited.",
},
"rev": {"type": "string"},
},
},
},
};