account: %Schema{allOf: [Account], description: "The account that authored this status"},
application: %Schema{
description: "The application used to post this status",
type: :object,
nullable: true,
properties: %{
name: %Schema{type: :string},
website: %Schema{type: :string, format: :uri}
}
},
bookmarked: %Schema{type: :boolean, description: "Have you bookmarked this status?"},
card: %Schema{
type: :object,
nullable: true,
description: "Preview card for links included within status content",
# Yeah, it's effectivelly all required in MastoAPI so far
required: [
:url,
:title,
:description,
:type,
:author_name,
:author_url,
:provider_name,
:provider_url,
:html,
:width,
:height,
:image,
:embed_url,
:blurhash
],
properties: %{
url: %Schema{type: :string, format: :uri, description: "Location of linked resource"},
title: %Schema{type: :string, description: "Title of linked resource"},
description: %Schema{type: :string, description: "Description of preview"},
type: %Schema{
type: :string,
enum: ["link", "photo", "video", "rich"],
description: "The type of the preview card"
},
author_name: %Schema{type: :string, description: "author of the original resource"},
author_url: %Schema{
type: :string,
format: :uri,
description: "link to the author of the original resource"
},
provider_name: %Schema{
type: :string,
description: "The provider of the original resource"
},
provider_url: %Schema{
type: :string,
format: :uri,
description: "A link to the provider of the original resource"
},
html: %Schema{
type: :string,
format: :html,
description: "HTML to be used for generating the preview card"
},
width: %Schema{type: :integer, description: "Width of preview, in pixels"},
height: %Schema{type: :integer, description: "Height of preview, in pixels"},
image: %Schema{
type: :string,
nullable: true,
format: :uri,
description: "Preview thumbnail"
},
embed_url: %Schema{
type: :string,
format: :uri,
description: "Used for photo embeds, instead of custom `html`"
},
blurhash: %Schema{
type: :string,
nullable: true,
description:
"A hash computed by the (BlurHash algorithm)[https://github.com/woltapp/blurhash], for generating colorful preview thumbnails when media has not been downloaded yet."
},
image_description: %Schema{
type: :string,
description: "Alternate text that describes what is in the thumbnail"
- },
- title: %Schema{type: :string, description: "Title of linked resource"},
- description: %Schema{type: :string, description: "Description of preview"}
+ }
}
},
content: %Schema{type: :string, format: :html, description: "HTML-encoded status content"},
text: %Schema{
type: :string,
description: "Original unformatted content in plain text",
nullable: true
},
created_at: %Schema{
type: :string,
format: "date-time",
description: "The date when this status was created"
},
edited_at: %Schema{
type: :string,
format: "date-time",
nullable: true,
description: "The date when this status was last edited"
},
emojis: %Schema{
type: :array,
items: Emoji,
description: "Custom emoji to be used when rendering status content"
},
favourited: %Schema{type: :boolean, description: "Have you favourited this status?"},
favourites_count: %Schema{
type: :integer,
description: "How many favourites this status has received"
},
id: FlakeID,
in_reply_to_account_id: %Schema{
allOf: [FlakeID],
nullable: true,
description: "ID of the account being replied to"
},
in_reply_to_id: %Schema{
allOf: [FlakeID],
nullable: true,
description: "ID of the status being replied"
},
language: %Schema{
type: :string,
nullable: true,
description: "Primary language of this status"
},
media_attachments: %Schema{
type: :array,
items: Attachment,
description: "Media that is attached to this status"
},
mentions: %Schema{
type: :array,
description: "Mentions of users within the status content",
items: %Schema{
type: :object,
properties: %{
id: %Schema{allOf: [FlakeID], description: "The account id of the mentioned user"},
acct: %Schema{
type: :string,
description:
"The webfinger acct: URI of the mentioned user. Equivalent to `username` for local users, or `username@domain` for remote users."
},
username: %Schema{type: :string, description: "The username of the mentioned user"},
url: %Schema{
type: :string,
format: :uri,
description: "The location of the mentioned user's profile"
}
}
}
},
muted: %Schema{
type: :boolean,
description: "Have you muted notifications for this status's conversation?"
},
pinned: %Schema{
type: :boolean,
description: "Have you pinned this status? Only appears if the status is pinnable."
},
pleroma: %Schema{
type: :object,
properties: %{
content: %Schema{
type: :object,
additionalProperties: %Schema{
type: :string,
description: "Alternate representation in the MIME type specified",
"A map consisting of alternate representations of the `content` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`"
},
context: %Schema{
type: :string,
description: "The thread identifier the status is associated with"
},
conversation_id: %Schema{
type: :integer,
deprecated: true,
description:
"The ID of the AP context the status is associated with (if any); deprecated, please use `context` instead"
},
direct_conversation_id: %Schema{
type: :integer,
nullable: true,
description:
"The ID of the Mastodon direct message conversation the status is associated with (if any)"
},
emoji_reactions: %Schema{
type: :array,
description:
"A list with emoji / reaction maps. Contains no information about the reacting users, for that use the /statuses/:id/reactions endpoint.",
items: %Schema{
type: :object,
properties: %{
name: %Schema{type: :string},
count: %Schema{type: :integer},
me: %Schema{type: :boolean}
}
}
},
expires_at: %Schema{
type: :string,
format: "date-time",
nullable: true,
description:
"A datetime (ISO 8601) that states when the post will expire (be deleted automatically), or empty if the post won't expire"
},
in_reply_to_account_acct: %Schema{
type: :string,
nullable: true,
description: "The `acct` property of User entity for replied user (if any)"
"A map consisting of alternate representations of the `spoiler_text` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`."
},
thread_muted: %Schema{
type: :boolean,
description: "`true` if the thread the post belongs to is muted"
},
parent_visible: %Schema{
type: :boolean,
description: "`true` if the parent post is visible to the user"
},
pinned_at: %Schema{
type: :string,
format: "date-time",
nullable: true,
description:
"A datetime (ISO 8601) that states when the post was pinned or `null` if the post is not pinned"
}
}
},
poll: %Schema{allOf: [Poll], nullable: true, description: "The poll attached to the status"},