This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
gnu-social-v2-archive-activ.../openapi.json

674 lines
26 KiB
JSON
Executable File

{
"openapi": "3.0.0",
"info": {
"description": "## Retrieving objects\nThe HTTP GET method may be dereferenced against an object's `id` property to retrieve the activity.\nThe plugin supports HTTP content negotiation as defined in [RFC7231](https://tools.ietf.org/html/rfc7231) in every endpoint suffixed with .json .\nThe plugin always presents ActivityStreams object representation in response to every request.\nThe client MUST specify an `Accept` header with the `application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"` media type in order to retrieve the activity.\n\n## Selecting ranges\n\nFor most `GET` operations that return arrays, the query parameters `max_id` and `since_id` can be used to specify the range of IDs to return.\nAPI methods that return collections of items can return a `Link` header containing URLs for the `next` and `prev` pages.\nSee the [Link header RFC](https://tools.ietf.org/html/rfc5988) for more information.\n\n## Pretty output\n\nFor most operations if the `pretty` parameter is set a formated output will be generated (useful for learning about the API or debuging purposes).\n\n## Errors\n\nIf the request you make doesn't go through, the plugin will usually respond with an [Error](#error).\n\n___\n\n> **Note:** Some attributes in the payload can have ``null`` value and are marked as _nullable_ on the tables below. Attributes that are not nullable are guaranteed to return a valid value.",
"version": "1.0.0",
"title": "ActivityPub plugin for GNU Social",
"contact": {
"email": "diogo@fc.up.pt"
},
"license": {
"name": "AGPLv3",
"url": "https://git.gnu.io/gnu/GS-ActivityPub-plugin/blob/COPYING"
}
},
"externalDocs": {
"description": "For a complete definition of the objects and activities available click here.",
"url": "https://git.gnu.io/gnu/GS-ActivityPub-plugin/doc/objects_and_activities.md"
},
"paths": {
"/{nickname}": {
"get": {
"summary": "Fetching an Actor's profile",
"description": "Returns a Profile.",
"responses": {
"200": {
"description": "Returns a Profile",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Profile"
}
}
}
}
}
},
"parameters": [
{
"name": "Content-Type",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/json"
}
},
{
"name": "Accept",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/activity+json"
}
}
]
}
},
"/{nickname}/inbox.json": {
"post": {
"summary": "Actor Inbox endpoint",
"description": "Allows the publish of activities with attention to a given Actor",
"parameters": [
{
"name": "Content-Type",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/json"
}
},
{
"name": "Accept",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/activity+json"
}
}
],
"responses": {
"200": {
"description": "Returns the same activity it received"
}
}
}
},
"/{nickname}/liked.json": {
"get": {
"summary": "Liked Collection",
"description": "Getting an Actor's Liked Collection",
"parameters": [
{
"name": "Content-Type",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/json"
}
},
{
"name": "Accept",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/activity+json"
}
},
{
"name": "max_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
},
"description": "Get a list of likes with ID less than this value",
"format": "int32"
},
{
"name": "since_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
},
"description": "Get a list of likes with ID greater than this value"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": "40"
},
"description": "Maximum number of likes to get (Max 80)"
}
],
"responses": {
"200": {
"description": "Returns Actor's Liked Collection",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Liked Collection"
}
}
}
}
}
}
}
},
"/{nickname}/followers.json": {
"get": {
"summary": "Followers Collection",
"description": "Getting an Actor's Followers Collection",
"parameters": [
{
"name": "Content-Type",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/json"
}
},
{
"name": "Accept",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/activity+json"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": "1"
},
"description": "Page index (starts in 1)"
}
],
"responses": {
"200": {
"description": "Returns Actor's Followers Collection",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Follow Collection"
}
}
}
}
}
}
}
},
"/{nickname}/following.json": {
"get": {
"summary": "Following Collection",
"description": "Getting an Actor's Following Collection",
"parameters": [
{
"name": "Content-Type",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/json"
}
},
{
"name": "Accept",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/activity+json"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": "1"
},
"description": "Page index (starts in 1)"
}
],
"responses": {
"200": {
"description": "Returns Actor's Following Collection",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Follow Collection"
}
}
}
}
}
}
}
},
"/inbox.json": {
"post": {
"summary": "SharedInbox endpoint",
"description": "Allows the publish of activities",
"parameters": [
{
"name": "Content-Type",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/json"
}
},
{
"name": "Accept",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "application/activity+json"
}
}
],
"responses": {
"200": {
"description": "Returns the same activity it received"
}
}
}
}
},
"components": {
"schemas": {
"Note": {
"type": "object",
"required": [
"@context",
"id",
"type",
"actor",
"published",
"to",
"cc",
"content",
"url",
"reply_to",
"is_local",
"conversation",
"attachment",
"tag"
],
"properties": {
"@context": {
"type": "string",
"value": "https://www.w3.org/ns/activitystreams",
"default": "https://www.w3.org/ns/activitystreams"
},
"id": {
"description": "Notice's URI",
"type": "string"
},
"type": {
"description": "Notice's Type",
"type": "string"
},
"actor": {
"description": "URL of Notice owner profile page (can be remote)",
"type": "string"
},
"published": {
"description": "DateTime of notice creation",
"type": "string",
"format": "date-time"
},
"to": {
"description": "To",
"type": "string"
},
"cc": {
"description": "CC",
"type": "string"
},
"content": {
"description": "Notice's Content in plain text",
"type": "string"
},
"url": {
"description": "Notice's URL",
"type": "string"
},
"reply_to": {
"description": "ID of the notice this replies",
"type": "string"
},
"is_local": {
"description": "true if local, false otherwise",
"type": "string"
},
"conversation": {
"description": "Notice conversation id",
"type": "integer",
"format": "int32"
},
"attachment": {
"description": "Array of Attachments",
"type": "Array of Attachments"
},
"tag": {
"description": "Array of Tags",
"type": "Array of Tags"
}
},
"xml": {
"name": "Note"
}
},
"Image": {
"type": "object",
"required": [
"@context",
"type",
"width",
"height",
"url"
],
"properties": {
"@context": {
"type": "string",
"value": "https://www.w3.org/ns/activitystreams",
"default": "https://www.w3.org/ns/activitystreams"
},
"type": {
"description": "Image",
"type": "string"
},
"width": {
"description": "Image's width",
"type": "integer",
"format": "int32"
},
"height": {
"description": "Image's height",
"type": "integer",
"format": "int32"
},
"url": {
"description": "Image URL",
"type": "string"
}
},
"xml": {
"name": "Image"
}
},
"Attachment": {
"type": "object",
"required": [
"@context",
"id",
"mimetype",
"url",
"title"
],
"properties": {
"@context": {
"type": "string",
"value": "https://www.w3.org/ns/activitystreams",
"default": "https://www.w3.org/ns/activitystreams"
},
"id": {
"type": "integer",
"format": "int32",
"description": "Id of the Attachment"
},
"mimetype": {
"type": "string",
"description": "Mimetype"
},
"url": {
"type": "string",
"description": "URL of locally hosted version of the attachment"
},
"meta": {
"type": "array",
"description": "Attachment metadata:\n\nImages may contain *width*, *height*, *size*.",
"items": {}
},
"title": {
"type": "string",
"description": "Attachment title"
}
},
"xml": {
"name": "Attachment"
}
},
"Profile": {
"type": "object",
"required": [
"@context",
"id",
"nickname",
"is_local",
"inbox",
"outbox",
"display_name",
"followers",
"followers_count",
"following",
"following_count",
"liked",
"liked_count",
"summary",
"url",
"avatar"
],
"properties": {
"@context": {
"type": "string",
"value": "https://www.w3.org/ns/activitystreams",
"default": "https://www.w3.org/ns/activitystreams"
},
"id": {
"type": "string",
"description": "Local URI"
},
"type": "Person",
"nickname": {
"type": "string",
"description": "Actor's nickname"
},
"is_local": {
"type": "boolean",
"description": "True if local, false otherwise"
},
"inbox": {
"type": "string",
"description": "URL to Actor's inbox endpoint"
},
"sharedInbox": {
"type": "string",
"description": "URL to Actor's sharedInbox endpoint"
},
"outbox": {
"type": "string",
"description": "URL to Actor's outbox endpoint"
},
"display_name": {
"type": "string",
"description": "The Actor's display name"
},
"followers": {
"type": "string",
"description": "URL to Actor's followers collection"
},
"followers_count": {
"type": "integer",
"format": "int32",
"description": "Total number of followers"
},
"following": {
"type": "string",
"description": "URL to Actor's following collection"
},
"following_count": {
"type": "integer",
"format": "int32",
"description": "Total number of following"
},
"liked": {
"type": "string",
"description": "URL to Actor's Liked collection"
},
"liked_count": {
"type": "integer",
"format": "int32",
"description": "Total number of favorites"
},
"summary": {
"type": "string",
"description": "Actor's biography"
},
"url": {
"type": "string",
"description": "URL of the Actor's profile page (can be remote)"
},
"avatar": {
"type": "Image",
"description": "Actor's avatar"
}
},
"xml": {
"name": "Profile"
}
},
"Tag": {
"type": "object",
"required": [
"@context",
"name",
"url"
],
"properties": {
"@context": {
"type": "string",
"value": "https://www.w3.org/ns/activitystreams",
"default": "https://www.w3.org/ns/activitystreams"
},
"name": {
"type": "string",
"description": "The hashtag, not including the preceding #"
},
"url": {
"type": "string",
"description": "The URL of the hashtag"
}
},
"xml": {
"name": "Tag"
}
},
"Liked Collection": {
"type": "object",
"required": [
"@context",
"id",
"type",
"totalItems",
"orderedItems"
],
"properties": {
"@context": {
"type": "string",
"value": "https://www.w3.org/ns/activitystreams",
"default": "https://www.w3.org/ns/activitystreams"
},
"id": {
"type": "string",
"description": "URL for current endpoint"
},
"type": {
"type": "string",
"description": "OrderedCollection"
},
"totalItems": {
"type": "integer",
"format": "int32",
"description": "Total number of favorites"
},
"orderedItems": {
"type": "Array of Notices",
"description": "Array of Notices"
}
}
},
"Follow Collection": {
"type": "object",
"required": [
"@context",
"id",
"type",
"totalItems",
"orderedItems"
],
"properties": {
"@context": {
"type": "string",
"value": "https://www.w3.org/ns/activitystreams",
"default": "https://www.w3.org/ns/activitystreams"
},
"id": {
"type": "string",
"description": "URL for current endpoint"
},
"type": {
"type": "string",
"description": "OrderedCollection"
},
"totalItems": {
"type": "integer",
"format": "int32",
"description": "Total number of items"
},
"prev": {
"type": "string",
"description": "Previous page URL"
},
"next": {
"type": "string",
"description": "Next page URL"
},
"orderedItems": {
"type": "Array of string",
"description": "The URL of each profile"
}
}
}
},
"links": {},
"callbacks": {}
},
"security": [],
"servers": []
}