Skip to content

Instantly share code, notes, and snippets.

@ildyria
Created August 7, 2023 18:22
Show Gist options
  • Save ildyria/9040a71f313d52bca9741c1230c66d26 to your computer and use it in GitHub Desktop.
Save ildyria/9040a71f313d52bca9741c1230c66d26 to your computer and use it in GitHub Desktop.
{
"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