diff --git a/.gitmodules b/.gitmodules index cfea1c0..6025dae 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,3 +14,7 @@ path = lemmy-instance-stats url = https://github.com/LemmyNet/lemmy-instance-stats branch = main +[submodule "lemmy-js-client"] + path = lemmy-js-client + url = https://github.com/LemmyNet/lemmy-js-client + branch = main diff --git a/Dockerfile b/Dockerfile index f3a6406..ae78d97 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,11 +8,13 @@ RUN cargo install mdbook \ COPY lemmy-docs ./lemmy-docs RUN mdbook build lemmy-docs -d ../docs -# Build the asyncapi API docs -FROM asyncapi/generator:1.8.0 as api +# Build the typedoc API docs +FROM node:14-alpine as api WORKDIR /app -COPY src/assets/scripts/asyncapi.yaml ./ -RUN ag -o ./api ./asyncapi.yaml @asyncapi/html-template --force-write +COPY lemmy-js-client lemmy-js-client +WORKDIR /app/lemmy-js-client +RUN yarn +RUN yarn docs # Build the isomorphic app FROM node:14-alpine as builder @@ -37,7 +39,7 @@ COPY src src # Copy the docs and API COPY --from=docs /app/docs ./src/assets/docs -COPY --from=api /app/api ./src/assets/api +COPY --from=api /app/lemmy-js-client/docs ./src/assets/api RUN yarn RUN yarn build:prod diff --git a/lemmy-docs b/lemmy-docs index 089ddd3..532b1c0 160000 --- a/lemmy-docs +++ b/lemmy-docs @@ -1 +1 @@ -Subproject commit 089ddd39d86de05ac501c9fb8b128e858e5b2fd8 +Subproject commit 532b1c04cac39b143a116d3954307d5dde1d00a2 diff --git a/lemmy-instance-stats b/lemmy-instance-stats index c013663..edc5fcd 160000 --- a/lemmy-instance-stats +++ b/lemmy-instance-stats @@ -1 +1 @@ -Subproject commit c01366351d5689345dc1c983831abb78c74dae14 +Subproject commit edc5fcd2a42c5b0538a67640e41bf0335285aeeb diff --git a/lemmy-js-client b/lemmy-js-client new file mode 160000 index 0000000..e2fe947 --- /dev/null +++ b/lemmy-js-client @@ -0,0 +1 @@ +Subproject commit e2fe9478a82e304f79dcaa09ca8384f597fa4a39 diff --git a/src/assets/scripts/asyncapi.yaml b/src/assets/scripts/asyncapi.yaml deleted file mode 100644 index 6ce7354..0000000 --- a/src/assets/scripts/asyncapi.yaml +++ /dev/null @@ -1,4716 +0,0 @@ -asyncapi: 2.0.0 -info: - title: Lemmy WebSocket API - version: "2.0" - contact: - name: Mastodon - url: https://mastodon.social/@LemmyDev - description: |- - ### About Lemmy - - [**Lemmy**](https://github.com/LemmyNet/lemmy) is a decentralized alternative to proprietary link aggregators such as Reddit. - - #### More information... - - - [Install your own server](https://join-lemmy.org/docs/en/administration/administration.html) - - [API reference](https://join-lemmy.org/docs/en/contributing/api_reference.html) - - [HTTP API](https://join-lemmy.org/docs/en/contributing/http_api.html) - - ### Browse this WebSocket API document - - For testing purposes, either [set up your own server](https://join-lemmy.org/docs/en/administration/administration.html) or one of the test servers: Enterprise, DS9 or Voyager (see below). You can then scan through the *Operations* in this document: - - - **PUB** - these are the messages sent (published) to the API. The _Payload_ describes the required format. _Extensions/x-response_ indicates the response to the request and _Examples_ provides a JSON object (handy for pasting into your websocket client for testing). - - **SUB** - these are the messages received from the API (subscribed to). - - > The 'HTTP API - operation and endpoint' section within each message is for those who prefer to use the [HTTP API](https://join-lemmy.org/docs/en/contributing/http_api.html) to access Lemmy. - - ### Generate code or documentation - - **[Open and save](asyncapi.yaml) this specification file** and use it with the various [AsyncAPI tools](https://www.asyncapi.com/docs/community/tooling) to test out the code and documentation options. - - ### Test with websocat - - Test with your favorite WebSocket client (_[websocat](https://github.com/vi/websocat)_ is recommended). Connect the client to `ws://***host***/api/v2/ws` to get started. If the server supports secure connections, you can use `wss://**server**/api/v1/ws`. - - For example a simple test using websocat might be: - - `websocat ws://127.0.0.1:8536/api/v2/ws -nt` - - A simple test command: - - `{"op": "GetSite", "data": {}}` - - ### Test with the [WebSocket JavaScript API](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) - - ```javascript - var ws = new WebSocket("ws://" + host + "/api/v2/ws"); - ws.onopen = function () { - console.log("Connection succeed!"); - ws.send(JSON.stringify({ - op: "GetSite", - data: {} - })); - }; - ``` - - ### The 'join' channels - CommunityJoin, ModJoin, PostJoin, UserJoin - - Most API responses generate an immediate and direct (synchronous) response to to the preceding API request: one of an error or a success response. However, for the ‘join’ requests (**CommunityJoin**, **ModJoin**, **PostJoin** and **UserJoin**), you can also receive one of several ‘as it happens’ (asynchronous) responses. - - ### The HTTP API - - Lemmy also has an [HTTP API](https://join-lemmy.org/docs/en/contributing/http_api.html) which is almost identical to the WebSocket API; however, this WebSocket API is the primary source since it also details the specifics of HTTP API calls. - - license: - name: AGPL - url: "https://www.gnu.org/licenses/agpl-3.0.en.html" -servers: - ds9: - url: ds9.lemmy.ml - protocol: WebSocket - description: DS9 test server - enterprise: - url: enterprise.lemmy.ml - protocol: WebSocket - description: Enterprise test server - voyager: - url: voyager.lemmy.ml - protocol: WebSocket - description: Voyager test server -externalDocs: - description: Lemmy documentation - url: "https://lemmy.ml/docs/index.html" -tags: - - name: User, authentication and admin - - name: Site - - name: Community - - name: Post - - name: Comments -channels: - api/v2/ws: - publish: - summary: Messages sent to the API - message: - oneOf: - - $ref: "#/components/messages/loginRequest" - - $ref: "#/components/messages/getCaptchaRequest" - - $ref: "#/components/messages/registerRequest" - - $ref: "#/components/messages/getPersonDetailsRequest" - - $ref: "#/components/messages/saveUserSettingsRequest" - - $ref: "#/components/messages/getRepliesRequest" - - $ref: "#/components/messages/getPersonMentionsRequest" - - $ref: "#/components/messages/markMentionsRequest" - - $ref: "#/components/messages/privateMessageRequest" - - $ref: "#/components/messages/editPrivateMessageRequest" - - $ref: "#/components/messages/deletePrivateMessageRequest" - - $ref: "#/components/messages/markPrivateMessageRequest" - - $ref: "#/components/messages/markAllReadRequest" - - $ref: "#/components/messages/deleteAccountRequest" - - $ref: "#/components/messages/banPersonRequest" - - $ref: "#/components/messages/userJoinRequest" - - $ref: "#/components/messages/getReportCountRequest" - - $ref: "#/components/messages/addAdminRequest" - - $ref: "#/components/messages/getModLogRequest" - - $ref: "#/components/messages/createSiteRequest" - - $ref: "#/components/messages/searchRequest" - - $ref: "#/components/messages/editSiteRequest" - - $ref: "#/components/messages/getSiteRequest" - - $ref: "#/components/messages/transferSiteRequest" - - $ref: "#/components/messages/getSiteConfigRequest" - - $ref: "#/components/messages/saveSiteConfigRequest" - - $ref: "#/components/messages/getCommunityRequest" - - $ref: "#/components/messages/listCommunityRequest" - - $ref: "#/components/messages/createCommunityRequest" - - $ref: "#/components/messages/banFromCommunityRequest" - - $ref: "#/components/messages/addModToCommunityRequest" - - $ref: "#/components/messages/editCommunityRequest" - - $ref: "#/components/messages/deleteCommunityRequest" - - $ref: "#/components/messages/removeCommunityRequest" - - $ref: "#/components/messages/followCommunityRequest" - - $ref: "#/components/messages/getFollowedCommunitiesRequest" - - $ref: "#/components/messages/transferCommunityRequest" - - $ref: "#/components/messages/communityJoinRequest" - - $ref: "#/components/messages/modJoinRequest" - - $ref: "#/components/messages/createPostRequest" - - $ref: "#/components/messages/getPostRequest" - - $ref: "#/components/messages/getPostListRequest" - - $ref: "#/components/messages/editPostRequest" - - $ref: "#/components/messages/deletePostRequest" - - $ref: "#/components/messages/createPostLikeRequest" - - $ref: "#/components/messages/removePostRequest" - - $ref: "#/components/messages/stickyPostRequest" - - $ref: "#/components/messages/postLockRequest" - - $ref: "#/components/messages/postJoinRequest" - - $ref: "#/components/messages/savePostRequest" - - $ref: "#/components/messages/createPostReportRequest" - - $ref: "#/components/messages/resolvePostReportRequest" - - $ref: "#/components/messages/listPostReportsRequest" - - $ref: "#/components/messages/createCommentRequest" - - $ref: "#/components/messages/editCommentRequest" - - $ref: "#/components/messages/deleteCommentRequest" - - $ref: "#/components/messages/removeCommentRequest" - - $ref: "#/components/messages/getCommentsRequest" - - $ref: "#/components/messages/markCommentRequest" - - $ref: "#/components/messages/saveCommentRequest" - - $ref: "#/components/messages/createCommentLikeRequest" - - $ref: "#/components/messages/createCommentReportRequest" - - $ref: "#/components/messages/resolveCommentReportRequest" - - $ref: "#/components/messages/listCommentReportsRequest" - subscribe: - summary: Messages received from the API - message: - oneOf: - - $ref: "#/components/messages/addAdminResponse" - - $ref: "#/components/messages/addModToCommunityResponse" - - $ref: "#/components/messages/banFromCommunityResponse" - - $ref: "#/components/messages/banPersonResponse" - - $ref: "#/components/messages/communityJoinResponse" - - $ref: "#/components/messages/createCommentLikeResponse" - - $ref: "#/components/messages/createCommentReportResponse" - - $ref: "#/components/messages/createCommentResponse" - - $ref: "#/components/messages/createCommunityResponse" - - $ref: "#/components/messages/createPostLikeResponse" - - $ref: "#/components/messages/createPostReportResponse" - - $ref: "#/components/messages/createPostResponse" - - $ref: "#/components/messages/createPrivateMessageResponse" - - $ref: "#/components/messages/createSiteResponse" - - $ref: "#/components/messages/deleteAccountResponse" - - $ref: "#/components/messages/deleteCommentResponse" - - $ref: "#/components/messages/deleteCommunityResponse" - - $ref: "#/components/messages/deletePostResponse" - - $ref: "#/components/messages/deletePrivateMessageResponse" - - $ref: "#/components/messages/editCommentResponse" - - $ref: "#/components/messages/editCommunityResponse" - - $ref: "#/components/messages/editPostResponse" - - $ref: "#/components/messages/editPrivateMessageResponse" - - $ref: "#/components/messages/editSiteResponse" - - $ref: "#/components/messages/followCommunityResponse" - - $ref: "#/components/messages/getCaptchaResponse" - - $ref: "#/components/messages/getCommentsResponse" - - $ref: "#/components/messages/getCommunityResponse" - - $ref: "#/components/messages/getFollowedCommunitiesResponse" - - $ref: "#/components/messages/getModLogResponse" - - $ref: "#/components/messages/getPersonDetailsResponse" - - $ref: "#/components/messages/getPostListResponse" - - $ref: "#/components/messages/getPostResponse" - - $ref: "#/components/messages/getReportCountResponse" - - $ref: "#/components/messages/getSiteConfigResponse" - - $ref: "#/components/messages/getSiteResponse" - - $ref: "#/components/messages/listCommentReportsResponse" - - $ref: "#/components/messages/listCommunityResponse" - - $ref: "#/components/messages/listPostReportsResponse" - - $ref: "#/components/messages/loginResponse" - - $ref: "#/components/messages/markAllReadResponse" - - $ref: "#/components/messages/markCommentResponse" - - $ref: "#/components/messages/markMentionResponse" - - $ref: "#/components/messages/markPrivateMessageResponse" - - $ref: "#/components/messages/mentionsResponse" - - $ref: "#/components/messages/modJoinResponse" - - $ref: "#/components/messages/postJoinResponse" - - $ref: "#/components/messages/postLockResponse" - - $ref: "#/components/messages/privateMessagesResponse" - - $ref: "#/components/messages/registerResponse" - - $ref: "#/components/messages/repliesResponse" - - $ref: "#/components/messages/errorResponse" -components: - messages: - errorResponse: - name: Error response - payload: - type: object - properties: - error: - description: "The error message" - type: string - example: "passwords_dont_match" - loginRequest: - name: Login request - description: |- - Login with username or registered email. - - #### HTTP API - operation and endpoint. - - `POST /user/login` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^Login$" - default: "Login" - data: - type: object - required: - - username_or_email - - password - properties: - username_or_email: - $ref: "#/components/schemas/username_or_email" - password: - $ref: "#/components/schemas/password" - x-response: - $ref: "#/components/messages/loginResponse" - loginResponse: - name: Login response - description: |- - Returns an authentication string (`jwt`) for the supplied username or email. - The JWT claim is in the following format: - - ``` - Claims { - // local_user_id, standard claim by RFC 7519. - sub: i32, - iss: String, - // Time when this token was issued as UNIX-timestamp in seconds - iat: i64, - } - payload: - type: object - properties: - op: - type: string - pattern: "^Login$" - default: "Login" - data: - $ref: "#/components/schemas/authSchema" - getRepliesRequest: - name: User replies request - description: |- - See all notifications and comments on all a user's posts - - #### HTTP API - operation and endpoint. - - `GET /user/replies` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetReplies$" - default: "GetReplies" - data: - $ref: "#/components/schemas/repliesMentionsRequest" - x-response: - $ref: "#/components/messages/repliesResponse" - getPersonMentionsRequest: - name: User mentions request - description: |- - Return any @ mentions of the user in posts and comments - - #### HTTP API - operation and endpoint. - - `GET /user/mention` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetPersonMentions$" - default: "GetPersonMentions" - data: - $ref: "#/components/schemas/repliesMentionsRequest" - x-response: - $ref: "#/components/messages/mentionsResponse" - getCaptchaRequest: - name: Captcha request - description: |- - Get Captcha details for registering a user. These details expire after 10 minutes. - - #### HTTP API - operation and endpoint. - - `GET /user/get_captcha` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetCaptcha$" - default: "GetCaptcha" - data: - type: object - x-response: - $ref: "#/components/messages/getCaptchaResponse" - getCaptchaResponse: - name: Return Captcha request details - payload: - type: object - properties: - op: - type: string - pattern: "^GetCaptcha$" - default: "GetCaptcha" - data: - type: object - properties: - ok: - type: object - description: "Will be *undefined* if Captcha is disabled on the Lemmy server" - properties: - png: - type: string - description: "A [Base64 encoded](https://www.base64encode.org/) representation of the Captcha image (in .PNG format)" - wav: - type: string - description: "A [Base64 encoded](https://www.base64encode.org/) representation of the Captcha audio (in .WAV format)" - uuid: - type: string - description: The unique id of the Catpcha request - example: "77cfa414-999e-4445-9940-cebe86139d14" - registerRequest: - name: Register a user on the Lemmy server - description: |- - Register a user on the Lemmy server. If Captcha is enabled on the server, obtain those details by using **GetCaptcha** (*before* attempting to register) - - #### HTTP API - operation and endpoint. - - `POST /user/register` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^Register$" - default: "Register" - data: - type: object - required: - - username - - password - - admin - - password_verify - - show_nsfw - properties: - username: - type: string - description: "The name for the new user" - example: "testuser" - email: - description: |- - The user's email address - type: string - format: email - password: - $ref: "#/components/schemas/password" - password_verify: - $ref: "#/components/schemas/password" - admin: - type: boolean - description: "Set to *true* if this is to be the admin user. Only the user who was *first* registered on the Lemmy server is allowed to be admin." - example: false - default: false - show_nsfw: - $ref: "#/components/schemas/show_nsfw" - captcha_uuid: - type: string - description: "The unique id of the Catpcha request (as reported by **GetCaptcha**)" - example: "77cfa414-999e-4445-9940-cebe86139d14" - captcha_answer: - type: string - description: "The *answer* to the Captcha test" - example: "EjhBi7" - x-response: - $ref: "#/components/messages/registerResponse" - registerResponse: - name: Registration request response - description: "The response to the registration request will be an authentication string (`jwt`) for that user" - payload: - type: object - properties: - op: - type: string - pattern: "^Register$" - default: "Register" - data: - $ref: "#/components/schemas/authSchema" - saveUserSettingsRequest: - name: Save user settings - response - description: |- - Set profile for an existing user. - - If you want to set a new password, you *must* provide **old_password**. - - #### HTTP API - operation and endpoint. - - `PUT /user/save_user_settings` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^SaveUserSettings$" - default: "SaveUserSettings" - data: - type: object - required: - - show_nsfw - properties: - show_nsfw: - $ref: "#/components/schemas/show_nsfw" - theme: - $ref: "#/components/schemas/theme" - default_sort_type: - $ref: "#/components/schemas/default_sort_type" - default_listing_type: - $ref: "#/components/schemas/default_listing_type" - lang: - $ref: "#/components/schemas/lang" - avatar: - $ref: "#/components/schemas/avatar" - banner: - $ref: "#/components/schemas/banner" - preferred_username: - $ref: "#/components/schemas/preferred_username" - email: - $ref: "#/components/schemas/email" - bio: - $ref: "#/components/schemas/bio" - matrix_user_id: - $ref: "#/components/schemas/matrix_user_id" - new_password: - $ref: "#/components/schemas/password" - new_password_verify: - $ref: "#/components/schemas/password" - old_password: - $ref: "#/components/schemas/password" - show_avatars: - $ref: "#/components/schemas/show_avatars" - send_notifications_to_email: - $ref: "#/components/schemas/send_notifications_to_email" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/saveUserSettingsResponse" - getPersonDetailsRequest: - name: Return requested user details - description: |- - - Use the `username` field to return details about a local user - - Use the `person_id` field to return details about a federated user. - - `community_id` restricts posts and comments in the response to this community. - - #### HTTP API - operation and endpoint. - - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetPersonDetails$" - default: "GetPersonDetails" - data: - type: object - required: - - sort - - saved_only - properties: - person_id: - $ref: "#/components/schemas/person_id" - username: - $ref: "#/components/schemas/user_name" - sort: - $ref: "#/components/schemas/sort" - page: - $ref: "#/components/schemas/page" - limit: - $ref: "#/components/schemas/limit" - community_id: - $ref: "#/components/schemas/community_id" - saved_only: - $ref: "#/components/schemas/saved_only" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/getPersonDetailsResponse" - saveUserSettingsResponse: - name: Response to saving user settings (profile) - payload: - type: object - properties: - op: - type: string - pattern: "^SaveUserSettings$" - default: "SaveUserSettings" - data: - type: object - properties: - jwt: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/getPersonDetailsResponse" - getPersonDetailsResponse: - name: User details request response - description: Returns full details about a specified person (including the last post the person wrote) - payload: - type: object - properties: - op: - type: string - pattern: "^GetPersonDetails$" - default: "GetPersonDetails" - data: - type: object - person_view: - $ref: "#/components/schemas/person_view" - posts: - $ref: "#/components/schemas/replies" - comments: - $ref: "#/components/schemas/comments" - moderates: - $ref: "#/components/schemas/moderators" - follows: - description: The list of followers (members) for each community - type: array - items: - properties: - follower: - $ref: "#/components/schemas/person" - community: - $ref: "#/components/schemas/community" - repliesResponse: - name: Returning user replies response - description: Returns detailed reply data - payload: - type: object - properties: - data: - type: object - properties: - replies: - $ref: "#/components/schemas/replies" - op: - type: string - pattern: "^GetReplies$" - default: "GetReplies" - mentionsResponse: - name: Returning user mentions response - description: Returns detailed data about mentions - payload: - type: object - properties: - data: - type: object - properties: - mentions: - description: A list of all user mentions - type: array - items: - properties: - PersonMentionView: - $ref: "#/components/schemas/mentions" - op: - type: string - pattern: "^GetPersonMentions$" - default: "GetPersonMentions" - markMentionsRequest: - name: Request to make a user mention as read - description: |- - Mark a specified mention as read. Only the recipient of a mention can do this. - - #### HTTP API - operation and endpoint. - - `POST /user/mention/mark_as_read` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^MarkPersonMentionAsRead$" - default: "MarkPersonMentionAsRead" - data: - type: object - properties: - person_mention_id: - description: "The id of the recipient" - type: integer - format: int32 - read: - description: "Forthcoming..." - type: boolean - example: false - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/markMentionResponse" - markMentionResponse: - name: Returning response for marked mention - description: Returns detailed data about the mention - payload: - type: object - properties: - op: - type: string - pattern: "^MarkPersonMentionAsRead$" - default: "MarkPersonMentionAsRead" - data: - type: object - properties: - mention: - $ref: "#/components/schemas/mentions" - privateMessageRequest: - name: Request to list all a user's private messages - description: |- - Request a list of messages sent to the user. - - #### HTTP API - operation and endpoint. - - `GET /private_message/list` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetPrivateMessages$" - default: "GetPrivateMessages" - data: - type: object - required: - - unread_only - - auth - properties: - unread_only: - $ref: "#/components/schemas/unread_only" - page: - $ref: "#/components/schemas/page" - limit: - $ref: "#/components/schemas/limit" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/privateMessagesResponse" - privateMessagesResponse: - name: List of all a user's private messages - description: Returns list of messages - payload: - type: object - properties: - data: - type: object - properties: - private_messages: - type: array - items: - $ref: "#/components/schemas/private_message_view" - op: - type: string - pattern: "^GetPrivateMessages$" - default: "GetPrivateMessages" - createPrivateMessageRequest: - name: |- - Request to create a private message - description: |- - Send a private message to another user. - - #### HTTP API - operation and endpoint. - - `POST /private_message` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreatePrivateMessage$" - default: "CreatePrivateMessage" - data: - type: object - required: - - content - - recipient_id - - auth - properties: - content: - $ref: "#/components/schemas/content" - recipient_id: - $ref: "#/components/schemas/recipient" - auth: - $ref: "#/components/schemas/authStringSchema" - createPrivateMessageResponse: - name: |- - Confirmation of the sent private message - payload: - type: object - properties: - op: - type: string - pattern: "^CreatePrivateMessage$" - default: "CreatePrivateMessage" - data: - type: object - properties: - private_message_view: - $ref: "#/components/schemas/private_message_view" - editPrivateMessageRequest: - name: Request to edit a private message - description: |- - Replace an existing private message with the provided content. - - #### HTTP API - operation and endpoint. - - `PUT /private_message` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^EditPrivateMessage$" - default: "EditPrivateMessage" - data: - type: object - required: - - private_message_id - - content - - auth - properties: - private_message_id: - $ref: "#/components/schemas/private_message_id" - content: - $ref: "#/components/schemas/content" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/editPrivateMessageResponse" - editPrivateMessageResponse: - name: Confirmation of the edited private message - payload: - type: object - properties: - data: - type: object - properties: - private_message_view: - $ref: "#/components/schemas/private_message_view" - op: - type: string - pattern: "^EditPrivateMessage$" - default: "EditPrivateMessage" - deletePrivateMessageRequest: - name: Request to delete a private message - description: |- - Delete a specified private message. - - #### HTTP API - operation and endpoint. - - `POST /private_message/delete` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^DeletePrivateMessage$" - default: "DeletePrivateMessage" - data: - type: object - required: - - private_message_id - - deleted - - auth - properties: - private_message_id: - $ref: "#/components/schemas/private_message_id" - deleted: - $ref: "#/components/schemas/deleted" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/deletePrivateMessageResponse" - deletePrivateMessageResponse: - name: Confirmation of the deleted private message - payload: - type: object - properties: - data: - type: object - properties: - private_message_view: - $ref: "#/components/schemas/private_message_view" - op: - type: string - pattern: "^DeletePrivateMessage$" - default: "DeletePrivateMessage" - markPrivateMessageRequest: - name: Request to mark a private message as read - description: |- - Mark a specified private message as read. Only the recipient of a message can do this. - - #### HTTP API - operation and endpoint. - - `POST /private_message/mark_as_read` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^MarkPrivateMessageAsRead$" - default: "MarkPrivateMessageAsRead" - data: - type: object - required: - - private_message_id - - read - - auth - properties: - private_message_id: - $ref: "#/components/schemas/private_message_id" - read: - $ref: "#/components/schemas/read" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/markPrivateMessageResponse" - markPrivateMessageResponse: - name: "Confirmation that the private message has been marked as *read*" - payload: - type: object - properties: - data: - type: object - properties: - private_message_view: - $ref: "#/components/schemas/private_message_view" - op: - type: string - pattern: "^MarkPrivateMessageAsRead$" - default: "MarkPrivateMessageAsRead" - markAllReadRequest: - name: Request to mark all user replies and mentions as read - description: |- - Marks all user replies and mentions as read. - - #### HTTP API - operation and endpoint. - - `POST /user/mark_all_as_read` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^MarkAllAsRead$" - default: "MarkAllAsRead" - data: - type: object - required: - - auth - properties: - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/markAllReadResponse" - markAllReadResponse: - name: "Confirmation that all replies and mentions have been marked as *read*" - payload: - type: object - properties: - data: - type: object - properties: - replies: - $ref: "#/components/schemas/replies" - op: - type: string - pattern: "^MarkAllAsRead$" - default: "MarkAllAsRead" - deleteAccountRequest: - name: Request to delete a user account - description: |- - Deletes user account and permanently deletes that user's posts and comments. - - #### HTTP API - operation and endpoint. - - `POST /user/delete_account` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^DeleteAccount$" - default: "DeleteAccount" - data: - type: object - required: - - password - - auth - properties: - password: - $ref: "#/components/schemas/password" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/deleteAccountResponse" - deleteAccountResponse: - name: Confirmation that the account has been deleted - payload: - type: object - properties: - data: - type: object - properties: - jwt: - $ref: "#/components/schemas/authStringSchema" - op: - type: string - pattern: "^DeleteAccount$" - default: "DeleteAccount" - addAdminRequest: - name: Request to grant admin privileges to a user - description: |- - Grant admin rights to the specified user. - - Only admins can do this - `auth` must be the authentication string for an existing admin user. - - #### HTTP API - operation and endpoint. - - `POST /admin/add` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^AddAdmin$" - default: "AddAdmin" - data: - type: object - required: - - person_id - - added - - auth - properties: - person_id: - $ref: "#/components/schemas/person_id" - added: - $ref: "#/components/schemas/added" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/addAdminResponse" - addAdminResponse: - name: Confirmation that the user has been given admin privileges - payload: - type: object - properties: - op: - type: string - pattern: "^AddAdmin$" - default: "AddAdmin" - data: - type: object - properties: - admins: - $ref: "#/components/schemas/person_view" - banPersonRequest: - name: Request to ban a user - description: |- - Ban user from posting, commenting or adding communities. Optionally, remove all comments, posts and communities at the same time. - - Only admin users can do this - `auth` must be the authentication string for an existing admin user. - - #### HTTP API - operation and endpoint. - - `POST /user/ban` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^BanPerson$" - default: "BanPerson" - data: - type: object - required: - - person_id - - ban - - auth - properties: - person_id: - $ref: "#/components/schemas/person_id" - ban: - $ref: "#/components/schemas/ban" - remove_data: - $ref: "#/components/schemas/remove_data" - reason: - $ref: "#/components/schemas/reason" - expires: - $ref: "#/components/schemas/expires" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/banPersonResponse" - banPersonResponse: - name: Confirmation that the user has been banned - payload: - type: object - properties: - op: - type: string - pattern: "^BanPerson$" - default: "BanPerson" - data: - $ref: "#/components/schemas/ban_view" - userJoinRequest: - name: Request to receive WebSocket messages for this user. - description: |- - Join to receive WebSocket replies, private messages and so on for this user. - - #### HTTP API - operation and endpoint. - - `POST /user/join` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^UserJoin$" - default: "UserJoin" - data: - type: object - required: - - auth - properties: - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/userJoinResponse" - userJoinResponse: - name: Verification that you will receive these WebSocket messages - payload: - type: object - properties: - op: - type: string - pattern: "^UserJoin$" - default: "UserJoin" - data: - type: object - properties: - joined: - $ref: "#/components/schemas/joined" - getReportCountRequest: - name: Request to return report count numbers - description: |- - - If `community` is specified, returns the *report count* (number of posts and comments) for that community - - If it is not specified, returns the report count for all communities the user moderates. - - User must either be a moderator of a community or an admin user. - - #### HTTP API - operation and endpoint. - - `GET /user/report_count` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetReportCount$" - default: "GetReportCount" - data: - type: object - required: - - auth - properties: - community: - $ref: "#/components/schemas/community_id" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/getReportCountResponse" - getReportCountResponse: - name: Report on the number of posts and comments - description: |- - Report on the number of posts and comments in one or all of the user's communities - payload: - type: object - properties: - op: - type: string - pattern: "^GetReportCount$" - default: "GetReportCount" - data: - type: object - properties: - comment_reports: - description: The number of comments in the community/communities - type: integer - format: int64 - example: 123 - community: - $ref: "#/components/schemas/community_id" - post_reports: - description: The number of posts in the community/communities - type: integer - format: int64 - example: 23 - searchRequest: - name: Request to find information on the Lemmy server - description: |- - Find comments, posts, communities users and links. - - #### HTTP API - operation and endpoint. - - `GET /search` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^Search$" - default: "Search" - data: - type: object - required: - - q - - type_ - - sort - properties: - q: - description: The text to search for on the Lemmy server - type: string - example: "lemmy" - type_: - $ref: "#/components/schemas/type_" - community_id: - $ref: "#/components/schemas/community_id" - community_name: - $ref: "#/components/schemas/community_name" - sort: - $ref: "#/components/schemas/sort" - page: - $ref: "#/components/schemas/page" - limit: - $ref: "#/components/schemas/limit" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/searchResponse" - searchResponse: - name: The search results - payload: - type: object - properties: - op: - type: string - pattern: "^Search$" - default: "Search" - data: - type: object - properties: - communities: - type: array - items: - properties: - community: - $ref: "#/components/schemas/community" - posts: - $ref: "#/components/schemas/replies" - type_: - $ref: "#/components/schemas/type_" - users: - type: array - items: - properties: - user: - $ref: "#/components/schemas/person_view" - comments: - $ref: "#/components/schemas/comments" - getModLogRequest: - name: Request the site's Modlog - description: |- - Details of the site's *Modlog*: sticky and lockwed posts and so on. - - #### HTTP API - operation and endpoint. - - `GET /modlog` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetModLog$" - default: "GetModLog" - data: - type: object - properties: - mod_person_id: - $ref: "#/components/schemas/person_id" - community_id: - $ref: "#/components/schemas/community_id" - page: - $ref: "#/components/schemas/page" - limit: - $ref: "#/components/schemas/limit" - x-response: - $ref: "#/components/messages/getModLogResponse" - getModLogResponse: - name: Modlog request results - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetModLog$" - default: "GetModLog" - data: - type: object - properties: - removed_posts: - type: array - locked_posts: - type: array - items: - properties: - mod_lock_post: - type: object - properties: - id: - description: Forthcoming... - type: number - example: 1 - mod_person_id: - $ref: "#/components/schemas/person_id" - post_id: - $ref: "#/components/schemas/post_id" - locked: - $ref: "#/components/schemas/locked" - when_: - description: "The date this post was locked (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))" - type: string - example: "2021-01-26T14:15:21.922339" - moderator: - $ref: "#/components/schemas/creator" - post: - $ref: "#/components/schemas/post" - community: - $ref: "#/components/schemas/community" - stickied_posts: - type: array - items: - properties: - mod_sticky_post: - type: object - properties: - id: - description: Forthcoming... - type: number - example: 1 - mod_person_id: - $ref: "#/components/schemas/person_id" - post_id: - $ref: "#/components/schemas/post_id" - stickied: - $ref: "#/components/schemas/stickied" - when_: - description: "The date this post was made sticky (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))" - type: string - example: "2021-01-26T14:16:03.899093" - moderator: - $ref: "#/components/schemas/creator" - post: - $ref: "#/components/schemas/post" - community: - $ref: "#/components/schemas/community" - removed_comments: - description: Forthcoming... - type: array - removed_communities: - description: Forthcoming... - type: array - banned_from_community: - description: Forthcoming... - type: array - banned: - description: Forthcoming... - type: array - added_to_community: - description: Forthcoming... - type: array - added: - description: Forthcoming... - type: array - createSiteRequest: - name: Create Lemmy site on a server - description: |- - Creates a site on a 'virgin' server (that is one that does't have Lemmy installed on it already) - - #### HTTP API - operation and endpoint. - - `POST /site` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreateSite$" - default: "CreateSite" - data: - $ref: "#/components/schemas/site_properties" - x-response: - $ref: "#/components/messages/createSiteResponse" - createSiteResponse: - name: Returns Lemmy site details - payload: - type: object - properties: - op: - type: string - pattern: "^CreateSite$" - default: "CreateSite" - data: - type: object - properties: - site_view: - $ref: "#/components/schemas/site_view" - editSiteRequest: - name: Request to edit Lemmy site details - description: |- - Change the name and, optionally other details of the Lemmy site. - - Only admin users can do this - `auth` must be the authentication string for an existing admin user. - - #### HTTP API - operation and endpoint. - - `PUT /site` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^EditSite$" - default: "EditSite" - data: - $ref: "#/components/schemas/site_properties" - x-response: - $ref: "#/components/messages/editSiteResponse" - editSiteResponse: - name: The response after a site edit - payload: - type: object - properties: - op: - type: string - pattern: "^EditSite$" - default: "EditSite" - data: - type: object - properties: - site_view: - $ref: "#/components/schemas/site_view" - getSiteRequest: - name: Request to return Lemmy site details - description: |- - Get the basic details of the Lemmy site, assoicated with the authentication string `auth` - - #### HTTP API - operation and endpoint. - - `GET /site` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetSite$" - default: "GetSite" - data: - type: object - required: - - auth - properties: - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/getSiteResponse" - getSiteResponse: - name: Returns Lemmy site details - payload: - type: object - properties: - op: - type: string - pattern: "^GetSite$" - default: "GetSite" - data: - type: object - properties: - site_view: - $ref: "#/components/schemas/site_view" - federated_instances: - $ref: "#/components/schemas/federated_instances" - my_user: - $ref: "#/components/schemas/my_user" - version: - $ref: "#/components/schemas/version" - banned: - $ref: "#/components/schemas/banned_list" - online: - $ref: "#/components/schemas/online" - admins: - type: array - items: - properties: - counts: - type: object - properties: - comment_score: - description: Forthcoming... - type: number - example: 8 - person_id: - $ref: "#/components/schemas/person_id" - post_score: - description: Forthcoming... - type: number - example: 13 - id: - description: Forthcoming... - type: number - example: 1 - post_count: - description: Forthcoming... - type: number - example: 10 - comment_count: - description: Forthcoming... - type: number - example: 9 - user: - $ref: "#/components/schemas/creator" - transferSiteRequest: - name: Request to transfer ownership of the site - description: |- - Transfer ownership of the site from one admin user (`auth`) to another (`person_id`) - - #### HTTP API - operation and endpoint. - - `POST /site/transfer` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^TransferSite$" - default: "TransferSite" - data: - type: object - required: - - person_id - - auth - properties: - person_id: - $ref: "#/components/schemas/person_id" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/transferSiteResponse" - transferSiteResponse: - name: Request to transfer ownership of the site - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^TransferSite$" - default: "TransferSite" - data: - type: object - properties: - site_view: - $ref: "#/components/schemas/site_view" - admins: - description: The list of administrators for this site - type: array - items: - properties: - person: - $ref: "#/components/schemas/person" - counts: - $ref: "#/components/schemas/counts" - banned: - $ref: "#/components/schemas/banned_list" - online: - $ref: "#/components/schemas/online" - version: - $ref: "#/components/schemas/version" - my_user: - $ref: "#/components/schemas/my_user" - federated_instances: - $ref: "#/components/schemas/federated_instances" - getSiteConfigRequest: - name: Request the configuration data for a Lemmy server - description: |- - Request the configuration data file for a Lemmy server - - #### HTTP API - operation and endpoint. - - `GET /site/config` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetSiteConfig$" - default: "GetSiteConfig" - data: - type: object - required: - - auth - properties: - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/getSiteConfigResponse" - getSiteConfigResponse: - name: Returns the configuration data for a Lemmy server - payload: - type: object - properties: - op: - type: string - pattern: "^GetSiteConfig$" - default: "GetSiteConfig" - data: - type: object - properties: - config_hjson: - $ref: "#/components/schemas/config_hjson" - saveSiteConfigRequest: - name: Request to send a configuration data file for a Lemmy server - description: |- - Request to send configuration data to a Lemmy server - - #### HTTP API - operation and endpoint. - - `PUT /site/config` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^SaveSiteConfig$" - default: "SaveSiteConfig" - data: - type: object - required: - - config_hjson - - auth - properties: - config_hjson: - $ref: "#/components/schemas/config_hjson" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/saveSiteConfigResponse" - saveSiteConfigResponse: - name: Returns the configuration data for a Lemmy server - payload: - type: object - properties: - op: - type: string - pattern: "^SaveSiteConfig$" - default: "^SaveSiteConfig$" - data: - type: object - properties: - config_hjson: - $ref: "#/components/schemas/config_hjson" - getCommunityRequest: - name: Request to get details of a commmunity - description: |- - Request to get details of a specified community - - #### HTTP API - operation and endpoint. - - `GET /community` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetCommunity$" - default: "GetCommunity" - data: - type: object - properties: - id: - $ref: "#/components/schemas/community_id" - name: - $ref: "#/components/schemas/community_name" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/getCommunityResponse" - getCommunityResponse: - name: Returns the details for a community - payload: - type: object - properties: - op: - type: string - pattern: "^GetCommunity$" - default: "GetCommunity" - data: - type: object - properties: - community_view: - $ref: "#/components/schemas/community_view" - online: - type: number - moderators: - $ref: "#/components/schemas/moderators" - createCommunityRequest: - name: Request to get details of a commmunity - description: |- - Request to create a new community - - #### HTTP API - operation and endpoint. - - `POST /community` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreateCommunity$" - default: "CreateCommunity" - data: - type: object - required: - - name - - title - - auth - properties: - name: - $ref: "#/components/schemas/community_name" - title: - $ref: "#/components/schemas/title" - description: - $ref: "#/components/schemas/description" - icon: - $ref: "#/components/schemas/icon" - banner: - $ref: "#/components/schemas/banner" - nsfw: - $ref: "#/components/schemas/nsfw" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/createCommunityResponse" - createCommunityResponse: - name: Response to the request to create a community - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreateCommunity$" - default: "CreateCommunity" - data: - type: object - properties: - community_view: - $ref: "#/components/schemas/community_view" - listCommunityRequest: - name: Request list of communities on the Lemmy server - description: |- - Request to list all communities on the Lemmy server - - #### HTTP API - operation and endpoint. - - `GET /community/list` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^ListCommunities$" - default: "ListCommunities" - data: - type: object - required: - - type_ - - sort - properties: - type_: - $ref: "#/components/schemas/type_" - sort: - $ref: "#/components/schemas/sort" - page: - $ref: "#/components/schemas/page" - limit: - $ref: "#/components/schemas/limit" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/listCommunityResponse" - listCommunityResponse: - name: Response to the request to list all communities - payload: - type: object - properties: - op: - type: string - pattern: "^ListCommunities$" - default: "ListCommunities" - data: - type: object - properties: - communities: - type: array - $ref: "#/components/schemas/community_view" - banFromCommunityRequest: - name: Request to ban a user from a specified community. - description: |- - Request to ban a person (`person_id`) from a specified community. - - #### HTTP API - operation and endpoint. - - `POST /community/ban_user` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^BanFromCommunity$" - default: "BanFromCommunity" - data: - type: object - required: - - community_id - - person_id - - ban - - auth - properties: - community_id: - $ref: "#/components/schemas/community_id" - person_id: - $ref: "#/components/schemas/person_id" - ban: - $ref: "#/components/schemas/ban" - remove_data: - $ref: "#/components/schemas/remove_data" - reason: - $ref: "#/components/schemas/reason" - expires: - $ref: "#/components/schemas/expires" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/banFromCommunityResponse" - banFromCommunityResponse: - name: Response to the request to ban a user from a community - payload: - type: object - properties: - op: - type: string - pattern: "^BanFromCommunity$" - default: "BanFromCommunity" - data: - $ref: "#/components/schemas/ban_view" - addModToCommunityRequest: - name: Request to add a moderator to a community - description: |- - Request to add another moderator (`person_id`) to the specified community (`community_id`). - - The account making the request (`auth`) must be either an admin or a moderator of that community. - - #### HTTP API - operation and endpoint. - - `POST /community/mod` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^AddModToCommunity$" - default: "AddModToCommunity" - data: - type: object - required: - - community_id - - person_id - - added - - auth - properties: - community_id: - $ref: "#/components/schemas/community_id" - person_id: - $ref: "#/components/schemas/person_id" - added: - $ref: "#/components/schemas/added" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/addModToCommunityResponse" - addModToCommunityResponse: - name: Confirmation that a moderator has been added to the community - payload: - type: object - properties: - op: - type: string - pattern: "^AddModToCommunity$" - default: "AddModToCommunity" - data: - type: object - properties: - moderators: - $ref: "#/components/schemas/moderators" - editCommunityRequest: - name: Request to edit a community - description: |- - Request to edit a community. - - The account making the request (`auth`) must be either an admin or a moderator of that community. - - #### HTTP API - operation and endpoint. - - `PUT /community` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^EditCommunity$" - default: "EditCommunity" - data: - type: object - required: - - community_id - - title - - auth - properties: - community_id: - $ref: "#/components/schemas/community_id" - title: - $ref: "#/components/schemas/title" - description: - $ref: "#/components/schemas/description" - icon: - $ref: "#/components/schemas/icon" - banner: - $ref: "#/components/schemas/banner" - nsfw: - $ref: "#/components/schemas/nsfw" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/editCommunityResponse" - editCommunityResponse: - name: Response to the request to edit a community - payload: - type: object - properties: - op: - type: string - pattern: "^EditCommunity$" - default: "EditCommunity" - data: - type: object - properties: - community_view: - $ref: "#/components/schemas/community_view" - deleteCommunityRequest: - name: Request to delete a community - description: |- - Request to delete a community. - - The account making the request (`auth`) must be the creator of that community. - - #### HTTP API - operation and endpoint. - - `POST /community/delete` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^DeleteCommunity$" - default: "DeleteCommunity" - data: - type: object - required: - - community_id - - deleted - - auth - properties: - community_id: - $ref: "#/components/schemas/community_id" - deleted: - $ref: "#/components/schemas/deleted" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/deleteCommunityResponse" - deleteCommunityResponse: - name: Response to the request to delete a community - payload: - type: object - properties: - op: - type: string - pattern: "^DeleteCommunity$" - default: "DeleteCommunity" - data: - type: object - properties: - community_view: - $ref: "#/components/schemas/community_view" - removeCommunityRequest: - name: Request to permanently delete a community - description: |- - Request to *permanently* delete a community. - - The account making the request (`auth`) must be and admin. - - #### HTTP API - operation and endpoint. - - `POST /community/remove` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^RemoveCommunity$" - default: "RemoveCommunity" - data: - type: object - required: - - community_id - - removed - - auth - properties: - community_id: - $ref: "#/components/schemas/community_id" - removed: - $ref: "#/components/schemas/removed" - reason: - $ref: "#/components/schemas/reason" - expires: - $ref: "#/components/schemas/expires" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/removeCommunityResponse" - removeCommunityResponse: - name: Response to the request to permanently delete a community - payload: - type: object - properties: - op: - type: string - pattern: "^RemoveCommunity$" - default: "RemoveCommunity" - data: - type: object - properties: - community_view: - $ref: "#/components/schemas/community_view" - followCommunityRequest: - name: Request to follow a community - description: |- - Request to follow (join) a community. - - #### HTTP API - operation and endpoint. - - `POST /community/follow` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^FollowCommunity$" - default: "FollowCommunity" - data: - type: object - required: - - community_id - - follow - - auth - properties: - community_id: - $ref: "#/components/schemas/community_id" - follow: - description: Forthcoming... - type: boolean - example: true - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/followCommunityResponse" - followCommunityResponse: - name: Response to the request to follow a community - payload: - type: object - properties: - op: - type: string - pattern: "^FollowCommunity$" - default: "FollowCommunity" - data: - type: object - properties: - community_view: - $ref: "#/components/schemas/community_view" - getFollowedCommunitiesRequest: - name: Request to list all followed communities - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetFollowedCommunities$" - default: "GetFollowedCommunities" - data: - type: object - required: - - auth - properties: - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/getFollowedCommunitiesResponse" - getFollowedCommunitiesResponse: - name: List of followed communities - description: |- - Request to list all followed (joined) communities. - - #### HTTP API - operation and endpoint. - - `GET /user/followed_communities` - payload: - type: object - properties: - op: - type: string - pattern: "^GetFollowedCommunities$" - default: "GetFollowedCommunities" - data: - type: object - properties: - communities: - type: array - items: - properties: - community: - $ref: "#/components/schemas/community" - follower: - $ref: "#/components/schemas/person" - transferCommunityRequest: - name: Request to transfer ownership of a community from one person to another - description: |- - Request to transfer ownership of a community from one person (`auth`) to another (`person_id`). - - The account making the request (`auth`) must be an admin user. - - #### HTTP API - operation and endpoint. - - `POST /community/transfer` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^TransferCommunity$" - default: "TransferCommunity" - data: - type: object - required: - - community_id - - person_id - - auth - properties: - community_id: - $ref: "#/components/schemas/community_id" - person_id: - $ref: "#/components/schemas/person_id" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/transferCommunityResponse" - transferCommunityResponse: - name: Response to a request to transfer community ownership - payload: - type: object - properties: - op: - type: string - pattern: "^TransferCommunity$" - default: "TransferCommunity" - data: - type: object - properties: - moderators: - $ref: "#/components/schemas/moderators" - online: - $ref: "#/components/schemas/online" - community_view: - $ref: "#/components/schemas/community_view" - communityJoinRequest: - name: Request to receive WebSocket messages for this community's posts - description: |- - Join to receive WebSocket messages for this community's posts. - - #### HTTP API - operation and endpoint. - - `POST /community/join` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CommunityJoin$" - default: "CommunityJoin" - data: - type: object - required: - - community_id - properties: - community_id: - $ref: "#/components/schemas/community_id" - x-response: - $ref: "#/components/messages/communityJoinResponse" - communityJoinResponse: - name: Verification that you will receive these WebSocket messages - payload: - type: object - properties: - op: - type: string - pattern: "^CommunityJoin$" - default: "CommunityJoin" - data: - properties: - joined: - $ref: "#/components/schemas/joined" - modJoinRequest: - name: Request to receive WebSocket messages for community moderator updates such as reports. - description: |- - Join to receive WebSocket messages for community moderator updates such as reports. - - #### HTTP API - operation and endpoint. - - `POST /community/mod/join` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^ModJoin$" - default: "ModJoin" - data: - type: object - required: - - community_id - properties: - community_id: - $ref: "#/components/schemas/community_id" - x-response: - $ref: "#/components/messages/modJoinResponse" - modJoinResponse: - name: Verification that you will receive these WebSocket messages - payload: - type: object - properties: - op: - type: string - pattern: "^ModJoin$" - default: "ModJoin" - data: - properties: - joined: - $ref: "#/components/schemas/joined" - createPostRequest: - name: Request to create a new post - description: |- - Create a new post. - - #### HTTP API - operation and endpoint. - - `POST /post` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreatePost$" - default: "CreatePost" - data: - type: object - required: - - name - - nsfw - - community_id - - auth - properties: - name: - $ref: "#/components/schemas/post_name" - url: - $ref: "#/components/schemas/url" - body: - $ref: "#/components/schemas/body" - nsfw: - $ref: "#/components/schemas/nsfw" - community_id: - $ref: "#/components/schemas/community_id" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/createPostResponse" - createPostResponse: - name: Response to request to create a new post - payload: - type: object - properties: - op: - type: string - pattern: "^CreatePost$" - default: "CreatePost" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - getPostRequest: - name: Request details of a post - description: |- - Request details of a post. - - #### HTTP API - operation and endpoint. - - `GET /post` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetPost$" - default: "GetPost" - data: - type: object - required: - - id - - auth - properties: - id: - $ref: "#/components/schemas/post_id" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/getPostResponse" - getPostResponse: - name: Details of a post - payload: - type: object - properties: - op: - type: string - pattern: "^GetPost$" - default: "GetPost" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - comments: - $ref: "#/components/schemas/comments" - community_view: - $ref: "#/components/schemas/community_view" - moderators: - $ref: "#/components/schemas/moderators" - getPostListRequest: - name: Request details of all posts - description: |- - Request details of all posts on the Lemmy server (or, optionally, in a community). - - - If specifying a community, use: - - `community_name` for a local community - - `community_id` for a federated community. - - #### HTTP API - operation and endpoint. - - `GET /post/list` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetPosts$" - default: "GetPosts" - data: - $ref: "#/components/schemas/list_request" - x-response: - $ref: "#/components/messages/getPostListResponse" - getPostListResponse: - name: Details of all posts - payload: - type: object - properties: - op: - type: string - pattern: "^GetPosts$" - default: "GetPosts" - data: - type: object - properties: - posts: - type: array - items: - properties: - post_view: - $ref: "#/components/schemas/post_view" - createPostLikeRequest: - name: Forthcoming... - description: |- - Forthcoming... - - #### HTTP API - operation and endpoint. - - `POST /post/like` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreatePostLike$" - default: "CreatePostLike" - data: - type: object - required: - - post_id - - score - - auth - properties: - post_id: - $ref: "#/components/schemas/post_id" - score: - $ref: "#/components/schemas/score_plus_minus" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/createPostLikeResponse" - createPostLikeResponse: - name: Response to request to create a new post - payload: - type: object - properties: - op: - type: string - pattern: "^CreatePostLike$" - default: "CreatePostLike" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - editPostRequest: - name: Request to edit an existing post - description: |- - Request to edit an existing post - - #### HTTP API - operation and endpoint. - - `PUT /post` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^EditPost$" - default: "EditPost" - data: - type: object - required: - - post_id - - name - - nsfw - - auth - properties: - post_id: - $ref: "#/components/schemas/post_id" - name: - $ref: "#/components/schemas/post_name" - url: - $ref: "#/components/schemas/url" - nsfw: - $ref: "#/components/schemas/nsfw" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/editPostResponse" - editPostResponse: - name: Response to request to edit a post - payload: - type: object - properties: - op: - type: string - pattern: "^EditPost$" - default: "EditPost" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - deletePostRequest: - name: Request that a post be deleted - description: |- - Request that a post is deleted. *Deleted posts can be restored later.* - - #### HTTP API - operation and endpoint. - - `POST /post/delete` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^DeletePost$" - default: "DeletePost" - data: - type: object - required: - - post_id - - deleted - - auth - properties: - post_id: - $ref: "#/components/schemas/post_id" - deleted: - $ref: "#/components/schemas/deleted" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/deletePostResponse" - deletePostResponse: - name: Response to post deletion request - payload: - type: object - properties: - op: - type: string - pattern: "^DeletePost$" - default: "DeletePost" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - removePostRequest: - name: Request that a post be removed - description: |- - Request that a post is *permanently* deleted. - - Only admin and moderator roles can do this. - - #### HTTP API - operation and endpoint. - - `POST /post/remove` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^RemovePost$" - default: "RemovePost" - data: - type: object - required: - - post_id - - removed - - auth - properties: - post_id: - $ref: "#/components/schemas/post_id" - removed: - $ref: "#/components/schemas/removed" - reason: - $ref: "#/components/schemas/reason" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/removePostResponse" - removePostResponse: - name: Response to post removal request - payload: - type: object - properties: - op: - type: string - pattern: "^RemovePost$" - default: "RemovePost" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - postLockRequest: - name: Request that a post be locked - description: |- - Request to lock a post. - - Only admin and moderator roles can do this. - - #### HTTP API - operation and endpoint. - - `POST /post/lock` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^LockPost$" - default: "LockPost" - data: - type: object - required: - - post_id - - locked - - auth - properties: - post_id: - $ref: "#/components/schemas/post_id" - locked: - $ref: "#/components/schemas/locked" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/postLockResponse" - postLockResponse: - name: Response to a 'post lock' request - payload: - type: object - properties: - op: - type: string - pattern: "^LockPost$" - default: "LockPost" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - stickyPostRequest: - name: Request that a post be made 'sticky' - description: |- - Request to make a post 'sticky' (sit at the top of a list of posts). - - Only admin and moderator roles can do this. - - #### HTTP API - operation and endpoint. - - `POST /post/sticky` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^StickyPost$" - default: "StickyPost" - data: - type: object - required: - - post_id - - stickied - - auth - properties: - post_id: - $ref: "#/components/schemas/post_id" - stickied: - $ref: "#/components/schemas/locked" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/stickyPostResponse" - stickyPostResponse: - name: Response to a request to make a post 'sticky' - payload: - type: object - properties: - op: - type: string - pattern: "^StickyPost$" - default: "StickyPost" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - savePostRequest: - name: Request to add a post to the user's list of saved posts - description: |- - Add a post to the user's list of saved posts. - - #### HTTP API - operation and endpoint. - - `POST /post/save` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^SavePost$" - default: "SavePost" - data: - type: object - required: - - post_id - - save - - auth - properties: - post_id: - $ref: "#/components/schemas/post_id" - save: - $ref: "#/components/schemas/saved" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/savePostResponse" - savePostResponse: - name: Response to a request to add a post to the list of saved posts - payload: - type: object - properties: - op: - type: string - pattern: "^SavePost$" - default: "SavePost" - data: - type: object - properties: - post_view: - $ref: "#/components/schemas/post_view" - postJoinRequest: - name: Request to receive WebSocket messages for this post's comments - description: |- - Join to receive WebSocket messages for this post's comments. - - #### HTTP API - operation and endpoint. - - `POST /post/join` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^PostJoin$" - default: "PostJoin" - data: - type: object - required: - - post_id - properties: - post_id: - $ref: "#/components/schemas/post_id" - x-response: - $ref: "#/components/messages/postJoinResponse" - postJoinResponse: - name: Verification that you will receive these WebSocket messages - payload: - type: object - properties: - op: - type: string - pattern: "^PostJoin$" - default: "PostJoin" - data: - type: object - properties: - joined: - $ref: "#/components/schemas/joined" - createPostReportRequest: - name: Request to raise a report against a post - description: |- - Raise a report (query) against a post. - - #### HTTP API - operation and endpoint. - - `POST /post/report` - payload: - type: object - properties: - op: - type: string - pattern: "^CreatePostReport$" - default: "CreatePostReport" - data: - type: object - required: - - post_id - - reason - - auth - properties: - post_id: - $ref: "#/components/schemas/post_id" - reason: - $ref: "#/components/schemas/reason" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/createPostReportResponse" - createPostReportResponse: - name: Response to raising a report against a post. - payload: - type: object - properties: - op: - type: string - pattern: "^CreatePostReport$" - default: "CreatePostReport" - data: - type: object - properties: - success: - $ref: "#/components/schemas/success" - resolvePostReportRequest: - name: Request to resolve a report against a post - description: |- - Resolve (clear) a report against a post. - - See `ListPostReports` for a list of all reported posts. - - #### HTTP API - operation and endpoint. - - `PUT /post/report/resolve` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^ResolvePostReport$" - default: "ResolvePostReport" - data: - $ref: "#/components/schemas/resolve_request" - x-response: - $ref: "#/components/messages/resolvePostReportResponse" - resolvePostReportResponse: - name: Response to request to resolve a report against a post - payload: - type: object - properties: - op: - type: string - pattern: "^ResolvePostReport$" - default: "ResolvePostReport" - data: - $ref: "#/components/schemas/resolve_response" - listPostReportsRequest: - name: Request to list all reports against posts - description: |- - - If `community` is supplied, returns reports for only that community - - Otherwise returns reports for all communities the user (`auth`) moderates. - - #### HTTP API - operation and endpoint. - - `GET /post/report/list` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^ListPostReports$" - default: "ListPostReports" - data: - $ref: "#/components/schemas/report_request" - x-response: - $ref: "#/components/messages/listPostReportsResponse" - listPostReportsResponse: - name: Response to a request to list all reports against posts - payload: - type: object - properties: - op: - type: string - pattern: "^ListPostReports$" - default: "ListPostReports" - data: - type: object - properties: - posts: - type: array - items: - properties: - resolver: - $ref: "#/components/schemas/resolver_id" - community: - $ref: "#/components/schemas/community" - creator: - $ref: "#/components/schemas/creator" - post_creator: - $ref: "#/components/schemas/creator" - post: - $ref: "#/components/schemas/post" - post_report: - type: object - properties: - resolver_id: - $ref: "#/components/schemas/resolver_id" - original_post_body: - $ref: "#/components/schemas/body" - resolved: - $ref: "#/components/schemas/resolved" - published: - $ref: "#/components/schemas/published" - creator_id: - $ref: "#/components/schemas/creator_id" - reason: - $ref: "#/components/schemas/reason" - post_id: - $ref: "#/components/schemas/post_id" - id: - $ref: "#/components/schemas/report_id" - original_post_name: - $ref: "#/components/schemas/post_name" - updated: - description: Forthcoming... - type: string - nullable: true - original_post_url: - description: Forthcoming... - type: string - nullable: true - createCommentRequest: - name: Request to create a comment on a post - description: |- - Add a comment to a post. - - #### HTTP API - operation and endpoint. - - `POST /comment` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreateComment$" - default: "CreateComment" - data: - $ref: "#/components/schemas/comment_request" - x-response: - $ref: "#/components/messages/createCommentResponse" - createCommentResponse: - name: Response to a request to create a comment - payload: - type: object - properties: - op: - type: string - pattern: "^CreateComment$" - default: "CreateComment" - data: - type: object - properties: - comment_view: - $ref: "#/components/schemas/comment_view" - editCommentRequest: - name: Request to edit a comment - description: |- - Edit a comment (only the comment's creator can do this). - - #### HTTP API - operation and endpoint. - - `PUT /comment` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^EditComment$" - default: "EditComment" - data: - $ref: "#/components/schemas/comment_request" - x-response: - $ref: "#/components/messages/editCommentResponse" - editCommentResponse: - name: Response to a request to edit a comment - payload: - type: object - properties: - op: - type: string - pattern: "^EditComment$" - default: "EditComment" - data: - type: object - properties: - comment_view: - $ref: "#/components/schemas/comment_view" - deleteCommentRequest: - name: Request to delete a comment - description: |- - Delete a comment (only the comment's creator can do this). - - #### HTTP API - operation and endpoint. - - `POST /comment/delete` - payload: - type: object - properties: - op: - type: string - pattern: "^DeleteComment$" - default: "DeleteComment" - data: - type: object - required: - - comment_id - - deleted - - auth - properties: - comment_id: - $ref: "#/components/schemas/comment_id" - deleted: - $ref: "#/components/schemas/deleted" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/deleteCommentResponse" - deleteCommentResponse: - name: Response to a request to delete a comment - payload: - type: object - properties: - op: - type: string - pattern: "^DeleteComment$" - default: "DeleteComment" - data: - type: object - properties: - comment_view: - $ref: "#/components/schemas/comment_view" - removeCommentRequest: - name: Request to permanently delete a comment - description: |- - Request that a comment is *permanently* deleted. - - Only admin and moderator roles can do this. - - #### HTTP API - operation and endpoint. - - `POST /comment/remove` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^RemoveComment$" - default: "RemoveComment" - data: - type: object - required: - - comment_id - - removed - - auth - properties: - comment_id: - $ref: "#/components/schemas/comment_id" - removed: - $ref: "#/components/schemas/removed" - reason: - $ref: "#/components/schemas/reason" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/removeCommentResponse" - removeCommentResponse: - name: Response to a request to permanently delete a comment - payload: - type: object - properties: - op: - type: string - pattern: "^RemoveComment$" - default: "RemoveComment" - data: - type: object - properties: - comment_view: - $ref: "#/components/schemas/comment_view" - getCommentsRequest: - name: Request to retrieve all comments - description: |- - Request details of all comments on the Lemmy server (or, optionally, in a community). - - - If specifying a community, use: - - `community_name` for a local community - - `community_id` for a federated community. - - #### HTTP API - operation and endpoint. - - `GET /comment/list` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^GetComments$" - default: "GetComments" - data: - $ref: "#/components/schemas/list_request" - x-response: - $ref: "#/components/messages/getCommentsResponse" - getCommentsResponse: - name: Response to a request to retrieve all comments - description: |- - Mark a specified comment as read. Only the recipient of a comment can do this. - - #### HTTP API - operation and endpoint. - - `POST /comment/mark_as_read` - payload: - type: object - properties: - op: - type: string - pattern: "^GetComments$" - default: "GetComments" - data: - type: object - properties: - comments: - description: "The list of comments" - type: array - items: - properties: - comment_view: - $ref: "#/components/schemas/comment_view" - markCommentRequest: - name: Request to mark a commment as read - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^MarkCommentAsRead$" - default: "MarkCommentAsRead" - data: - type: object - required: - - comment_id - - read - - auth - properties: - comment_id: - $ref: "#/components/schemas/comment_id" - read: - $ref: "#/components/schemas/read" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/markCommentResponse" - markCommentResponse: - name: Response to a request to mark a comment as read - payload: - type: object - properties: - op: - type: string - pattern: "^MarkCommentAsRead$" - default: "MarkCommentAsRead" - data: - type: object - properties: - comment_view: - $ref: "#/components/schemas/comment_view" - saveCommentRequest: - name: Request to save a commment - description: |- - Add comment to the user's list of saved comments. - - #### HTTP API - operation and endpoint. - - `PUT /comment/save` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^SaveComment$" - default: "SaveComment" - data: - type: object - required: - - comment_id - - save - - auth - properties: - comment_id: - $ref: "#/components/schemas/comment_id" - save: - $ref: "#/components/schemas/saved" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/saveCommentResponse" - saveCommentResponse: - name: Response to a request to save a comment - payload: - type: object - properties: - op: - type: string - pattern: "^SaveComment$" - default: "SaveComment" - data: - type: object - properties: - comment_view: - $ref: "#/components/schemas/comment_view" - createCommentLikeRequest: - name: Forthcoming... - description: |- - Forthcoming... - - #### HTTP API - operation and endpoint. - - `POST /comment/like` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreateCommentLike$" - default: "CreateCommentLike" - data: - type: object - required: - - comment_id - - score - - auth - properties: - comment_id: - $ref: "#/components/schemas/comment_id" - score: - $ref: "#/components/schemas/score_plus_minus" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/createCommentLikeResponse" - createCommentLikeResponse: - name: Response to a request to save a comment - payload: - type: object - properties: - op: - type: string - pattern: "^CreateCommentLike$" - default: "CreateCommentLike" - data: - type: object - properties: - comment_view: - $ref: "#/components/schemas/comment_view" - createCommentReportRequest: - name: Request to report a comment - description: |- - Raise a report (query) against a comment. - - #### HTTP API - operation and endpoint. - - `POST /comment/report` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^CreateCommentReport$" - default: "CreateCommentReport" - data: - type: object - required: - - comment_id - - reason - - auth - properties: - comment_id: - $ref: "#/components/schemas/comment_id" - reason: - $ref: "#/components/schemas/reason" - auth: - $ref: "#/components/schemas/authStringSchema" - x-response: - $ref: "#/components/messages/createCommentReportResponse" - createCommentReportResponse: - name: Response to raising a report against a comment - payload: - type: object - properties: - op: - type: string - pattern: "^CreateCommentReport$" - default: "CreateCommentReport" - data: - type: object - properties: - success: - $ref: "#/components/schemas/success" - resolveCommentReportRequest: - name: Request to clear a report against a comment - description: |- - Resolve (clear) a report against a comment. - - See `ListCommentReports` for a list of all reported comments. - - #### HTTP API - operation and endpoint. - - `PUT /comment/report/resolve` - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^ResolveCommentReport$" - default: "ResolveCommentReport" - data: - $ref: "#/components/schemas/resolve_request" - x-response: - $ref: "#/components/messages/resolveCommentReportResponse" - resolveCommentReportResponse: - name: Response to a request to clear a report against a comment - payload: - type: object - properties: - op: - type: string - pattern: "^ResolveCommentReport$" - default: "ResolveCommentReport" - data: - $ref: "#/components/schemas/resolve_response" - listCommentReportsRequest: - name: Request to list all reports against comments - payload: - type: object - required: - - op - - data - properties: - op: - type: string - pattern: "^ListCommentReports$" - default: "ListCommentReports" - data: - $ref: "#/components/schemas/report_request" - x-response: - $ref: "#/components/messages/listCommentReportsResponse" - listCommentReportsResponse: - name: Response to a request to list all comment reports - description: |- - - If `community` is supplied, returns reports for only that community - - Otherwise returns reports for all communities the user (`auth`) moderates. - - #### HTTP API - operation and endpoint. - - `GET /comment/report/list` - payload: - type: object - properties: - op: - type: string - pattern: "^ListCommemtReports$" - default: "ListCommentReports" - data: - type: object - properties: - comments: - type: array - items: - properties: - comment_report: - type: object - properties: - resolver_id: - $ref: "#/components/schemas/resolver_id" - published: - $ref: "#/components/schemas/published" - comment_id: - $ref: "#/components/schemas/comment_id" - creator_id: - $ref: "#/components/schemas/creator_id" - reason: - $ref: "#/components/schemas/reason" - original_comment_text: - $ref: "#/components/schemas/body" - id: - description: Forthcoming... - type: number - example: 2 - resolved: - $ref: "#/components/schemas/resolved" - updated: - description: Forthcoming... - type: string - nullable: true - resolver: - $ref: "#/components/schemas/resolver_id" - community: - $ref: "#/components/schemas/community" - creator: - $ref: "#/components/schemas/creator" - post: - $ref: "#/components/schemas/post" - comment_creator: - $ref: "#/components/schemas/creator" - comment: - $ref: "#/components/schemas/comment" - schemas: - "actor_id": - type: string - description: |- - URL for the user/community profile/home page, using the format: - - **User profile** - Site URL/u/username - - **Community home page** - Site URL/c/commmunity name - example: 'https:\/\/enterprise.lemmy.ml\/u\/griddle' - "added": - description: Forthcoming... - type: boolean - example: true - "admin": - type: boolean - description: "Set to *true* if this person is the Lemmy server administrator" - example: false - "ap_id": - type: string - description: The URL of this post, comment or message - example: 'https:\/\/enterprise.lemmy.ml\/post\/223' - "authSchema": - type: object - description: "The authentication string returned by **Login** and **Register**" - properties: - jwt: - $ref: "#/components/schemas/authStringSchema" - "authStringSchema": - type: string - description: Authentication string for a user - example: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NzcsImlzcyI6ImVudGVycHJpc2UubGVtbXkubWwifQ.8UbfUE1v4mfH88s2diX2h6_5bzLHSa_5wIlpOZmHbMQ" - "avatar": - type: string - nullable: true - description: Forthcoming... - "ban": - description: |- - - If set to *true*, ban the user - - If set to *false*, do not ban them (use in combination with `remove_data` to restore comments and posts that were previously removed as part of a banning process) - type: boolean - example: true - "ban_view": - type: object - properties: - person_view: - $ref: "#/components/schemas/person_view" - banned: - $ref: "#/components/schemas/banned" - "banned": - type: boolean - description: "Set to *true* if this account (username) has been banned from posting on the Lemmy server" - example: false - "banned_list": - description: Forthcoming... - type: array - "banner": - type: string - nullable: true - description: Forthcoming... - "bio": - type: string - nullable: true - description: "A self-written description of the user" - example: "I am a watercolour artist. I am happy to share the paintings I am working on, give and receive critiques, and post resources such as tutorials." - "body": - description: "The body text of the post or comment" - type: string - nullable: true - "comment": - type: object - properties: - creator_id: - $ref: "#/components/schemas/creator_id" - content: - $ref: "#/components/schemas/content" - id: - $ref: "#/components/schemas/comment_id" - read: - description: Is *true* if the author of the original post has read the comment - type: boolean - example: true - parent_id: - description: Forthcoming... - type: number - nullable: true - removed: - $ref: "#/components/schemas/removed" - post_id: - $ref: "#/components/schemas/post_id" - local: - $ref: "#/components/schemas/local" - updated: - description: Forthcoming... - type: string - nullable: true - ap_id: - $ref: "#/components/schemas/ap_id" - deleted: - $ref: "#/components/schemas/deleted" - published: - $ref: "#/components/schemas/published" - "comment_count": - description: Total number of comments on the site or community - type: number - example: 231 - "comment_id": - description: The number (id) of a comment - type: number - example: 374 - "comment_request": - type: object - required: - - content - - post_id - - auth - properties: - content: - $ref: "#/components/schemas/content" - post_id: - $ref: "#/components/schemas/post_id" - form_id: - $ref: "#/components/schemas/form_id" - auth: - $ref: "#/components/schemas/authStringSchema" - "comment_view": - type: object - properties: - community: - $ref: "#/components/schemas/community" - recipient: - $ref: "#/components/schemas/recipient" - counts: - $ref: "#/components/schemas/counts" - post: - ref: "#/components/schemas/post" - creator_banned_from_community: - $ref: "#/components/schemas/creator_banned_from_community" - saved: - $ref: "#/components/schemas/saved" - subscribed: - $ref: "#/components/schemas/subscribed" - my_vote: - $ref: "#/components/schemas/my_vote" - comment: - $ref: "#/components/schemas/comment" - creator: - $ref: "#/components/schemas/creator" - recipient_ids: - type: array - items: - recipient: - $ref: "#/components/schemas/recipient" - form_id: - $ref: "#/components/schemas/authStringSchema" - "comments": - type: array - items: - properties: - comment: - $ref: "#/components/schemas/comment" - recipient: - $ref: "#/components/schemas/recipient" - post: - $ref: "#/components/schemas/post" - creator: - $ref: "#/components/schemas/person" - creator_banned_from_community: - $ref: "#/components/schemas/creator_banned_from_community" - subscribed: - $ref: "#/components/schemas/subscribed" - my_vote: - $ref: "#/components/schemas/my_vote" - counts: - $ref: "#/components/schemas/counts" - saved: - $ref: "#/components/schemas/saved" - community: - $ref: "#/components/schemas/community" - "community": - type: object - properties: - updated: - type: string - description: Forthcoming... - example: "2020-11-14T13:35:10.270578" - name: - $ref: "#/components/schemas/community_name" - icon: - $ref: "#/components/schemas/icon" - nsfw: - $ref: "#/components/schemas/nsfw" - deleted: - $ref: "#/components/schemas/deleted" - removed: - $ref: "#/components/schemas/removed" - published: - $ref: "#/components/schemas/published" - creator_id: - $ref: "#/components/schemas/creator_id" - id: - $ref: "#/components/schemas/community_id" - description: - $ref: "#/components/schemas/description" - actor_id: - $ref: "#/components/schemas/actor_id" - local: - $ref: "#/components/schemas/local" - title: - $ref: "#/components/schemas/title" - banner: - $ref: "#/components/schemas/banner" - "community_id": - type: integer - format: int32 # Or int64? It's stated as both in different parts of the API docs - description: "The id number for a community. The main/frontpage `community_id` is 0" - example: 2 - "community_name": - description: The name of a community - type: string - Example: "main" - "community_view": - type: object - properties: - subscribed: - $ref: "#/components/schemas/subscribed" - counts: - type: object - properties: - published: - $ref: "#/components/schemas/published" - community_id: - $ref: "#/components/schemas/community_id" - users_active_day: - $ref: "#/components/schemas/users_active_day" - id: - description: "Forthcoming..." - type: number - example: 1 - users_active_half_year: - $ref: "#/components/schemas/users_active_half_year" - comments: - $ref: "#/components/schemas/comment_count" - users_active_month: - $ref: "#/components/schemas/users_active_month" - subscribers: - description: The total number of community subscribers (members) - type: number - example: 41 - posts: - $ref: "#/components/schemas/posts" - users_active_week: - $ref: "#/components/schemas/users_active_week" - community: - $ref: "#/components/schemas/community" - creator: - $ref: "#/components/schemas/creator" - "config_hjson": - description: The configuration data for a Lemmy server (in JSON format) - type: string - example: |- - {\n # for more info about the config, check out the documentation\n # https://lemmy.ml/docs/administration_configuration.html\n\n setup: {\n # username for the admin user\n admin_username: \"lemmy\"\n # password for the admin user\n admin_password: \"lemmy\"\n # name of the site (can be changed later)\n site_name: \"lemmy-test\"\n }\n\n # the domain name of your instance (eg \"lemmy.ml\")\n hostname: \"localhost\"\n # address where lemmy should listen for incoming requests\n bind: \"0.0.0.0\"\n # port where lemmy should listen for incoming requests\n port: 8536\n # json web token for authorization between server and client\n jwt_secret: \"changeme\"\n # settings related to the postgresql database\n database: {\n # name of the postgres database for lemmy\n database: \"lemmy\"\n # username to connect to postgres\n user: \"lemmy\"\n # password to connect to postgres\n password: \"password\"\n # host where postgres is running\n host: \"postgres\"\n }\n# # optional: email sending configuration\n# email: {\n# # hostname and port of the smtp server\n# smtp_server: \"aspmx.l.google.com\"\n# # login name for smtp server\n# smtp_login: \"lemmmy@glemmy.com\"\n# # password to login to the smtp server\n# smtp_password: \"lemom\"\n# # address to send emails from, eg \"noreply@your-instance.com\"\n# smtp_from_address: \"noreply@lemmy.com\"\n# # whether or not smtp connections should use tls\n# use_tls: true\n# }\n}\n\n" - "content": - description: The text of the comment or message - type: string - example: '> Communities\n\n\n![](https:\/\/enterprise.lemmy.ml\/pictrs\/image\/KZ7NoyJgxx.jpg)' - "counts": - type: object - properties: - downvotes: - $ref: "#/components/schemas/downvotes" - published: - $ref: "#/components/schemas/published" - score: - $ref: "#/components/schemas/score" - comment_id: - type: number - description: Forthcoming... - id: - type: number - description: Forthcoming... - upvotes: - $ref: "#/components/schemas/upvotes" - "creator": - type: object - properties: - preferred_username: - $ref: "#/components/schemas/preferred_username" - banned: - $ref: "#/components/schemas/banned" - matrix_user_id: - $ref: "#/components/schemas/matrix_user_id" - updated: - $ref: "#/components/schemas/user_updated" - id: - $ref: "#/components/schemas/person_id" - shared_inbox_url: - description: Forthcoming... - type: string - example: 'https:\/\/enterprise.lemmy.ml\/inbox' - published: - description: Forthcoming... - type: string - example: "2020-09-14T14:54:53.080949" - actor_id: - $ref: "#/components/schemas/actor_id" - deleted: - $ref: "#/components/schemas/deleted" - banner: - $ref: "#/components/schemas/banner" - name: - $ref: "#/components/schemas/user_name" - avatar: - $ref: "#/components/schemas/avatar" - inbox_url: - description: |- - The link to the inbox of the site's creator - type: string - example: 'https:\/\/enterprise.lemmy.ml\/u\/nutomic\/inbox' - local: - $ref: "#/components/schemas/local" - bio: - $ref: "#/components/schemas/bio" - admin: - $ref: "#/components/schemas/admin" - "creator_banned_from_community": - type: boolean - description: Forthcoming... - example: false - "creator_id": - type: number - description: The id of the person who created this site, community, post, comment or message - example: 20 - "default_listing_type": - type: integer - format: int16 - minimum: 0 - maximum: 2 - description: |- - What type of listing to display by default: - - 0. All - 1. Subscribed - 2. Community (Local) - example: 0 - "default_sort_type": - type: integer - format: int16 - minimum: 0 - maximum: 7 - description: |- - This user's default sort type for listings: - - 0. Active - 1. Hot - 2. New - 3. TopDay - 4. TopWeek - 5. TopMonth - 6. TopYear - 7. TopAll - example: 1 - "deleted": - type: boolean - description: |- - Set to *true* if this community, post, comment, message or user account should be, or has been, deleted. Unlike *removal*, deletion is not permanent. Deleted items *can* be recovered. - - You can undo a delete yourself by setting this value to *false*. - example: false - "description": - type: string - description: |- - The information in the community's **Sidebar** area - example: "All about the Rolex/Björn Borg collaboration" - "downvotes": - type: number - description: Forthcoming... - example: 0 - "email": - description: |- - The user's email address - type: string - format: email - example: "jane.doe@humanity.org" - "enable_downvotes": - description: Set to *true* if downvoting is allowed on this site - type: boolean - example: false - "expires": - description: Forthcoming... - type: integer - format: int64 - "federated_instances": - type: object - properties: - blocked: - $ref: "#/components/schemas/instance" - allowed: - $ref: "#/components/schemas/instance" - linked: - $ref: "#/components/schemas/instance" - "form_id": - description: Forthcoming... (so you know which message came back) - type: string - nullable: true - example: "IMPORTANT" - "icon": - type: string - nullable: true - description: Forthcoming... - "instance": - type: array - items: - properties: - # COMMENT 'instance' is a guess at the name for this field. Unable to test federation - instance: - description: Forthcoming... - type: string - example: "ds9.lemmy.ml" - "joined": - description: "*true* if join request was successful" - type: boolean - example: true - "lang": - description: |- - The language to display Lemmy's interface in - type: string - example: "Browser Default" - "local": - type: boolean - description: |- - - *true* if this is a local user - - *false* if this is a federated user - "local_user_id": - description: |- - That user's local id - type: integer - format: int32 - example: 78 - "local_user_settings": - type: object - properties: - id: - $ref: "#/components/schemas/local_user_id" - person_id: - $ref: "#/components/schemas/person_id" - email: - $ref: "#/components/schemas/email" - admin: - $ref: "#/components/schemas/admin" - show_nsfw: - $ref: "#/components/schemas/show_nsfw" - theme: - $ref: "#/components/schemas/theme" - default_sort_type: - $ref: "#/components/schemas/default_sort_type" - default_listing_type: - $ref: "#/components/schemas/default_listing_type" - lang: - $ref: "#/components/schemas/lang" - show_avatars: - $ref: "#/components/schemas/show_avatars" - send_notifications_to_email: - $ref: "#/components/schemas/send_notifications_to_email" - matrix_user_id: - $ref: "#/components/schemas/matrix_user_id" - "my_user": - type: object - properties: - local_user: - $ref: "#/components/schemas/local_user_settings" - counts: - $ref: "#/components/schemas/counts" - person: - $ref: "#/components/schemas/person" - "locked": - description: |- - Set to *true* if the post is already, or should be, locked. A locked post cannot receive comments. - - You can undo a lock yourself by setting this value to *false*. - type: boolean - example: true - "limit": - type: integer - format: int64 - minimum: 1 - description: Forthcoming... - example: 20 - "list_request": - type: object - required: - - type_ - - sort - - saved_only - properties: - type_: - $ref: "#/components/schemas/type_listing" - sort: - $ref: "#/components/schemas/sort" - page: - $ref: "#/components/schemas/page" - limit: - $ref: "#/components/schemas/limit" - community_id: - $ref: "#/components/schemas/community_id" - community_name: - $ref: "#/components/schemas/community_name" - saved_only: - $ref: "#/components/schemas/saved_only" - auth: - $ref: "#/components/schemas/authStringSchema" - "matrix_user_id": - type: string - nullable: true - description: "The [Matrix](https://matrix.org/docs/projects/try-matrix-now/) id of the user" - "mentions": - description: "Forthcoming..." - type: object - required: - - person_mention_id - - read - - auth - properties: - person_mention_id: - description: Forthcoming... - type: integer - format: int32 - read: - $ref: "#/components/schemas/read" - auth: - $ref: "#/components/schemas/authStringSchema" - "moderators": - description: The list of moderators for each community - type: array - items: - properties: - moderator: - $ref: "#/components/schemas/person" - community: - $ref: "#/components/schemas/community" - "my_vote": - type: number - description: Forthcoming... - example: 1 - "nsfw": - type: boolean - description: "Set to *true* if this commmunity, post or comment is deemed [NSFW](https://en.wikipedia.org/wiki/Not_safe_for_work) (hence invisible to users who have the NSFW option selected in their profile. If not provided, defaults to false." - example: false - "online": - description: Number of registered users who are currently on the system - type: number - example: 1 - "open_registration": - description: Forthcoming... - type: boolean - example: true - "page": - type: integer - format: int64 - minimum: 1 - description: Forthcoming... - example: 1 - "password": - type: string - description: "*Exact* password" - example: "lemmy" - "post": - type: object - properties: - updated: - type: string - description: Forthcoming... - nullable: true - community_id: - $ref: "#/components/schemas/community_id" - embed_title: - type: string - nullable: true - description: "If the **url** for an associated post was provided, this will be the ** data from that URL" - example: "Covid: Novichok scientist invents vaccine | The Independent" - nsfw: - $ref: "#/components/schemas/nsfw" - deleted: - $ref: "#/components/schemas/deleted" - removed: - $ref: "#/components/schemas/removed" - locked: - $ref: "#/components/schemas/locked" - url: - $ref: "#/components/schemas/url" - published: - $ref: "#/components/schemas/published" - stickied: - type: boolean - description: "Set to *true* if this post has been made *sticky* (that is, it is presented at the top of a list of posts)" - example: false - body: - $ref: "#/components/schemas/body" - embed_html: - type: string - nullable: true - description: Forthcoming... - creator_id: - $ref: "#/components/schemas/creator_id" - thumbnail_url: - type: string - nullable: true - description: Forthcoming... - id: - $ref: "#/components/schemas/post_id" - ap_id: - $ref: "#/components/schemas/ap_id" - embed_description: - type: string - nullable: true - description: 'If the **url** for an associated post was provided, this will be the *meta name="description"* data from that URL' - example: "Scientist Leonid Rink has a murky past and is well-known for selling nerve agents to criminals" - local: - $ref: "#/components/schemas/local" - name: - $ref: "#/components/schemas/post_name" - "post_id": - type: number - description: The post number - example: 223 - "post_name": - type: string - description: "The title of the post" - example: "Pot. Kettle. Black." - "post_view": - type: object - properties: - community: - $ref: "#/components/schemas/community" - read: - $ref: "#/components/schemas/read" - counts: - type: object - properties: - score: - $ref: "#/components/schemas/score" - comments: - description: The number of comments on this post - type: number - example: 0 - published: - $ref: "#/components/schemas/published" - post_id: - $ref: "#/components/schemas/post_id" - upvotes: - $ref: "#/components/schemas/upvotes" - id: - description: Forthcoming... - type: number - example: 117 - newest_comment_time: - description: "The date and time of the most recent comment (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))" - type: string - example: "2021-02-16T11:22:27.615111" - newest_comment_time_necro: - description: Forthcoming... - type: string - example: "2021-02-23T13:26:54.956691" - stickied: - $ref: "#/components/schemas/stickied" - downvotes: - $ref: "#/components/schemas/downvotes" - post: - $ref: "#/components/schemas/post" - creator_banned_from_community: - type: boolean - saved: - type: boolean - subscribed: - type: boolean - my_vote: - type: number - creator: - $ref: "#/components/schemas/creator" - "posts": - description: Total number of posts on the site or community - type: number - example: 115 - "preferred_username": - type: string - description: "If set, this is the name shown instead of, or as well as, *username* in some contexts (also known as **Display name**)" - example: "Queen of the Griddle" - "private_message": - type: object - properties: - read: - $ref: "#/components/schemas/unread_only" - creator_id: - $ref: "#/components/schemas/creator_id" - id: - description: Forthcoming... - type: number - example: 16 - ap_id: - $ref: "#/components/schemas/ap_id" - published: - $ref: "#/components/schemas/published" - recipient_id: - $ref: "#/components/schemas/recipient" - local: - $ref: "#/components/schemas/local" - content: - $ref: "#/components/schemas/content" - deleted: - $ref: "#/components/schemas/deleted" - updated: - description: Forthcoming... - type: string - nullable: true - "private_message_id": - description: The id of the private message - type: integer - format: int32 - example: 17 - "private_message_view": - type: object - properties: - private_message: - $ref: "#/components/schemas/private_message" - creator: - $ref: "#/components/schemas/person" - recipient: - $ref: "#/components/schemas/person" - "published": - type: string - description: "The date this site, community, post, comment or message was created (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))" - example: "2021-01-21T16:42:39.897148" - "read": - type: boolean - description: |- - Set to *true* if this post, comment or message has been read (or should be marked as being read). - - If you have marked something as being read, you can undo this yourself by setting this value to *false*. - example: false - "reason": - description: Give a reason for the action. Why was this post deleted? Why was this user banned? - type: string - example: "Breach of terms and conditions" - "recipient": - description: Forthcoming... - type: number - example: 77 - "remove_data": - description: |- - - If set to *true*, also delete that user's comments and posts - - If set *false*, *restore* that user's comments and posts - type: boolean - example: false - "removed": - type: boolean - description: |- - Set to *true* if this community, post, comment or message should be or has been *permanently* deleted. - - An admin or moderator can undo a removal by setting this value to *false*. - example: false - "replies": - type: array - items: - properties: - my_vote: - $ref: "#/components/schemas/my_vote" - post: - $ref: "#/components/schemas/post" - creator: - $ref: "#/components/schemas/person" - creator_banned_from_community: - $ref: "#/components/schemas/creator_banned_from_community" - community: - $ref: "#/components/schemas/community" - saved: - $ref: "#/components/schemas/saved" - counts: - $ref: "#/components/schemas/counts" - recipient: - $ref: "#/components/schemas/recipient" - comment: - $ref: "#/components/schemas/comment" - subscribed: - $ref: "#/components/schemas/subscribed" - "repliesMentionsRequest": - type: object - required: - - sort - - unread_only - - auth - properties: - sort: - $ref: "#/components/schemas/sort" - page: - $ref: "#/components/schemas/page" - limit: - $ref: "#/components/schemas/limit" - unread_only: - $ref: "#/components/schemas/unread_only" - auth: - $ref: "#/components/schemas/authStringSchema" - "report_id": - description: The number (id) of a raised report - type: integer - format: int32 - example: 1 - "report_request": - type: object - properties: - page: - $ref: "#/components/schemas/page" - limit: - $ref: "#/components/schemas/limit" - community: - $ref: "#/components/schemas/community_id" - auth: - $ref: "#/components/schemas/authStringSchema" - "resolve_request": - type: object - required: - - report_id - - resolved - - auth - properties: - report_id: - $ref: "#/components/schemas/report_id" - resolved: - $ref: "#/components/schemas/resolved" - auth: - $ref: "#/components/schemas/authStringSchema" - "resolve_response": - type: object - properties: - report_id: - $ref: "#/components/schemas/report_id" - resolved: - $ref: "#/components/schemas/resolved" - "resolved": - description: Forthcoming... - type: boolean - example: true - "resolver_id": - description: The person_id of the person who resolved the report - type: number - nullable: true - "saved": - description: |- - *true* if this post or comment has been or should be saved on the user's profile - type: boolean - example: false - "saved_only": - description: |- - If *true*, only fetches the saved items. - type: boolean - default: false - example: false - "score": - type: number - description: Forthcoming... - example: 1 - "score_plus_minus": - description: Forthcoming... - type: integer - format: int16 - example: 1 - minimum: -1 - maximum: 1 - "send_notifications_to_email": - description: "If set to *true*, the user will receive email notifications for any username mentions, post and comment replies" - type: boolean - example: false - "show_avatars": - description: |- - If set to *true*, displays other user's avatar images by their username in listings - type: boolean - example: true - "show_nsfw": - type: boolean - description: |- - Set to *true* if you wish [NSFW](https://en.wikipedia.org/wiki/Not_safe_for_work) content to be viewable by this person/site - example: false - default: false - "site": - type: object - required: - - show_nsfw - properties: - description: - $ref: "#/components/schemas/site_description" - banner: - $ref: "#/components/schemas/banner" - enable_downvotes: - $ref: "#/components/schemas/enable_downvotes" - published: - $ref: "#/components/schemas/published" - enable_nsfw: - $ref: "#/components/schemas/show_nsfw" - id: - type: number - name: - $ref: "#/components/schemas/site_name" - updated: - description: Forthcoming... - type: string - nullable: true - example: "2020-09-14T14:58:23.598513" - icon: - $ref: "#/components/schemas/icon" - open_registration: - $ref: "#/components/schemas/open_registration" - creator_id: - $ref: "#/components/schemas/creator_id" - "site_counts": - type: object - properties: - users_active_week: - $ref: "#/components/schemas/users_active_week" - posts: - $ref: "#/components/schemas/posts" - comments: - $ref: "#/components/schemas/comment_count" - communities: - description: Total number of communities on the site - type: number - example: 14 - site_id: - desciption: Forthcoming... - type: number - example: 1 - users: - description: Total number of registered users on the site - type: number - example: 51 - id: - desciption: Forthcoming... - type: number - example: 1 - users_active_day: - $ref: "#/components/schemas/users_active_day" - users_active_month: - $ref: "#/components/schemas/users_active_month" - users_active_half_year: - $ref: "#/components/schemas/users_active_half_year" - "site_description": - description: |- - A brief overview of the site's purpose - type: string - example: "Federation test instance" - "site_name": - description: The name of this site - type: string - example: "Enterprise" - "site_properties": - type: object - required: - - name - - auth - - enable_downvotes - - open_registration - - enable_nsfw - properties: - name: - $ref: "#/components/schemas/site_name" - enable_downvotes: - $ref: "#/components/schemas/enable_downvotes" - open_registration: - $ref: "#/components/schemas/open_registration" - enable_nsfw: - $ref: "#/components/schemas/show_nsfw" - description: - $ref: "#/components/schemas/site_description" - icon: - $ref: "#/components/schemas/icon" - banner: - $ref: "#/components/schemas/banner" - auth: - $ref: "#/components/schemas/authStringSchema" - "site_view": - type: object - properties: - counts: - $ref: "#/components/schemas/counts" - site: - $ref: "#/components/schemas/site" - creator: - $ref: "#/components/schemas/creator" - "sort": - type: string - description: |- - Sort the response from the server according to one of the following criteria: - - *Active* - the hottest posts/communities, depending on votes, and newest comment publish date - - *Hot* - the hottest posts/communities, depending on votes and publish date - - *New* - the newest posts/communities - - *TopDay* - the most upvoted posts/communities of the current day - - *TopWeek* - the most upvoted posts/communities of the current week - - *TopMonth* - the most upvoted posts/communities of the current month - - *TopYear* - the most upvoted posts/communities of the current year - - *TopAll* - the most upvoted posts/communities on the server. - enum: - - Active - - Hot - - New - - TopDay - - TopWeek - - TopMonth - - TopYear - - TopAll - "stickied": - description: |- - Set to *true* if the post is 'sticky' - type: boolean - example: true - "subscribed": - type: boolean - description: Forthcoming... - example: true - "success": - description: "*true* if report request was successful" - type: boolean - example: true - "theme": - description: "The theme style to use" - type: string - example: "darkly" - enum: - - Browser Default - - cyborg - - darkly - - i386 - - journal - - litely - - litera - - materia - - minty - - sketchy - - solar - - united - - vaporwave - - vaporwave-dark - "title": - type: string - description: |- - The title (**Display name**) of this community. - - If set, this is the name shown instead of, or as well as, *name* in some contexts - example: "BorgWatch" - "type_": - description: What is the scope of the search? - type: string - example: "All" - enum: - - All - - Comments - - Posts - - Communities - - Users - - Url - "type_listing": - description: Choose from one of three types of listing - type: string - example: "All" - enum: - - All - - Subscribed - - Community - "unread_only": - description: If *true*, only fetch unread comments or messages - type: boolean - example: false - "upvotes": - type: number - description: Forthcoming... - example: 1 - "url": - type: string - description: The link to the URL associated with the post - nullable: true - example: 'https:\/\/www.independent.co.uk\/news\/world\/europe\/covid-vaccine-novichok-russia-navalny-b1792778.html' - "person": - type: object - decription: The federated person. - properties: - updated: - $ref: "#/components/schemas/user_updated" - bio: - $ref: "#/components/schemas/bio" - admin: - $ref: "#/components/schemas/admin" - preferred_username: - $ref: "#/components/schemas/preferred_username" - deleted: - $ref: "#/components/schemas/deleted" - banned: - $ref: "#/components/schemas/banned" - published: - $ref: "#/components/schemas/published" - matrix_user_id: - $ref: "#/components/schemas/matrix_user_id" - avatar: - $ref: "#/components/schemas/avatar" - id: - $ref: "#/components/schemas/person_id" - actor_id: - $ref: "#/components/schemas/actor_id" - local: - $ref: "#/components/schemas/local" - banner: - $ref: "#/components/schemas/banner" - name: - $ref: "#/components/schemas/user_name" - inbox_url: - $ref: "#/components/schemas/inbox_url" - shared_inbox_url: - $ref: "#/components/schemas/shared_inbox_url" - "inbox_url": - description: |- - That user's inbox url - type: string - example: "http://domain.com/u/fisher/inbox" - "shared_inbox_url": - description: |- - That instance's shared inbox url - type: string - example: "http://domain.com/inbox" - "person_id": - description: |- - That user's id number - type: integer - format: int32 - example: 77 - "user_name": - type: string - description: The user's username - example: "griddle" - "user_updated": - type: string - description: "The last time this user profile was updated (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))" - example: "2021-01-21T16:26:16.285610" - "person_view": - type: object - properties: - counts: - $ref: "#/components/schemas/counts" - person: - $ref: "#/components/schemas/person" - "username_or_email": - type: string - description: "Username or registered email" - example: "lemmy" - "users_active_day": - desciption: Number of 'active' users in the previous 24 hours - type: number - example: 2 - "users_active_half_year": - desciption: Number of 'active' users in the previous six months - type: number - example: 10 - "users_active_month": - desciption: Number of 'active' users in the previous 28 days - type: number - example: 10 - "users_active_week": - description: Number of 'active' users in the previous seven days - type: number - example: 5 - "version": - description: The version of the software running the Lemmy server - type: string - example: "0.9.6" diff --git a/update_submodules.sh b/update_submodules.sh index 7dd4794..9dca948 100755 --- a/update_submodules.sh +++ b/update_submodules.sh @@ -21,6 +21,7 @@ git add joinlemmy-translations git add lemmy-translations git add lemmy-instance-stats git add lemmy-docs +git add lemmy-js-client git commit -m"Updating submodules" git push