Sharkey/src/server/api/openapi/schemas.ts

270 lines
5.8 KiB
TypeScript
Raw Normal View History

2019-02-23 21:08:08 +02:00
export const schemas = {
Error: {
type: 'object',
properties: {
error: {
type: 'object',
description: 'An error object.',
properties: {
code: {
type: 'string',
2019-02-23 21:27:09 +02:00
description: 'An error code. Unique within the endpoint.',
2019-02-23 21:08:08 +02:00
},
message: {
type: 'string',
description: 'An error message.',
},
id: {
type: 'string',
format: 'uuid',
description: 'An error ID. This ID is static.',
}
},
required: ['code', 'id', 'message']
},
},
required: ['error']
},
User: {
type: 'object',
properties: {
id: {
type: 'string',
format: 'id',
2019-02-24 12:27:32 +02:00
description: 'The unique identifier for this User.',
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
2019-02-23 21:08:08 +02:00
},
username: {
type: 'string',
description: 'The screen name, handle, or alias that this user identifies themselves with.',
example: 'ai'
},
name: {
type: 'string',
nullable: true,
description: 'The name of the user, as theyve defined it.',
example: '藍'
},
host: {
type: 'string',
nullable: true,
example: 'misskey.example.com'
},
description: {
type: 'string',
nullable: true,
description: 'The user-defined UTF-8 string describing their account.',
example: 'Hi masters, I am Ai!'
},
createdAt: {
type: 'string',
format: 'date-time',
description: 'The date that the user account was created on Misskey.'
},
followersCount: {
type: 'number',
description: 'The number of followers this account currently has.'
},
followingCount: {
type: 'number',
description: 'The number of users this account is following.'
},
notesCount: {
type: 'number',
description: 'The number of Notes (including renotes) issued by the user.'
},
isBot: {
type: 'boolean',
description: 'Whether this account is a bot.'
},
isCat: {
type: 'boolean',
description: 'Whether this account is a cat.'
},
isAdmin: {
type: 'boolean',
description: 'Whether this account is the admin.'
},
isVerified: {
type: 'boolean'
},
isLocked: {
type: 'boolean'
},
},
required: ['id', 'name', 'username', 'createdAt']
},
Note: {
type: 'object',
properties: {
id: {
type: 'string',
format: 'id',
2019-02-24 12:27:32 +02:00
description: 'The unique identifier for this Note.',
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
2019-02-23 21:08:08 +02:00
},
createdAt: {
type: 'string',
format: 'date-time',
description: 'The date that the Note was created on Misskey.'
},
text: {
type: 'string'
},
cw: {
type: 'string'
},
userId: {
type: 'string',
format: 'id',
},
user: {
$ref: '#/components/schemas/User'
},
replyId: {
type: 'string',
format: 'id',
2019-02-24 12:27:32 +02:00
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
2019-02-23 21:08:08 +02:00
},
renoteId: {
type: 'string',
format: 'id',
2019-02-24 12:27:32 +02:00
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
2019-02-23 21:08:08 +02:00
},
reply: {
$ref: '#/components/schemas/Note'
},
renote: {
$ref: '#/components/schemas/Note'
},
viaMobile: {
type: 'boolean'
},
visibility: {
type: 'string'
},
},
required: ['id', 'userId', 'createdAt']
},
2019-02-24 11:13:11 +02:00
Notification: {
type: 'object',
properties: {
id: {
type: 'string',
format: 'id',
2019-02-24 12:27:32 +02:00
description: 'The unique identifier for this notification.',
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
2019-02-24 11:13:11 +02:00
},
createdAt: {
type: 'string',
format: 'date-time',
description: 'The date that the notification was created.'
},
type: {
type: 'string',
enum: ['follow', 'receiveFollowRequest', 'mention', 'reply', 'renote', 'quote', 'reaction', 'poll_vote'],
description: 'The type of the notification.'
},
},
required: ['id', 'createdAt', 'type']
},
2019-02-23 21:08:08 +02:00
DriveFile: {
type: 'object',
properties: {
id: {
type: 'string',
format: 'id',
2019-02-24 12:27:32 +02:00
description: 'The unique identifier for this Drive file.',
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
2019-02-23 21:08:08 +02:00
},
createdAt: {
type: 'string',
format: 'date-time',
description: 'The date that the Drive file was created on Misskey.'
},
name: {
type: 'string',
description: 'The file name with extension.',
example: 'lenna.jpg'
},
type: {
type: 'string',
description: 'The MIME type of this Drive file.',
example: 'image/jpeg'
},
md5: {
type: 'string',
format: 'md5',
description: 'The MD5 hash of this Drive file.',
example: '15eca7fba0480996e2245f5185bf39f2'
},
datasize: {
type: 'number',
description: 'The size of this Drive file. (bytes)',
example: 51469
},
folderId: {
type: 'string',
format: 'id',
nullable: true,
description: 'The parent folder ID of this Drive file.',
2019-02-24 12:27:32 +02:00
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
2019-02-23 21:08:08 +02:00
},
isSensitive: {
type: 'boolean',
description: 'Whether this Drive file is sensitive.',
},
},
required: ['id', 'createdAt', 'name', 'type', 'datasize', 'md5']
2019-02-24 12:42:26 +02:00
},
Muting: {
type: 'object',
properties: {
id: {
type: 'string',
format: 'id',
description: 'The unique identifier for this mute.',
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
},
createdAt: {
type: 'string',
format: 'date-time',
description: 'The date that the mute was created.'
},
mutee: {
$ref: '#/components/schemas/User',
description: 'The mutee.'
},
},
required: ['id', 'createdAt', 'mutee']
},
Blocking: {
type: 'object',
properties: {
id: {
type: 'string',
format: 'id',
description: 'The unique identifier for this block.',
example: 'xxxxxxxxxxxxxxxxxxxxxxxx',
},
createdAt: {
type: 'string',
format: 'date-time',
description: 'The date that the block was created.'
},
blockee: {
$ref: '#/components/schemas/User',
description: 'The blockee.'
},
},
required: ['id', 'createdAt', 'blockee']
},
2019-02-23 21:08:08 +02:00
};