1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Web.ApiSpec.Schemas.Status do
6 alias OpenApiSpex.Schema
7 alias Pleroma.Web.ApiSpec.Schemas.Account
8 alias Pleroma.Web.ApiSpec.Schemas.AccountEmoji
9 alias Pleroma.Web.ApiSpec.Schemas.FlakeID
10 alias Pleroma.Web.ApiSpec.Schemas.Poll
11 alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope
17 description: "Response schema for a status",
24 name: %Schema{type: :string},
25 website: %Schema{type: :string, nullable: true, format: :uri}
28 bookmarked: %Schema{type: :boolean},
33 type: %Schema{type: :string, enum: ["link", "photo", "video", "rich"]},
34 provider_name: %Schema{type: :string, nullable: true},
35 provider_url: %Schema{type: :string, format: :uri},
36 url: %Schema{type: :string, format: :uri},
37 image: %Schema{type: :string, nullable: true, format: :uri},
38 title: %Schema{type: :string},
39 description: %Schema{type: :string}
42 content: %Schema{type: :string, format: :html},
43 created_at: %Schema{type: :string, format: "date-time"},
44 emojis: %Schema{type: :array, items: AccountEmoji},
45 favourited: %Schema{type: :boolean},
46 favourites_count: %Schema{type: :integer},
48 in_reply_to_account_id: %Schema{type: :string, nullable: true},
49 in_reply_to_id: %Schema{type: :string, nullable: true},
50 language: %Schema{type: :string, nullable: true},
51 media_attachments: %Schema{
56 id: %Schema{type: :string},
57 url: %Schema{type: :string, format: :uri},
58 remote_url: %Schema{type: :string, format: :uri},
59 preview_url: %Schema{type: :string, format: :uri},
60 text_url: %Schema{type: :string, format: :uri},
61 description: %Schema{type: :string},
62 type: %Schema{type: :string, enum: ["image", "video", "audio", "unknown"]},
65 properties: %{mime_type: %Schema{type: :string}}
75 id: %Schema{type: :string},
76 acct: %Schema{type: :string},
77 username: %Schema{type: :string},
78 url: %Schema{type: :string, format: :uri}
82 muted: %Schema{type: :boolean},
83 pinned: %Schema{type: :boolean},
87 content: %Schema{type: :object, additionalProperties: %Schema{type: :string}},
88 conversation_id: %Schema{type: :integer},
89 direct_conversation_id: %Schema{type: :string, nullable: true},
90 emoji_reactions: %Schema{
95 name: %Schema{type: :string},
96 count: %Schema{type: :integer},
97 me: %Schema{type: :boolean}
101 expires_at: %Schema{type: :string, format: "date-time", nullable: true},
102 in_reply_to_account_acct: %Schema{type: :string, nullable: true},
103 local: %Schema{type: :boolean},
104 spoiler_text: %Schema{type: :object, additionalProperties: %Schema{type: :string}},
105 thread_muted: %Schema{type: :boolean}
108 poll: %Schema{type: Poll, nullable: true},
110 allOf: [%OpenApiSpex.Reference{"$ref": "#/components/schemas/Status"}],
113 reblogged: %Schema{type: :boolean},
114 reblogs_count: %Schema{type: :integer},
115 replies_count: %Schema{type: :integer},
116 sensitive: %Schema{type: :boolean},
117 spoiler_text: %Schema{type: :string},
123 name: %Schema{type: :string},
124 url: %Schema{type: :string, format: :uri}
128 uri: %Schema{type: :string, format: :uri},
129 url: %Schema{type: :string, nullable: true, format: :uri},
130 visibility: VisibilityScope
135 "avatar" => "http://localhost:4001/images/avi.png",
136 "avatar_static" => "http://localhost:4001/images/avi.png",
138 "created_at" => "2020-04-07T19:48:51.000Z",
139 "display_name" => "Test テスト User 6",
142 "followers_count" => 1,
143 "following_count" => 0,
144 "header" => "http://localhost:4001/images/banner.png",
145 "header_static" => "http://localhost:4001/images/banner.png",
146 "id" => "9toJCsKN7SmSf3aj5c",
148 "note" => "Tester Number 6",
150 "background_image" => nil,
151 "confirmation_pending" => false,
152 "hide_favorites" => true,
153 "hide_followers" => false,
154 "hide_followers_count" => false,
155 "hide_follows" => false,
156 "hide_follows_count" => false,
158 "is_moderator" => false,
160 "blocked_by" => false,
162 "domain_blocking" => false,
164 "followed_by" => false,
166 "id" => "9toJCsKN7SmSf3aj5c",
168 "muting_notifications" => false,
169 "requested" => false,
170 "showing_reblogs" => true,
171 "subscribing" => false
173 "skip_thread_containment" => false,
178 "note" => "Tester Number 6",
179 "pleroma" => %{"actor_type" => "Person", "discoverable" => false},
182 "statuses_count" => 1,
183 "url" => "http://localhost:4001/users/nick6",
184 "username" => "nick6"
186 "application" => %{"name" => "Web", "website" => nil},
187 "bookmarked" => false,
189 "content" => "foobar",
190 "created_at" => "2020-04-07T19:48:51.000Z",
192 "favourited" => false,
193 "favourites_count" => 0,
194 "id" => "9toJCu5YZW7O7gfvH6",
195 "in_reply_to_account_id" => nil,
196 "in_reply_to_id" => nil,
198 "media_attachments" => [],
203 "content" => %{"text/plain" => "foobar"},
204 "conversation_id" => 345_972,
205 "direct_conversation_id" => nil,
206 "emoji_reactions" => [],
208 "in_reply_to_account_acct" => nil,
210 "spoiler_text" => %{"text/plain" => ""},
211 "thread_muted" => false
215 "reblogged" => false,
216 "reblogs_count" => 0,
217 "replies_count" => 0,
218 "sensitive" => false,
219 "spoiler_text" => "",
221 "uri" => "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190",
222 "url" => "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6",
223 "visibility" => "private"