Created
August 7, 2023 18:22
-
-
Save ildyria/9040a71f313d52bca9741c1230c66d26 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"openapi": "3.1.0", | |
"info": { | |
"title": "Lychee", | |
"version": "0.0.1" | |
}, | |
"servers": [ | |
{ | |
"url": "https:\/\/lychee.test\/api" | |
} | |
], | |
"paths": { | |
"\/Albums::get": { | |
"post": { | |
"tags": [ | |
"Albums" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`TopAlbumsResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/TopAlbumsResource" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"\/Albums::getPositionData": { | |
"post": { | |
"tags": [ | |
"Albums" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`PositionDataResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/PositionDataResource" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"\/Albums::tree": { | |
"post": { | |
"tags": [ | |
"Albums" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`AlbumForestResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/AlbumForestResource" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"\/Album::get": { | |
"post": { | |
"summary": "Provided an albumID, returns the album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"albumID" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"anyOf": [ | |
{ | |
"$ref": "#\/components\/schemas\/AlbumResource" | |
}, | |
{ | |
"$ref": "#\/components\/schemas\/TagAlbumResource" | |
}, | |
{ | |
"$ref": "#\/components\/schemas\/SmartAlbumResource" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::getPositionData": { | |
"post": { | |
"summary": "Provided an albumID, returns the album with only map related data", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"includeSubAlbums": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"albumID", | |
"includeSubAlbums" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`PositionDataResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/PositionDataResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::unlock": { | |
"post": { | |
"summary": "Provided the albumID and password, return whether the album can be accessed or not", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"password": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"albumID", | |
"password" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::add": { | |
"post": { | |
"summary": "Add a new Album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"parent_id": { | |
"type": "string" | |
}, | |
"title": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"title" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`AlbumResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/AlbumResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::addByTags": { | |
"post": { | |
"summary": "Add a new album generated by tags", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"title": { | |
"type": "string" | |
}, | |
"tags": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"title", | |
"tags" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`TagAlbumResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/TagAlbumResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setTitle": { | |
"post": { | |
"summary": "Provided a title and albumIDs, change the title of the albums", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"title": { | |
"type": "string" | |
}, | |
"albumIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"title", | |
"albumIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setNSFW": { | |
"post": { | |
"summary": "Sets whether an album contains sensitive pictures", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"is_nsfw": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"albumID", | |
"is_nsfw" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setDescription": { | |
"post": { | |
"summary": "Change the description of the album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"description": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"albumID" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setCover": { | |
"post": { | |
"summary": "Set cover image of the album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"photoID": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"albumID" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setShowTags": { | |
"post": { | |
"summary": "Change show tags of the tag album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"show_tags": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"albumID", | |
"show_tags" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setProtectionPolicy": { | |
"post": { | |
"summary": "Sets the protection policy of the album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"password": { | |
"type": "string" | |
}, | |
"is_public": { | |
"type": "boolean" | |
}, | |
"is_link_required": { | |
"type": "boolean" | |
}, | |
"is_nsfw": { | |
"type": "boolean" | |
}, | |
"grants_download": { | |
"type": "boolean" | |
}, | |
"grants_full_photo_access": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"albumID", | |
"is_public", | |
"is_link_required", | |
"is_nsfw", | |
"grants_download", | |
"grants_full_photo_access" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::delete": { | |
"post": { | |
"summary": "Delete the album and all of its pictures", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"albumIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::merge": { | |
"post": { | |
"summary": "Merge albums. The first of the list is the destination of the merge", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"albumIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"albumID", | |
"albumIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"404": { | |
"$ref": "#\/components\/responses\/ModelNotFoundException" | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::move": { | |
"post": { | |
"summary": "Move multiple albums into another album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"albumIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"albumIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"404": { | |
"$ref": "#\/components\/responses\/ModelNotFoundException" | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setLicense": { | |
"post": { | |
"summary": "Set the license of the Album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"license": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"albumID", | |
"license" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setSorting": { | |
"post": { | |
"summary": "Define the default sorting type", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"sorting_column": { | |
"$ref": "#\/components\/schemas\/ColumnSortingPhotoType" | |
}, | |
"sorting_order": { | |
"$ref": "#\/components\/schemas\/OrderSortingType" | |
} | |
}, | |
"required": [ | |
"albumID" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::getArchive": { | |
"get": { | |
"summary": "Return the archive of the pictures of the album and its sub-albums", | |
"tags": [ | |
"Album" | |
], | |
"parameters": [ | |
{ | |
"name": "albumIDs", | |
"in": "query", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::setTrack": { | |
"post": { | |
"summary": "Upload a track for the Album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"file": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"albumID", | |
"file" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Album::deleteTrack": { | |
"post": { | |
"summary": "Delete a track from the Album", | |
"tags": [ | |
"Album" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"albumID" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Import::url": { | |
"post": { | |
"tags": [ | |
"Import" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"urls": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"urls" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "Array of `PhotoResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/PhotoResource" | |
} | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Import::server": { | |
"post": { | |
"tags": [ | |
"Import" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"delete_imported": { | |
"type": "boolean" | |
}, | |
"skip_duplicates": { | |
"type": "boolean" | |
}, | |
"import_via_symlink": { | |
"type": "boolean" | |
}, | |
"resync_metadata": { | |
"type": "boolean" | |
}, | |
"paths": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"paths" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Import::serverCancel": { | |
"post": { | |
"tags": [ | |
"Import" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Legacy::translateLegacyModelIDs": { | |
"post": { | |
"summary": "Translates IDs from legacy to modern format", | |
"tags": [ | |
"Legacy" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"photoID": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "null" | |
}, | |
"photoID": { | |
"type": "null" | |
} | |
}, | |
"required": [ | |
"albumID", | |
"photoID" | |
] | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::get": { | |
"post": { | |
"summary": "Given a photoID returns a photo", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"photoID": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"photoID" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`PhotoResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/PhotoResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::getRandom": { | |
"post": { | |
"summary": "Returns a random photo (from the configured album).\nOnly photos with enough access rights are included.\nThis is used in the Frame Controller", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`PhotoResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/PhotoResource" | |
} | |
} | |
} | |
}, | |
"404": { | |
"$ref": "#\/components\/responses\/ModelNotFoundException" | |
} | |
} | |
} | |
}, | |
"\/Photo::setTitle": { | |
"post": { | |
"summary": "Change the title of a photo", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"title": { | |
"type": "string" | |
}, | |
"photoIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"title", | |
"photoIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::setDescription": { | |
"post": { | |
"summary": "Set the description of a photo", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"photoID": { | |
"type": "string" | |
}, | |
"description": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"photoID" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::setStar": { | |
"post": { | |
"summary": "Set the is-starred attribute of the given photos", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"is_starred": { | |
"type": "boolean" | |
}, | |
"photoIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"is_starred", | |
"photoIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::setPublic": { | |
"post": { | |
"description": "We do not advise the use of this and would rather see people use albums\nvisibility.\nThis would highly simplify the code if we remove this.\nDo we really want to keep it ?", | |
"summary": "Sets the `is_public` attribute of the given photo", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"photoID": { | |
"type": "string" | |
}, | |
"is_public": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"photoID", | |
"is_public" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::setAlbum": { | |
"post": { | |
"summary": "Moves the photos to an album", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"photoIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"photoIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::setTags": { | |
"post": { | |
"summary": "Set the tags of a photo", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"shall_override": { | |
"type": "boolean" | |
}, | |
"photoIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
}, | |
"tags": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"shall_override", | |
"photoIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::delete": { | |
"post": { | |
"summary": "Delete one or more photos", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"photoIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"photoIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::duplicate": { | |
"post": { | |
"summary": "Duplicates a set of photos.\nOnly the SQL entry is duplicated for space reason", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"photoIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"photoIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::setLicense": { | |
"post": { | |
"summary": "Sets the license of the photo", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"photoID": { | |
"type": "string" | |
}, | |
"license": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"photoID", | |
"license" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::setUploadDate": { | |
"post": { | |
"summary": "Sets the license of the photo", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"photoID": { | |
"type": "string" | |
}, | |
"date": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"photoID", | |
"date" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::clearSymLink": { | |
"post": { | |
"summary": "GET to manually clear the symlinks", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/PhotoEditor::rotate": { | |
"post": { | |
"summary": "Given a photoID and a direction (+1: 90\u00b0 clockwise, -1: 90\u00b0 counterclockwise) rotate an image", | |
"tags": [ | |
"PhotoEditor" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"photoID": { | |
"type": "string" | |
}, | |
"direction": { | |
"type": "string", | |
"enum": [ | |
"-1", | |
"1" | |
] | |
} | |
}, | |
"required": [ | |
"photoID", | |
"direction" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`PhotoResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/PhotoResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::add": { | |
"post": { | |
"summary": "Adds a photo given an AlbumID", | |
"tags": [ | |
"Photo" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"fileLastModifiedTime": { | |
"type": [ | |
"number", | |
"null" | |
] | |
}, | |
"file": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"file" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"201": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "null" | |
} | |
} | |
} | |
}, | |
"404": { | |
"$ref": "#\/components\/responses\/ModelNotFoundException" | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Photo::getArchive": { | |
"get": { | |
"summary": "Return the archive of pictures or just a picture if only one", | |
"tags": [ | |
"Photo" | |
], | |
"parameters": [ | |
{ | |
"name": "photoIDs", | |
"in": "query", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "kind", | |
"in": "query", | |
"required": true, | |
"schema": { | |
"$ref": "#\/components\/schemas\/DownloadVariantType" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Search::run": { | |
"post": { | |
"summary": "Given a string split it by spaces to get terms and make a like search on the database.\nWe search on albums and photos. title, tags, description are considered.\nTODO: add search by date", | |
"tags": [ | |
"Search" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"term": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"term" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`SearchResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/SearchResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Session::init": { | |
"post": { | |
"summary": "First function being called via AJAX", | |
"tags": [ | |
"Session" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`InitResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/InitResource" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"\/Session::login": { | |
"post": { | |
"summary": "Login tentative", | |
"tags": [ | |
"Session" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"username": { | |
"type": "string" | |
}, | |
"password": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"username", | |
"password" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Session::logout": { | |
"post": { | |
"summary": "Unsets the session values", | |
"tags": [ | |
"Session" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"\/User::updateLogin": { | |
"post": { | |
"summary": "Update the Login information of the current user", | |
"tags": [ | |
"User" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"username": { | |
"type": "string" | |
}, | |
"password": { | |
"type": "string" | |
}, | |
"oldPassword": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"password", | |
"oldPassword" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`UserResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/UserResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/User::setEmail": { | |
"post": { | |
"description": "TODO: Why is this an independent request? IMHO this should be combined with the other user settings.", | |
"summary": "Updates the email address of the currently authenticated user.\nDeletes all notifications if the email address is empty", | |
"tags": [ | |
"User" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"email": { | |
"type": "string", | |
"format": "email" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/User::getAuthenticatedUser": { | |
"post": { | |
"summary": "Returns the currently authenticated user or `null` if no user\nis authenticated", | |
"tags": [ | |
"User" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`UserResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/UserResource" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"\/User::resetToken": { | |
"post": { | |
"summary": "Reset the token of the currently authenticated user", | |
"tags": [ | |
"User" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"token": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"token" | |
] | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/User::unsetToken": { | |
"post": { | |
"summary": "Disable the token of the currently authenticated user", | |
"tags": [ | |
"User" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Users::list": { | |
"post": { | |
"tags": [ | |
"Users" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Users::save": { | |
"post": { | |
"summary": "Save modification done to a user.\nNote that an admin can change the password of a user at will", | |
"tags": [ | |
"Users" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"username": { | |
"type": "string" | |
}, | |
"password": { | |
"type": "string" | |
}, | |
"may_upload": { | |
"type": "boolean" | |
}, | |
"may_edit_own_settings": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"id", | |
"username" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Users::delete": { | |
"post": { | |
"description": "The albums and photos owned by the user are re-assigned to the\nadmin user.", | |
"summary": "Deletes a user", | |
"tags": [ | |
"Users" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Users::create": { | |
"post": { | |
"summary": "Create a new user", | |
"tags": [ | |
"Users" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"username": { | |
"type": "string" | |
}, | |
"password": { | |
"type": "string" | |
}, | |
"may_upload": { | |
"type": "boolean" | |
}, | |
"may_edit_own_settings": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"username", | |
"password" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`UserManagementResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/UserManagementResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/WebAuthn::list": { | |
"post": { | |
"tags": [ | |
"WebAuthnManage" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/WebAuthn::delete": { | |
"post": { | |
"tags": [ | |
"WebAuthnManage" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/WebAuthn::register\/options": { | |
"post": { | |
"summary": "Returns a challenge to be verified by the user device", | |
"tags": [ | |
"WebAuthnRegister" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/WebAuthn::register": { | |
"post": { | |
"summary": "Registers a device for further WebAuthn authentication", | |
"tags": [ | |
"WebAuthnRegister" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"rawId": { | |
"type": "string" | |
}, | |
"type": { | |
"type": "string" | |
}, | |
"response": { | |
"type": "object", | |
"properties": { | |
"clientDataJSON": { | |
"type": "string" | |
}, | |
"attestationObject": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"clientDataJSON", | |
"attestationObject" | |
] | |
} | |
}, | |
"required": [ | |
"id", | |
"rawId", | |
"type", | |
"response" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/WebAuthn::login\/options": { | |
"post": { | |
"summary": "Returns the challenge to assertion", | |
"tags": [ | |
"WebAuthnLogin" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"user_id": { | |
"type": "integer" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/WebAuthn::login": { | |
"post": { | |
"description": "1. We retrieve the credentials candidate\n2. Double check the challenge is signed.\n3. Retrieve the User from the credential ID, we will use it to validate later (otherwise keys like yubikey4 are not working).\n4. Validate the credentials\n5. Log in on success", | |
"summary": "Log the user in", | |
"tags": [ | |
"WebAuthnLogin" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"rawId": { | |
"type": "string" | |
}, | |
"type": { | |
"type": "string" | |
}, | |
"response": { | |
"type": "object", | |
"properties": { | |
"authenticatorData": { | |
"type": "string" | |
}, | |
"clientDataJSON": { | |
"type": "string" | |
}, | |
"signature": { | |
"type": "string" | |
}, | |
"userHandle": { | |
"type": [ | |
"string", | |
"null" | |
] | |
} | |
}, | |
"required": [ | |
"authenticatorData", | |
"clientDataJSON", | |
"signature" | |
] | |
} | |
}, | |
"required": [ | |
"id", | |
"rawId", | |
"type" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Sharing::list": { | |
"post": { | |
"summary": "Returns the list of sharing permissions wrt. the authenticated user", | |
"tags": [ | |
"Sharing" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"ownerID": { | |
"type": "string" | |
}, | |
"participantID": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "`SharesResource`", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"$ref": "#\/components\/schemas\/SharesResource" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Sharing::add": { | |
"post": { | |
"summary": "Add a sharing between selected users and selected albums", | |
"tags": [ | |
"Sharing" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
}, | |
"userIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"albumIDs", | |
"userIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Sharing::setByAlbum": { | |
"post": { | |
"description": "Note: This method *sets* the shares (in contrast to *add*).\nThis means, any user not given in the list of user IDs is removed\nif the album has been shared with this user before.", | |
"summary": "Set the shares for the given album", | |
"tags": [ | |
"Sharing" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string" | |
}, | |
"userIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"albumID" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Sharing::delete": { | |
"post": { | |
"description": "FIXME: make sure that the Lychee-front is sending the correct ShareIDs", | |
"summary": "Given a list of shared ID we delete them\nThis function is the only reason why we test SharedIDs in\napp\/Http\/Middleware\/UploadCheck.php", | |
"tags": [ | |
"Sharing" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"shareIDs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"shareIDs" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Diagnostics::get": { | |
"post": { | |
"summary": "This function return the Diagnostic data as an JSON array.\nshould be used for AJAX request", | |
"tags": [ | |
"Diagnostics" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"\/Diagnostics::getSize": { | |
"post": { | |
"summary": "Return the size used by Lychee.\nWe now separate this from the initial get() call as this is quite time consuming", | |
"tags": [ | |
"Diagnostics" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"\/Settings::setSorting": { | |
"post": { | |
"summary": "Define the default sorting type", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"sorting_photos_column": { | |
"$ref": "#\/components\/schemas\/ColumnSortingPhotoType" | |
}, | |
"sorting_photos_order": { | |
"$ref": "#\/components\/schemas\/OrderSortingType" | |
}, | |
"sorting_albums_column": { | |
"$ref": "#\/components\/schemas\/ColumnSortingAlbumType" | |
}, | |
"sorting_albums_order": { | |
"$ref": "#\/components\/schemas\/OrderSortingType" | |
} | |
}, | |
"required": [ | |
"sorting_photos_column", | |
"sorting_photos_order", | |
"sorting_albums_column", | |
"sorting_albums_order" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setLang": { | |
"post": { | |
"summary": "Set the lang used by the Lychee installation", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"lang": { | |
"type": "string", | |
"enum": [ | |
"cz", | |
"de", | |
"el", | |
"en", | |
"es", | |
"fr", | |
"it", | |
"nl", | |
"no", | |
"pl", | |
"pt", | |
"ru", | |
"sk", | |
"sv", | |
"vi", | |
"zh_CN", | |
"zh_TW" | |
] | |
} | |
}, | |
"required": [ | |
"lang" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setLayout": { | |
"post": { | |
"summary": "Set the layout of the albums\n0: squares\n1: flickr justified\n2: flickr unjustified", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"layout": { | |
"type": "string", | |
"enum": [ | |
"0", | |
"1", | |
"2" | |
] | |
} | |
}, | |
"required": [ | |
"layout" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setPublicSearch": { | |
"post": { | |
"summary": "Allow public user to use the search function", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"public_search": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"public_search" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setDefaultLicense": { | |
"post": { | |
"summary": "Define the default license of the pictures", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"license": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"license" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setMapDisplay": { | |
"post": { | |
"summary": "Enable display of photo coordinates on map", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"map_display": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"map_display" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setMapDisplayPublic": { | |
"post": { | |
"summary": "Enable display of photos on map for public albums", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"map_display_public": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"map_display_public" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setMapProvider": { | |
"post": { | |
"description": "This configuration option is not used by the backend itself, but only\nby the frontend.\nThe configured value is transmitted to the frontend as part of the\nresponse for `Session::init`\n(cp. {@link \\App\\Http\\Controllers\\SessionController::init()}) as the\nconfidentiality of this configuration option is `public`.", | |
"summary": "Set provider of OSM map tiles", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"map_provider": { | |
"type": "string", | |
"enum": [ | |
"Wikimedia", | |
"OpenStreetMap.org", | |
"OpenStreetMap.de", | |
"OpenStreetMap.fr", | |
"RRZE" | |
] | |
} | |
}, | |
"required": [ | |
"map_provider" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setMapIncludeSubAlbums": { | |
"post": { | |
"summary": "Enable display of photos of sub-albums on map", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"map_include_subalbums": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"map_include_subalbums" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setLocationDecoding": { | |
"post": { | |
"summary": "Enable decoding of GPS data into location names", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"location_decoding": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"location_decoding" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setLocationShow": { | |
"post": { | |
"summary": "Enable display of location name", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"location_show": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"location_show" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setLocationShowPublic": { | |
"post": { | |
"summary": "Enable display of location name for public albums", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"location_show_public": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"location_show_public" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setCSS": { | |
"post": { | |
"summary": "Takes the css input text and put it into `dist\/user.css`.\nThis allows admins to actually personalize the look of their\ninstallation", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"css": { | |
"type": [ | |
"string", | |
"null" | |
] | |
} | |
} | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setJS": { | |
"post": { | |
"summary": "Takes the js input text and put it into `dist\/custom.js`.\nThis allows admins to actually execute custom js code on their\nLychee-Laravel installation", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"js": { | |
"type": [ | |
"string", | |
"null" | |
] | |
} | |
} | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::getAll": { | |
"post": { | |
"summary": "Returns ALL settings. This is not filtered!\nFortunately, this is behind an admin middleware.\nThis is used in the advanced settings part", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::saveAll": { | |
"post": { | |
"summary": "Get a list of settings and save them in the database\nif the associated key exists", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setAlbumDecoration": { | |
"post": { | |
"description": "Sub-album and photo counts:\nnone: no badges.\nlayers: show folder icon on albums with sub-albums (if any).\nalbum: like 'original' but with number of sub-albums (if any).\nphoto: show number of photos in album (if any).\nall: show number of sub-albums as well as photos.\n\nOrientation of album decorations. This is only relevant if\nboth sub-album and photo decorations are shown. These are simply\nthe options for CSS 'flex-direction':\nrow: horizontal decorations (photos, albums).\nrow-reverse: horizontal decorations (albums, photos).\ncolumn: vertical decorations (top albums, bottom photos).\ncolumn-reverse: vertical decorations (top photos, bottom albums).", | |
"summary": "Select the decorations of albums", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"album_decoration": { | |
"$ref": "#\/components\/schemas\/AlbumDecorationType" | |
}, | |
"album_decoration_orientation": { | |
"$ref": "#\/components\/schemas\/AlbumDecorationOrientation" | |
} | |
}, | |
"required": [ | |
"album_decoration", | |
"album_decoration_orientation" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setOverlayType": { | |
"post": { | |
"summary": "Select the image overlay used:\nnone: no overlay\ndesc: description of the photo\ndate: date of the photo\nexif: exif information", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"image_overlay_type": { | |
"type": "string", | |
"enum": [ | |
"none", | |
"desc", | |
"date", | |
"exif" | |
] | |
} | |
}, | |
"required": [ | |
"image_overlay_type" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setNSFWVisible": { | |
"post": { | |
"summary": "Show NSFW albums by default or not", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"nsfw_visible": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"nsfw_visible" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setDropboxKey": { | |
"post": { | |
"summary": "Set the dropbox key for the API", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"key": { | |
"type": [ | |
"string", | |
"null" | |
] | |
} | |
} | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setNewPhotosNotification": { | |
"post": { | |
"summary": "Enable sending of new photos notification emails", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"new_photos_notification": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"new_photos_notification" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Settings::setSmartAlbumVisibility": { | |
"post": { | |
"summary": "Given a smart album we (un)set the public properties.\nTODO: Give possibility to also change the grants_full_photo_access and grants_download", | |
"tags": [ | |
"Settings" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"albumID": { | |
"type": "string", | |
"enum": [ | |
"recent", | |
"starred", | |
"on_this_day" | |
] | |
}, | |
"is_public": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"albumID", | |
"is_public" | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Update::apply": { | |
"post": { | |
"description": "The method requires PHP to have shell access.\nExcept for the return type this method is identical to\n{@link UpdateController::view()}.", | |
"summary": "Updates Lychee and returns the messages as a JSON object", | |
"tags": [ | |
"Update" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"updateMsgs": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"required": [ | |
"updateMsgs" | |
] | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
}, | |
"\/Update::check": { | |
"post": { | |
"summary": "Return if up to date or the number of commits behind\nThis invalidates the cache for the url", | |
"tags": [ | |
"Update" | |
], | |
"requestBody": { | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"updateStatus": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"updateStatus" | |
] | |
} | |
} | |
} | |
}, | |
"422": { | |
"$ref": "#\/components\/responses\/ValidationException" | |
}, | |
"403": { | |
"$ref": "#\/components\/responses\/AuthorizationException" | |
} | |
} | |
} | |
} | |
}, | |
"components": { | |
"schemas": { | |
"TopAlbumsResource": { | |
"type": "object", | |
"properties": { | |
"smart_albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/SmartAlbumResource" | |
} | |
}, | |
"tag_albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/TagAlbumResource" | |
} | |
}, | |
"albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/AlbumResource" | |
} | |
}, | |
"shared_albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/AlbumResource" | |
} | |
} | |
}, | |
"required": [ | |
"smart_albums", | |
"tag_albums", | |
"albums", | |
"shared_albums" | |
], | |
"title": "TopAlbumsResource" | |
}, | |
"SmartAlbumResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"title": { | |
"type": "string" | |
}, | |
"photos": { | |
"type": [ | |
"array", | |
"null" | |
], | |
"items": { | |
"$ref": "#\/components\/schemas\/PhotoResource" | |
} | |
}, | |
"thumb": { | |
"type": "string" | |
}, | |
"policy": { | |
"type": "string" | |
}, | |
"rights": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id", | |
"title", | |
"photos", | |
"thumb", | |
"policy", | |
"rights" | |
], | |
"title": "SmartAlbumResource" | |
}, | |
"PhotoResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"album_id": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"altitude": { | |
"type": [ | |
"number", | |
"null" | |
] | |
}, | |
"aperture": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"checksum": { | |
"type": "string" | |
}, | |
"created_at": { | |
"type": "string" | |
}, | |
"description": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"focal": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"img_direction": { | |
"type": "null" | |
}, | |
"is_public": { | |
"type": "boolean" | |
}, | |
"is_starred": { | |
"type": "boolean" | |
}, | |
"iso": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"latitude": { | |
"type": [ | |
"number", | |
"null" | |
] | |
}, | |
"lens": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"license": { | |
"type": "string" | |
}, | |
"live_photo_checksum": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"live_photo_content_id": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"live_photo_url": { | |
"type": "string" | |
}, | |
"location": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"longitude": { | |
"type": [ | |
"number", | |
"null" | |
] | |
}, | |
"make": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"model": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"original_checksum": { | |
"type": "string" | |
}, | |
"shutter": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"size_variants": { | |
"type": "object", | |
"properties": { | |
"medium": { | |
"type": "string" | |
}, | |
"medium2x": { | |
"type": "string" | |
}, | |
"original": { | |
"type": "string" | |
}, | |
"small": { | |
"type": "string" | |
}, | |
"small2x": { | |
"type": "string" | |
}, | |
"thumb": { | |
"type": "string" | |
}, | |
"thumb2x": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"medium", | |
"medium2x", | |
"original", | |
"small", | |
"small2x", | |
"thumb", | |
"thumb2x" | |
] | |
}, | |
"tags": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"taken_at": { | |
"type": "string" | |
}, | |
"taken_at_orig_tz": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"title": { | |
"type": "string" | |
}, | |
"type": { | |
"type": "string" | |
}, | |
"updated_at": { | |
"type": "string" | |
}, | |
"rights": { | |
"type": "string" | |
}, | |
"next_photo_id": { | |
"type": "null" | |
}, | |
"previous_photo_id": { | |
"type": "null" | |
} | |
}, | |
"required": [ | |
"id", | |
"album_id", | |
"altitude", | |
"aperture", | |
"checksum", | |
"created_at", | |
"description", | |
"focal", | |
"img_direction", | |
"is_public", | |
"is_starred", | |
"iso", | |
"latitude", | |
"lens", | |
"license", | |
"live_photo_checksum", | |
"live_photo_content_id", | |
"live_photo_url", | |
"location", | |
"longitude", | |
"make", | |
"model", | |
"original_checksum", | |
"shutter", | |
"size_variants", | |
"tags", | |
"taken_at", | |
"taken_at_orig_tz", | |
"title", | |
"type", | |
"updated_at", | |
"rights", | |
"next_photo_id", | |
"previous_photo_id" | |
], | |
"title": "PhotoResource" | |
}, | |
"TagAlbumResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"title": { | |
"type": "string" | |
}, | |
"owner_name": { | |
"type": "string" | |
}, | |
"is_tag_album": { | |
"type": "boolean" | |
}, | |
"description": { | |
"type": "string" | |
}, | |
"show_tags": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"photos": { | |
"$ref": "#\/components\/schemas\/PhotoCollectionResource" | |
}, | |
"thumb": { | |
"type": "string" | |
}, | |
"created_at": { | |
"type": "string" | |
}, | |
"updated_at": { | |
"type": "string" | |
}, | |
"max_taken_at": { | |
"type": "string" | |
}, | |
"min_taken_at": { | |
"type": "string" | |
}, | |
"policy": { | |
"type": "string" | |
}, | |
"rights": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id", | |
"title", | |
"is_tag_album", | |
"description", | |
"show_tags", | |
"thumb", | |
"created_at", | |
"updated_at", | |
"max_taken_at", | |
"min_taken_at", | |
"policy", | |
"rights" | |
], | |
"title": "TagAlbumResource" | |
}, | |
"PhotoCollectionResource": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
}, | |
"title": "PhotoCollectionResource" | |
}, | |
"AlbumResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"title": { | |
"type": "string" | |
}, | |
"owner_name": { | |
"type": "string" | |
}, | |
"description": { | |
"type": "string" | |
}, | |
"track_url": { | |
"type": "string" | |
}, | |
"license": { | |
"type": "string" | |
}, | |
"sorting": { | |
"type": "string" | |
}, | |
"parent_id": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"has_albums": { | |
"type": "boolean" | |
}, | |
"albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/AlbumResource" | |
} | |
}, | |
"photos": { | |
"$ref": "#\/components\/schemas\/PhotoCollectionResource" | |
}, | |
"num_subalbums": { | |
"type": "string" | |
}, | |
"num_photos": { | |
"type": "string" | |
}, | |
"cover_id": { | |
"type": [ | |
"string", | |
"null" | |
] | |
}, | |
"thumb": { | |
"type": "string" | |
}, | |
"created_at": { | |
"type": "string" | |
}, | |
"updated_at": { | |
"type": "string" | |
}, | |
"max_taken_at": { | |
"type": "string" | |
}, | |
"min_taken_at": { | |
"type": "string" | |
}, | |
"policy": { | |
"type": "string" | |
}, | |
"rights": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id", | |
"title", | |
"description", | |
"track_url", | |
"license", | |
"sorting", | |
"parent_id", | |
"has_albums", | |
"num_subalbums", | |
"num_photos", | |
"cover_id", | |
"thumb", | |
"created_at", | |
"updated_at", | |
"max_taken_at", | |
"min_taken_at", | |
"policy", | |
"rights" | |
], | |
"title": "AlbumResource" | |
}, | |
"PositionDataResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"title": { | |
"type": "string" | |
}, | |
"photos": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/PhotoResource" | |
} | |
}, | |
"track_url": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id", | |
"title", | |
"photos", | |
"track_url" | |
], | |
"title": "PositionDataResource" | |
}, | |
"AlbumForestResource": { | |
"type": "object", | |
"properties": { | |
"albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/AlbumTreeResource" | |
} | |
}, | |
"shared_albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/AlbumTreeResource" | |
} | |
} | |
}, | |
"required": [ | |
"albums", | |
"shared_albums" | |
], | |
"title": "AlbumForestResource" | |
}, | |
"AlbumTreeResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"title": { | |
"type": "string" | |
}, | |
"parent_id": { | |
"type": "string" | |
}, | |
"thumb": { | |
"type": "string" | |
}, | |
"albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/AlbumTreeResource" | |
} | |
} | |
}, | |
"required": [ | |
"id", | |
"title", | |
"parent_id", | |
"thumb" | |
], | |
"title": "AlbumTreeResource" | |
}, | |
"ColumnSortingPhotoType": { | |
"type": "string", | |
"enum": [ | |
"owner_id", | |
"created_at", | |
"title", | |
"description", | |
"is_public", | |
"taken_at", | |
"is_starred", | |
"type" | |
], | |
"title": "ColumnSortingPhotoType" | |
}, | |
"OrderSortingType": { | |
"type": "string", | |
"enum": [ | |
"ASC", | |
"DESC" | |
], | |
"title": "OrderSortingType" | |
}, | |
"DownloadVariantType": { | |
"type": "string", | |
"enum": [ | |
"LIVEPHOTOVIDEO", | |
"ORIGINAL", | |
"MEDIUM2X", | |
"MEDIUM", | |
"SMALL2X", | |
"SMALL", | |
"THUMB2X", | |
"THUMB" | |
], | |
"title": "DownloadVariantType" | |
}, | |
"SearchResource": { | |
"type": "object", | |
"properties": { | |
"albums": { | |
"type": "string" | |
}, | |
"tag_albums": { | |
"type": "string" | |
}, | |
"photos": { | |
"type": "string" | |
}, | |
"checksum": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"albums", | |
"tag_albums", | |
"photos", | |
"checksum" | |
], | |
"title": "SearchResource" | |
}, | |
"InitResource": { | |
"type": "object", | |
"properties": { | |
"user": { | |
"anyOf": [ | |
{ | |
"$ref": "#\/components\/schemas\/UserResource" | |
}, | |
{ | |
"type": "null" | |
} | |
] | |
}, | |
"rights": { | |
"$ref": "#\/components\/schemas\/GlobalRightsResource" | |
}, | |
"config": { | |
"$ref": "#\/components\/schemas\/ConfigurationResource" | |
}, | |
"update_json": { | |
"type": "boolean" | |
}, | |
"update_available": { | |
"type": "boolean" | |
}, | |
"locale": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"user", | |
"rights", | |
"config", | |
"update_json", | |
"update_available", | |
"locale" | |
], | |
"title": "InitResource" | |
}, | |
"UserResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"has_token": { | |
"type": "string" | |
}, | |
"username": { | |
"type": "string" | |
}, | |
"email": { | |
"type": [ | |
"string", | |
"null" | |
] | |
} | |
}, | |
"required": [ | |
"id", | |
"has_token", | |
"username", | |
"email" | |
], | |
"title": "UserResource" | |
}, | |
"GlobalRightsResource": { | |
"type": "object", | |
"properties": { | |
"root_album": { | |
"$ref": "#\/components\/schemas\/RootAlbumRightsResource" | |
}, | |
"settings": { | |
"$ref": "#\/components\/schemas\/SettingsRightsResource" | |
}, | |
"user_management": { | |
"$ref": "#\/components\/schemas\/UserManagementRightsResource" | |
}, | |
"user": { | |
"$ref": "#\/components\/schemas\/UserRightsResource" | |
} | |
}, | |
"required": [ | |
"root_album", | |
"settings", | |
"user_management", | |
"user" | |
], | |
"title": "GlobalRightsResource" | |
}, | |
"RootAlbumRightsResource": { | |
"type": "object", | |
"properties": { | |
"can_edit": { | |
"type": "string" | |
}, | |
"can_upload": { | |
"type": "string" | |
}, | |
"can_import_from_server": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"can_edit", | |
"can_upload", | |
"can_import_from_server" | |
], | |
"title": "RootAlbumRightsResource" | |
}, | |
"SettingsRightsResource": { | |
"type": "object", | |
"properties": { | |
"can_edit": { | |
"type": "string" | |
}, | |
"can_see_logs": { | |
"type": "string" | |
}, | |
"can_clear_logs": { | |
"type": "string" | |
}, | |
"can_see_diagnostics": { | |
"type": "string" | |
}, | |
"can_update": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"can_edit", | |
"can_see_logs", | |
"can_clear_logs", | |
"can_see_diagnostics", | |
"can_update" | |
], | |
"title": "SettingsRightsResource" | |
}, | |
"UserManagementRightsResource": { | |
"type": "object", | |
"properties": { | |
"can_create": { | |
"type": "string" | |
}, | |
"can_list": { | |
"type": "string" | |
}, | |
"can_edit": { | |
"type": "string" | |
}, | |
"can_delete": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"can_create", | |
"can_list", | |
"can_edit", | |
"can_delete" | |
], | |
"title": "UserManagementRightsResource" | |
}, | |
"UserRightsResource": { | |
"type": "object", | |
"properties": { | |
"can_edit": { | |
"type": "string" | |
}, | |
"can_use_2fa": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"can_edit", | |
"can_use_2fa" | |
], | |
"title": "UserRightsResource" | |
}, | |
"ConfigurationResource": { | |
"type": "object", | |
"properties": { | |
"lang_available": { | |
"type": "string" | |
}, | |
"version": { | |
"type": "string" | |
}, | |
"rss_feeds": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
}, | |
"allow_username_change": { | |
"type": "string" | |
}, | |
"location": { | |
"type": "string" | |
}, | |
"SA_enabled": { | |
"type": "string" | |
}, | |
"SL_enable": { | |
"type": "string" | |
}, | |
"SL_for_admin": { | |
"type": "string" | |
}, | |
"SL_life_time_days": { | |
"type": "string" | |
}, | |
"allow_online_git_pull": { | |
"type": "string" | |
}, | |
"apply_composer_update": { | |
"type": "string" | |
}, | |
"compression_quality": { | |
"type": "string" | |
}, | |
"default_license": { | |
"type": "string" | |
}, | |
"delete_imported": { | |
"type": "string" | |
}, | |
"dropbox_key": { | |
"type": "string" | |
}, | |
"editor_enabled": { | |
"type": "string" | |
}, | |
"auto_fix_orientation": { | |
"type": "string" | |
}, | |
"force_32bit_ids": { | |
"type": "string" | |
}, | |
"force_migration_in_production": { | |
"type": "string" | |
}, | |
"has_exiftool": { | |
"type": "string" | |
}, | |
"has_ffmpeg": { | |
"type": "string" | |
}, | |
"hide_version_number": { | |
"type": "string" | |
}, | |
"imagick": { | |
"type": "string" | |
}, | |
"import_via_symlink": { | |
"type": "string" | |
}, | |
"landing_background": { | |
"type": "string" | |
}, | |
"landing_subtitle": { | |
"type": "string" | |
}, | |
"landing_title": { | |
"type": "string" | |
}, | |
"local_takestamp_video_formats": { | |
"type": "string" | |
}, | |
"log_max_num_line": { | |
"type": "string" | |
}, | |
"lossless_optimization": { | |
"type": "string" | |
}, | |
"medium_2x": { | |
"type": "string" | |
}, | |
"medium_max_height": { | |
"type": "string" | |
}, | |
"medium_max_width": { | |
"type": "string" | |
}, | |
"prefer_available_xmp_metadata": { | |
"type": "string" | |
}, | |
"raw_formats": { | |
"type": "string" | |
}, | |
"recent_age": { | |
"type": "string" | |
}, | |
"skip_duplicates": { | |
"type": "string" | |
}, | |
"small_2x": { | |
"type": "string" | |
}, | |
"small_max_height": { | |
"type": "string" | |
}, | |
"small_max_width": { | |
"type": "string" | |
}, | |
"thumb_2x": { | |
"type": "string" | |
}, | |
"unlock_password_photos_with_url_param": { | |
"type": "string" | |
}, | |
"use_last_modified_date_when_no_exif_date": { | |
"type": "string" | |
}, | |
"smart_album_visibilty": { | |
"type": "object", | |
"properties": { | |
"recent": { | |
"type": "string" | |
}, | |
"starred": { | |
"type": "string" | |
}, | |
"on_this_day": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"recent", | |
"starred", | |
"on_this_day" | |
] | |
}, | |
"album_subtitle_type": { | |
"type": "string" | |
}, | |
"check_for_updates": { | |
"type": "string" | |
}, | |
"default_album_protection": { | |
"type": "string" | |
}, | |
"feeds": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
}, | |
"footer_additional_text": { | |
"type": "string" | |
}, | |
"footer_show_copyright": { | |
"type": "string" | |
}, | |
"footer_show_social_media": { | |
"type": "string" | |
}, | |
"grants_download": { | |
"type": "string" | |
}, | |
"grants_full_photo_access": { | |
"type": "string" | |
}, | |
"image_overlay_type": { | |
"type": "string" | |
}, | |
"landing_page_enable": { | |
"type": "string" | |
}, | |
"lang": { | |
"type": "string" | |
}, | |
"layout": { | |
"type": "string" | |
}, | |
"legacy_id_redirection": { | |
"type": "string" | |
}, | |
"location_decoding": { | |
"type": "string" | |
}, | |
"location_decoding_timeout": { | |
"type": "string" | |
}, | |
"location_show": { | |
"type": "string" | |
}, | |
"location_show_public": { | |
"type": "string" | |
}, | |
"map_display": { | |
"type": "string" | |
}, | |
"map_display_direction": { | |
"type": "string" | |
}, | |
"map_display_public": { | |
"type": "string" | |
}, | |
"map_include_subalbums": { | |
"type": "string" | |
}, | |
"map_provider": { | |
"type": "string" | |
}, | |
"mod_frame_enabled": { | |
"type": "string" | |
}, | |
"mod_frame_refresh": { | |
"type": "string" | |
}, | |
"new_photos_notification": { | |
"type": "string" | |
}, | |
"nsfw_banner_override": { | |
"type": "string" | |
}, | |
"nsfw_blur": { | |
"type": "string" | |
}, | |
"nsfw_visible": { | |
"type": "string" | |
}, | |
"nsfw_warning": { | |
"type": "string" | |
}, | |
"nsfw_warning_admin": { | |
"type": "string" | |
}, | |
"photos_wraparound": { | |
"type": "string" | |
}, | |
"public_photos_hidden": { | |
"type": "string" | |
}, | |
"public_search": { | |
"type": "string" | |
}, | |
"rss_enable": { | |
"type": "string" | |
}, | |
"rss_max_items": { | |
"type": "string" | |
}, | |
"rss_recent_days": { | |
"type": "string" | |
}, | |
"share_button_visible": { | |
"type": "string" | |
}, | |
"site_copyright_begin": { | |
"type": "string" | |
}, | |
"site_copyright_end": { | |
"type": "string" | |
}, | |
"site_owner": { | |
"type": "string" | |
}, | |
"site_title": { | |
"type": "string" | |
}, | |
"sm_facebook_url": { | |
"type": "string" | |
}, | |
"sm_flickr_url": { | |
"type": "string" | |
}, | |
"sm_instagram_url": { | |
"type": "string" | |
}, | |
"sm_twitter_url": { | |
"type": "string" | |
}, | |
"sm_youtube_url": { | |
"type": "string" | |
}, | |
"sorting_albums": { | |
"type": "string" | |
}, | |
"sorting_photos": { | |
"type": "string" | |
}, | |
"swipe_tolerance_x": { | |
"type": "string" | |
}, | |
"swipe_tolerance_y": { | |
"type": "string" | |
}, | |
"update_check_every_days": { | |
"type": "string" | |
}, | |
"upload_processing_limit": { | |
"type": "string" | |
}, | |
"zip64": { | |
"type": "string" | |
}, | |
"zip_deflate_level": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"rss_feeds", | |
"album_subtitle_type", | |
"check_for_updates", | |
"default_album_protection", | |
"feeds", | |
"footer_additional_text", | |
"footer_show_copyright", | |
"footer_show_social_media", | |
"grants_download", | |
"grants_full_photo_access", | |
"image_overlay_type", | |
"landing_page_enable", | |
"lang", | |
"layout", | |
"legacy_id_redirection", | |
"location_decoding", | |
"location_decoding_timeout", | |
"location_show", | |
"location_show_public", | |
"map_display", | |
"map_display_direction", | |
"map_display_public", | |
"map_include_subalbums", | |
"map_provider", | |
"mod_frame_enabled", | |
"mod_frame_refresh", | |
"new_photos_notification", | |
"nsfw_banner_override", | |
"nsfw_blur", | |
"nsfw_visible", | |
"nsfw_warning", | |
"nsfw_warning_admin", | |
"photos_wraparound", | |
"public_photos_hidden", | |
"public_search", | |
"rss_enable", | |
"rss_max_items", | |
"rss_recent_days", | |
"share_button_visible", | |
"site_copyright_begin", | |
"site_copyright_end", | |
"site_owner", | |
"site_title", | |
"sm_facebook_url", | |
"sm_flickr_url", | |
"sm_instagram_url", | |
"sm_twitter_url", | |
"sm_youtube_url", | |
"sorting_albums", | |
"sorting_photos", | |
"swipe_tolerance_x", | |
"swipe_tolerance_y", | |
"update_check_every_days", | |
"upload_processing_limit", | |
"zip64", | |
"zip_deflate_level" | |
], | |
"title": "ConfigurationResource" | |
}, | |
"UserManagementResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"username": { | |
"type": "string" | |
}, | |
"may_administrate": { | |
"type": "string" | |
}, | |
"may_upload": { | |
"type": "string" | |
}, | |
"may_edit_own_settings": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id", | |
"username", | |
"may_administrate", | |
"may_upload", | |
"may_edit_own_settings" | |
], | |
"title": "UserManagementResource" | |
}, | |
"SharesResource": { | |
"type": "object", | |
"properties": { | |
"shared": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/SharedAlbumResource" | |
} | |
}, | |
"albums": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/ListedAlbumsResource" | |
} | |
}, | |
"users": { | |
"type": "array", | |
"items": { | |
"$ref": "#\/components\/schemas\/UserSharedResource" | |
} | |
} | |
}, | |
"required": [ | |
"shared", | |
"albums", | |
"users" | |
], | |
"title": "SharesResource" | |
}, | |
"SharedAlbumResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"user_id": { | |
"type": "string" | |
}, | |
"album_id": { | |
"type": "string" | |
}, | |
"username": { | |
"type": "string" | |
}, | |
"title": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id", | |
"user_id", | |
"album_id", | |
"username", | |
"title" | |
], | |
"title": "SharedAlbumResource" | |
}, | |
"ListedAlbumsResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"title": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id", | |
"title" | |
], | |
"title": "ListedAlbumsResource" | |
}, | |
"UserSharedResource": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
}, | |
"username": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"id", | |
"username" | |
], | |
"title": "UserSharedResource" | |
}, | |
"ColumnSortingAlbumType": { | |
"type": "string", | |
"enum": [ | |
"owner_id", | |
"created_at", | |
"title", | |
"description", | |
"min_taken_at", | |
"max_taken_at" | |
], | |
"title": "ColumnSortingAlbumType" | |
}, | |
"AlbumDecorationType": { | |
"type": "string", | |
"enum": [ | |
"none", | |
"layers", | |
"album", | |
"photo", | |
"all" | |
], | |
"title": "AlbumDecorationType" | |
}, | |
"AlbumDecorationOrientation": { | |
"type": "string", | |
"enum": [ | |
"row", | |
"row-reverse", | |
"column", | |
"column-reverse" | |
], | |
"title": "AlbumDecorationOrientation" | |
} | |
}, | |
"responses": { | |
"ValidationException": { | |
"description": "Validation error", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"message": { | |
"type": "string", | |
"description": "Errors overview." | |
}, | |
"errors": { | |
"type": "object", | |
"description": "A detailed description of each field that failed validation.", | |
"additionalProperties": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"required": [ | |
"message", | |
"errors" | |
] | |
} | |
} | |
} | |
}, | |
"AuthorizationException": { | |
"description": "Authorization error", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"message": { | |
"type": "string", | |
"description": "Error overview." | |
} | |
}, | |
"required": [ | |
"message" | |
] | |
} | |
} | |
} | |
}, | |
"ModelNotFoundException": { | |
"description": "Not found", | |
"content": { | |
"application\/json": { | |
"schema": { | |
"type": "object", | |
"properties": { | |
"message": { | |
"type": "string", | |
"description": "Error overview." | |
} | |
}, | |
"required": [ | |
"message" | |
] | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment