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