mirror of
https://github.com/photoprism/photoprism.git
synced 2026-01-23 10:26:03 +00:00
7443 lines
No EOL
242 KiB
JSON
7443 lines
No EOL
242 KiB
JSON
{
|
||
"swagger": "2.0",
|
||
"info": {
|
||
"description": "API request bodies and responses are usually JSON-encoded, except for binary data and some of the OAuth2 endpoints. Note that the `Content-Type` header must be set to `application/json` for this, as the request may otherwise fail with error 400.\nWhen clients have a valid access token, e.g. obtained through the `POST /api/v1/session` or `POST /api/v1/oauth/token` endpoint, they can use a standard Bearer Authorization header to authenticate their requests. Submitting the access token with a custom `X-Auth-Token` header is supported as well.",
|
||
"title": "PhotoPrism API",
|
||
"contact": {},
|
||
"version": "v1"
|
||
},
|
||
"host": "demo.photoprism.app",
|
||
"paths": {
|
||
"/api/v1/albums": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "finds albums and returns them as JSON",
|
||
"operationId": "SearchAlbums",
|
||
"parameters": [
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"type": "integer",
|
||
"description": "maximum number of results",
|
||
"name": "count",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"type": "integer",
|
||
"description": "search result offset",
|
||
"name": "offset",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
"favorites",
|
||
"name",
|
||
"title",
|
||
"added",
|
||
"edited"
|
||
],
|
||
"type": "string",
|
||
"description": "sort order",
|
||
"name": "order",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "search query",
|
||
"name": "q",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/search.Album"
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "creates a new album",
|
||
"operationId": "CreateAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "properties of the album to be created (currently supports Title and Favorite)",
|
||
"name": "album",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Album"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Album"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "returns album details as JSON",
|
||
"operationId": "GetAlbum",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Album"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "updates album metadata like title and description",
|
||
"operationId": "UpdateAlbum",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "properties to be updated",
|
||
"name": "album",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Album"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Album"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "deletes an existing album",
|
||
"operationId": "DeleteAlbum",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/clone": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "creates a new album containing pictures from other albums",
|
||
"operationId": "CloneAlbums",
|
||
"parameters": [
|
||
{
|
||
"description": "Album Selection",
|
||
"name": "albums",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "UID of the album to which the pictures are to be added",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/dl": {
|
||
"get": {
|
||
"produces": [
|
||
"application/zip"
|
||
],
|
||
"tags": [
|
||
"Images",
|
||
"Albums"
|
||
],
|
||
"summary": "streams the album contents as zip archiv",
|
||
"operationId": "DownloadAlbum",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/like": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "sets the favorite flag for an album",
|
||
"operationId": "LikeAlbum",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "removes the favorite flag from an album",
|
||
"operationId": "DislikeAlbum",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/links": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Links",
|
||
"Albums"
|
||
],
|
||
"summary": "returns all share links for the given UID as JSON",
|
||
"operationId": "GetAlbumLinks",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "album uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Link"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Links",
|
||
"Albums"
|
||
],
|
||
"summary": "adds a new album share link and return it as JSON",
|
||
"operationId": "CreateAlbumLink",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "album uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "link properties (currently supported: slug, expires)",
|
||
"name": "link",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Link"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Link"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"409": {
|
||
"description": "Conflict",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/links/{linkuid}": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Links",
|
||
"Albums"
|
||
],
|
||
"summary": "updates an album share link and return it as JSON",
|
||
"operationId": "UpdateAlbumLink",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "album uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "link uid",
|
||
"name": "linkuid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "properties to be updated (currently supported: slug, expires, token)",
|
||
"name": "link",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Link"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Link"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"409": {
|
||
"description": "Conflict",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Links",
|
||
"Albums"
|
||
],
|
||
"summary": "deletes an album share link",
|
||
"operationId": "DeleteAlbumLink",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "album",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "link uid",
|
||
"name": "linkuid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Link"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"409": {
|
||
"description": "Conflict",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/photos": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "adds photos to an album",
|
||
"operationId": "AddPhotosToAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"name": "photos",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "removes photos from an album",
|
||
"operationId": "RemovePhotosFromAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"name": "photos",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/t/{token}/{size}": {
|
||
"get": {
|
||
"produces": [
|
||
"image/jpeg",
|
||
"image/svg+xml"
|
||
],
|
||
"tags": [
|
||
"Images",
|
||
"Albums"
|
||
],
|
||
"summary": "returns an album cover image",
|
||
"operationId": "AlbumCover",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Album UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "user-specific security token provided with session or 'public' when running PhotoPrism in public mode",
|
||
"name": "token",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"enum": [
|
||
"tile_50",
|
||
"tile_100",
|
||
"left_224",
|
||
"right_224",
|
||
"tile_224",
|
||
"tile_500",
|
||
"fit_720",
|
||
"tile_1080",
|
||
"fit_1280",
|
||
"fit_1600",
|
||
"fit_1920",
|
||
"fit_2048",
|
||
"fit_2560",
|
||
"fit_3840",
|
||
"fit_4096",
|
||
"fit_7680"
|
||
],
|
||
"type": "string",
|
||
"description": "thumbnail size",
|
||
"name": "size",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/batch/albums/delete": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "permanently removes multiple albums",
|
||
"operationId": "BatchAlbumsDelete",
|
||
"parameters": [
|
||
{
|
||
"description": "Album Selection",
|
||
"name": "albums",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/batch/labels/delete": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Labels"
|
||
],
|
||
"summary": "deletes multiple labels",
|
||
"operationId": "BatchLabelsDelete",
|
||
"parameters": [
|
||
{
|
||
"description": "Label Selection",
|
||
"name": "labels",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/approve": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "approves multiple photos that are currently under review",
|
||
"operationId": "BatchPhotosApprove",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"name": "photos",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/archive": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "moves multiple photos to the archive",
|
||
"operationId": "BatchPhotosArchive",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"name": "photos",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/delete": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "permanently removes multiple or all photos from the archive",
|
||
"operationId": "BatchPhotosDelete",
|
||
"parameters": [
|
||
{
|
||
"description": "All or Photo Selection",
|
||
"name": "photos",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/private": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "toggles private state of multiple photos",
|
||
"operationId": "BatchPhotosPrivate",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"name": "photos",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/restore": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "restores multiple photos from the archive",
|
||
"operationId": "BatchPhotosRestore",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"name": "photos",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/config/options": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Config",
|
||
"Settings"
|
||
],
|
||
"summary": "returns backend config options",
|
||
"operationId": "GetConfigOptions",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/config.Options"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Config",
|
||
"Settings"
|
||
],
|
||
"summary": "updates backend config options",
|
||
"operationId": "SaveConfigOptions",
|
||
"parameters": [
|
||
{
|
||
"description": "properties to be updated (only submit values that should be changed)",
|
||
"name": "options",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/config.Options"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/config.Options"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/dl/{hash}": {
|
||
"get": {
|
||
"produces": [
|
||
"application/octet-stream"
|
||
],
|
||
"tags": [
|
||
"Images",
|
||
"Files"
|
||
],
|
||
"summary": "returns the raw file data",
|
||
"operationId": "GetDownload",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "File Hash",
|
||
"name": "hash",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/errors": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Errors"
|
||
],
|
||
"summary": "searches the error logs and returns the results as JSON",
|
||
"operationId": "GetErrors",
|
||
"parameters": [
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"type": "integer",
|
||
"description": "maximum number of results",
|
||
"name": "count",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"type": "integer",
|
||
"description": "search result offset",
|
||
"name": "offset",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "search query",
|
||
"name": "q",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Error"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Errors"
|
||
],
|
||
"summary": "removes all entries from the error logs",
|
||
"operationId": "DeleteErrors",
|
||
"responses": {
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/faces": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Faces"
|
||
],
|
||
"summary": "finds and returns faces as JSON",
|
||
"operationId": "SearchFaces",
|
||
"parameters": [
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"type": "integer",
|
||
"description": "maximum number of results",
|
||
"name": "count",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"type": "integer",
|
||
"description": "search result offset",
|
||
"name": "offset",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
"subject",
|
||
"added",
|
||
"samples"
|
||
],
|
||
"type": "string",
|
||
"description": "sort order",
|
||
"name": "order",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
"yes",
|
||
"no"
|
||
],
|
||
"type": "string",
|
||
"description": "show hidden",
|
||
"name": "hidden",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
"yes",
|
||
"no"
|
||
],
|
||
"type": "string",
|
||
"description": "show unknown",
|
||
"name": "unknown",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/search.Face"
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/faces/{id}": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Faces"
|
||
],
|
||
"summary": "returns a face as JSON",
|
||
"operationId": "GetFace",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "face id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Face"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Faces"
|
||
],
|
||
"summary": "updates face properties",
|
||
"operationId": "UpdateFace",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "face id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "properties to be updated",
|
||
"name": "face",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Face"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Face"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/files/{hash}": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Files"
|
||
],
|
||
"summary": "returns file details as JSON",
|
||
"operationId": "GetFile",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "hash (string) SHA-1 hash of the file",
|
||
"name": "hash",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.File"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/folders/t/{uid}/{token}/{size}": {
|
||
"get": {
|
||
"produces": [
|
||
"image/jpeg",
|
||
"image/svg+xml"
|
||
],
|
||
"tags": [
|
||
"Images",
|
||
"Folders"
|
||
],
|
||
"summary": "returns a folder cover image",
|
||
"operationId": "FolderCover",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "folder uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "user-specific security token provided with session or 'public' when running PhotoPrism in public mode",
|
||
"name": "token",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"enum": [
|
||
"tile_50",
|
||
"tile_100",
|
||
"left_224",
|
||
"right_224",
|
||
"tile_224",
|
||
"tile_500",
|
||
"fit_720",
|
||
"tile_1080",
|
||
"fit_1280",
|
||
"fit_1600",
|
||
"fit_1920",
|
||
"fit_2048",
|
||
"fit_2560",
|
||
"fit_3840",
|
||
"fit_4096",
|
||
"fit_7680"
|
||
],
|
||
"type": "string",
|
||
"description": "thumbnail size",
|
||
"name": "size",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/geo": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "finds photos and returns results as JSON, so they can be displayed on a map or in a viewer",
|
||
"operationId": "SearchGeo",
|
||
"parameters": [
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"type": "integer",
|
||
"description": "maximum number of files",
|
||
"name": "count",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"type": "integer",
|
||
"description": "file offset",
|
||
"name": "offset",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "boolean",
|
||
"description": "excludes private pictures",
|
||
"name": "public",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7
|
||
],
|
||
"type": "integer",
|
||
"description": "minimum quality score (1-7)",
|
||
"name": "quality",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "search query",
|
||
"name": "q",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "album uid",
|
||
"name": "s",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "photo path",
|
||
"name": "path",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "boolean",
|
||
"description": "is type video",
|
||
"name": "video",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/search.GeoResult"
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/import/": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Library"
|
||
],
|
||
"summary": "start import",
|
||
"operationId": "StartImport",
|
||
"parameters": [
|
||
{
|
||
"description": "import options",
|
||
"name": "options",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.ImportOptions"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/index": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Library"
|
||
],
|
||
"summary": "start indexing",
|
||
"operationId": "StartIndexing",
|
||
"parameters": [
|
||
{
|
||
"description": "index options",
|
||
"name": "options",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.IndexOptions"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/labels": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Labels"
|
||
],
|
||
"summary": "finds and returns labels as JSON",
|
||
"operationId": "SearchLabels",
|
||
"parameters": [
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"type": "integer",
|
||
"description": "maximum number of results",
|
||
"name": "count",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"type": "integer",
|
||
"description": "search result offset",
|
||
"name": "offset",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "boolean",
|
||
"description": "show all",
|
||
"name": "all",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "search query",
|
||
"name": "q",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/search.Label"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/labels/{uid}": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Labels"
|
||
],
|
||
"summary": "updates label name",
|
||
"operationId": "UpdateLabel",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Label UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Label Name",
|
||
"name": "label",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Label"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Label"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/labels/{uid}/like": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Labels"
|
||
],
|
||
"summary": "sets favorite flag for a label",
|
||
"operationId": "LikeLabel",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Label UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Labels"
|
||
],
|
||
"summary": "removes favorite flag from a label",
|
||
"operationId": "DislikeLabel",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Label UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/labels/{uid}/t/{token}/{size}": {
|
||
"get": {
|
||
"produces": [
|
||
"image/jpeg",
|
||
"image/svg+xml"
|
||
],
|
||
"tags": [
|
||
"Images",
|
||
"Labels"
|
||
],
|
||
"summary": "returns a label cover image",
|
||
"operationId": "LabelCover",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Label UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "user-specific security token provided with session or 'public' when running PhotoPrism in public mode",
|
||
"name": "token",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"enum": [
|
||
"tile_50",
|
||
"tile_100",
|
||
"left_224",
|
||
"right_224",
|
||
"tile_224",
|
||
"tile_500",
|
||
"fit_720",
|
||
"tile_1080",
|
||
"fit_1280",
|
||
"fit_1600",
|
||
"fit_1920",
|
||
"fit_2048",
|
||
"fit_2560",
|
||
"fit_3840",
|
||
"fit_4096",
|
||
"fit_7680"
|
||
],
|
||
"type": "string",
|
||
"description": "thumbnail size",
|
||
"name": "size",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/markers": {
|
||
"post": {
|
||
"tags": [
|
||
"Files"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/moments/time": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Albums"
|
||
],
|
||
"summary": "returns monthly albums as JSON",
|
||
"operationId": "GetMomentsTime",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Album"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/oauth/revoke": {
|
||
"post": {
|
||
"tags": [
|
||
"Authentication"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/oauth/token": {
|
||
"post": {
|
||
"tags": [
|
||
"Authentication"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/photos": {
|
||
"get": {
|
||
"description": "Fore more information see:\n- https://docs.photoprism.app/developer-guide/api/search/#get-apiv1photos",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "finds pictures and returns them as JSON",
|
||
"operationId": "SearchPhotos",
|
||
"parameters": [
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"type": "integer",
|
||
"description": "maximum number of files",
|
||
"name": "count",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"type": "integer",
|
||
"description": "file offset",
|
||
"name": "offset",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
"favorites",
|
||
"name",
|
||
"title",
|
||
"added",
|
||
"edited"
|
||
],
|
||
"type": "string",
|
||
"description": "sort order",
|
||
"name": "order",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "boolean",
|
||
"description": "groups consecutive files that belong to the same photo",
|
||
"name": "merged",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "boolean",
|
||
"description": "excludes private pictures",
|
||
"name": "public",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7
|
||
],
|
||
"type": "integer",
|
||
"description": "minimum quality score (1-7)",
|
||
"name": "quality",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "search query",
|
||
"name": "q",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "album uid",
|
||
"name": "s",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "photo path",
|
||
"name": "path",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "boolean",
|
||
"description": "is type video",
|
||
"name": "video",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/search.Photo"
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "returns picture details as JSON",
|
||
"operationId": "GetPhoto",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Photo UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "updates picture details and returns them as JSON",
|
||
"operationId": "UpdatePhoto",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Photo UID",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "properties to be updated (only submit values that should be changed)",
|
||
"name": "photo",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Photo"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/approve": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "marks a photo in review as approved",
|
||
"operationId": "ApprovePhoto",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/dl": {
|
||
"get": {
|
||
"produces": [
|
||
"application/octet-stream"
|
||
],
|
||
"tags": [
|
||
"Images",
|
||
"Files"
|
||
],
|
||
"summary": "returns the primary file matching that belongs to the photo",
|
||
"operationId": "GetPhotoDownload",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/files/{fileuid}": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Files"
|
||
],
|
||
"summary": "removes a file from storage",
|
||
"operationId": "DeleteFile",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "file uid",
|
||
"name": "fileuid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/files/{fileuid}/orientation": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Files"
|
||
],
|
||
"summary": "changes the orientation of a file",
|
||
"operationId": "ChangeFileOrientation",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "file uid",
|
||
"name": "fileuid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "file orientation",
|
||
"name": "file",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.File"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/files/{fileuid}/primary": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos",
|
||
"Stacks"
|
||
],
|
||
"summary": "sets the primary file for a photo",
|
||
"operationId": "PhotoPrimary",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "file uid",
|
||
"name": "fileuid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/files/{fileuid}/unstack": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos",
|
||
"Stacks"
|
||
],
|
||
"summary": "removes a file from an existing photo stack",
|
||
"operationId": "PhotoUnstack",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "file uid",
|
||
"name": "fileuid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/label": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Labels",
|
||
"Photos"
|
||
],
|
||
"summary": "adds a label to a photo",
|
||
"operationId": "AddPhotoLabel",
|
||
"parameters": [
|
||
{
|
||
"description": "label properties",
|
||
"name": "label",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Label"
|
||
}
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/label/{id}": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Labels",
|
||
"Photos"
|
||
],
|
||
"summary": "changes a photo label",
|
||
"operationId": "UpdatePhotoLabel",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "label id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "properties to be updated (currently supports: uncertainty)",
|
||
"name": "label",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Label"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Labels",
|
||
"Photos"
|
||
],
|
||
"summary": "removes a label from a photo",
|
||
"operationId": "RemovePhotoLabel",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "label id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/like": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "flags a photo as favorite",
|
||
"operationId": "LikePhoto",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "removes the favorite flags from a photo",
|
||
"operationId": "DislikePhoto",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/yaml": {
|
||
"get": {
|
||
"produces": [
|
||
"text/x-yaml"
|
||
],
|
||
"tags": [
|
||
"Photos"
|
||
],
|
||
"summary": "returns picture details as YAML",
|
||
"operationId": "GetPhotoYaml",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "photo uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/services": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Services"
|
||
],
|
||
"summary": "finds services and returns them as JSON",
|
||
"operationId": "SearchServices",
|
||
"parameters": [
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"type": "integer",
|
||
"description": "maximum number of results",
|
||
"name": "count",
|
||
"in": "query",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/entity.Service"
|
||
}
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Services"
|
||
],
|
||
"summary": "creates a new remote service account configuration",
|
||
"operationId": "AddService",
|
||
"parameters": [
|
||
{
|
||
"description": "properties of the service to be created",
|
||
"name": "service",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Service"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Service"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/services/{id}": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Services"
|
||
],
|
||
"summary": "returns the specified remote service account configuration as JSON",
|
||
"operationId": "GetService",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "service id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Service"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Services"
|
||
],
|
||
"summary": "updates a remote account configuration",
|
||
"operationId": "UpdateService",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "service id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "properties to be updated (only submit values that should be changed)",
|
||
"name": "service",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Service"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Service"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Services"
|
||
],
|
||
"summary": "removes a remote service account configuration",
|
||
"operationId": "DeleteService",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "service id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Service"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/services/{id}/folders": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Services"
|
||
],
|
||
"summary": "returns folders that belong to a remote service account",
|
||
"operationId": "GetServiceFolders",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "service id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object"
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/services/{id}/upload": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Services"
|
||
],
|
||
"summary": "uploads files to the selected service account",
|
||
"operationId": "UploadToService",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "service id",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/entity.File"
|
||
}
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/session": {
|
||
"post": {
|
||
"tags": [
|
||
"Authentication"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/sessions": {
|
||
"post": {
|
||
"tags": [
|
||
"Authentication"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/settings": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Settings"
|
||
],
|
||
"summary": "returns the user app settings as JSON",
|
||
"operationId": "GetSettings",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/customize.Settings"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Settings"
|
||
],
|
||
"summary": "saves the user app settings",
|
||
"operationId": "SaveSettings",
|
||
"parameters": [
|
||
{
|
||
"description": "user settings",
|
||
"name": "settings",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/customize.Settings"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/customize.Settings"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/status": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Server"
|
||
],
|
||
"summary": "reports if the server is operational",
|
||
"operationId": "GetStatus",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/subjects": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Subjects"
|
||
],
|
||
"summary": "finds and returns subjects as JSON",
|
||
"operationId": "SearchSubjects",
|
||
"parameters": [
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"type": "integer",
|
||
"description": "maximum number of results",
|
||
"name": "count",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"type": "integer",
|
||
"description": "search result offset",
|
||
"name": "offset",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
"name",
|
||
"count",
|
||
"added",
|
||
"relevance"
|
||
],
|
||
"type": "string",
|
||
"description": "sort order",
|
||
"name": "order",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
"yes",
|
||
"no"
|
||
],
|
||
"type": "string",
|
||
"description": "show hidden",
|
||
"name": "hidden",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "minimum number of files",
|
||
"name": "files",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "search query",
|
||
"name": "q",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/search.Subject"
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/subjects/{uid}": {
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Subjects"
|
||
],
|
||
"summary": "returns a subject as JSON",
|
||
"operationId": "GetSubject",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "subject uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Subject"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Subjects"
|
||
],
|
||
"summary": "updates subject properties",
|
||
"operationId": "UpdateSubject",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "subject uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "properties to be updated (only submit values that should be changed)",
|
||
"name": "subject",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Subject"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Subject"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/subjects/{uid}/like": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Subjects"
|
||
],
|
||
"summary": "flags a subject as favorite",
|
||
"operationId": "LikeSubject",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "subject uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Subjects"
|
||
],
|
||
"summary": "removes the favorite flag from a subject",
|
||
"operationId": "DislikeSubject",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "subject uid",
|
||
"name": "uid",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Internal Server Error",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/t/{thumb}/{token}/{size}": {
|
||
"get": {
|
||
"description": "Fore more information see:\n- https://docs.photoprism.app/developer-guide/api/thumbnails/#image-endpoint-uri",
|
||
"produces": [
|
||
"image/jpeg"
|
||
],
|
||
"tags": [
|
||
"Images",
|
||
"Files"
|
||
],
|
||
"summary": "returns a thumbnail image with the requested size",
|
||
"operationId": "GetThumb",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "SHA1 file hash, optionally with a crop area suffixed, e.g. '-016014058037'",
|
||
"name": "thumb",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "user-specific security token provided with session or 'public' when running PhotoPrism in public mode",
|
||
"name": "token",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"enum": [
|
||
"tile_50",
|
||
"tile_100",
|
||
"left_224",
|
||
"right_224",
|
||
"tile_224",
|
||
"tile_500",
|
||
"fit_720",
|
||
"tile_1080",
|
||
"fit_1280",
|
||
"fit_1600",
|
||
"fit_1920",
|
||
"fit_2048",
|
||
"fit_2560",
|
||
"fit_3840",
|
||
"fit_4096",
|
||
"fit_7680"
|
||
],
|
||
"type": "string",
|
||
"description": "thumbnail size",
|
||
"name": "size",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}": {
|
||
"put": {
|
||
"tags": [
|
||
"Users"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/avatar": {
|
||
"post": {
|
||
"tags": [
|
||
"Users"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/passcode": {
|
||
"post": {
|
||
"tags": [
|
||
"Users"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/passcode/activate": {
|
||
"post": {
|
||
"tags": [
|
||
"Users"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/passcode/confirm": {
|
||
"post": {
|
||
"tags": [
|
||
"Users"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/passcode/deactivate": {
|
||
"post": {
|
||
"tags": [
|
||
"Users"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/password": {
|
||
"put": {
|
||
"tags": [
|
||
"Users",
|
||
"Authentication"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/sessions": {
|
||
"get": {
|
||
"tags": [
|
||
"Users",
|
||
"Authentication"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/videos/{hash}/{token}/{format}": {
|
||
"get": {
|
||
"description": "Fore more information see:\n- https://docs.photoprism.app/developer-guide/api/thumbnails/#video-endpoint-uri",
|
||
"produces": [
|
||
"video/mp4"
|
||
],
|
||
"tags": [
|
||
"Files",
|
||
"Videos"
|
||
],
|
||
"summary": "returns a video, optionally limited to a byte range for streaming",
|
||
"operationId": "GetVideo",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "SHA1 video file hash",
|
||
"name": "thumb",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "user-specific security token provided with session",
|
||
"name": "token",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "video format, e.g. mp4",
|
||
"name": "format",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v1/zip": {
|
||
"post": {
|
||
"tags": [
|
||
"Download"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/api/v1/{entity}/{uid}/links": {
|
||
"post": {
|
||
"tags": [
|
||
"Links"
|
||
],
|
||
"responses": {}
|
||
}
|
||
},
|
||
"/users/{uid}/upload/{token}": {
|
||
"post": {
|
||
"tags": [
|
||
"Users",
|
||
"Files"
|
||
],
|
||
"responses": {}
|
||
}
|
||
}
|
||
},
|
||
"definitions": {
|
||
"config.Options": {
|
||
"type": "object",
|
||
"properties": {
|
||
"AppColor": {
|
||
"type": "string"
|
||
},
|
||
"AppIcon": {
|
||
"type": "string"
|
||
},
|
||
"AppMode": {
|
||
"type": "string"
|
||
},
|
||
"AppName": {
|
||
"type": "string"
|
||
},
|
||
"AutoImport": {
|
||
"type": "integer"
|
||
},
|
||
"AutoIndex": {
|
||
"type": "integer"
|
||
},
|
||
"BackupAlbums": {
|
||
"type": "boolean",
|
||
"default": true
|
||
},
|
||
"BackupDatabase": {
|
||
"type": "boolean",
|
||
"default": true
|
||
},
|
||
"BackupRetain": {
|
||
"type": "integer"
|
||
},
|
||
"BackupSchedule": {
|
||
"type": "string"
|
||
},
|
||
"CdnUrl": {
|
||
"type": "string"
|
||
},
|
||
"CdnVideo": {
|
||
"type": "boolean"
|
||
},
|
||
"Debug": {
|
||
"type": "boolean"
|
||
},
|
||
"DefaultLocale": {
|
||
"type": "string"
|
||
},
|
||
"DefaultTLS": {
|
||
"type": "boolean"
|
||
},
|
||
"DefaultTheme": {
|
||
"type": "string"
|
||
},
|
||
"DefaultTimezone": {
|
||
"type": "string"
|
||
},
|
||
"DetectNSFW": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableBackups": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableClassification": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableDarktable": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableExifTool": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableFFmpeg": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableFaces": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableHeifConvert": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableImageMagick": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableJpegXL": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableOIDC": {
|
||
"type": "boolean"
|
||
},
|
||
"DisablePlaces": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableRaw": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableRawTherapee": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableSips": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableTLS": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableTensorFlow": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableVectors": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableVips": {
|
||
"type": "boolean"
|
||
},
|
||
"DisableWebDAV": {
|
||
"type": "boolean"
|
||
},
|
||
"ExifBruteForce": {
|
||
"type": "boolean"
|
||
},
|
||
"Experimental": {
|
||
"type": "boolean"
|
||
},
|
||
"FFmpegBitrate": {
|
||
"type": "integer"
|
||
},
|
||
"FFmpegEncoder": {
|
||
"type": "string"
|
||
},
|
||
"FFmpegMapAudio": {
|
||
"type": "string"
|
||
},
|
||
"FFmpegMapVideo": {
|
||
"type": "string"
|
||
},
|
||
"FFmpegSize": {
|
||
"type": "integer"
|
||
},
|
||
"HttpCacheMaxAge": {
|
||
"type": "integer"
|
||
},
|
||
"HttpCachePublic": {
|
||
"type": "boolean"
|
||
},
|
||
"HttpVideoMaxAge": {
|
||
"type": "integer"
|
||
},
|
||
"HttpsProxy": {
|
||
"type": "string"
|
||
},
|
||
"HttpsProxyInsecure": {
|
||
"type": "boolean"
|
||
},
|
||
"IndexSchedule": {
|
||
"type": "string"
|
||
},
|
||
"IndexWorkers": {
|
||
"type": "integer"
|
||
},
|
||
"JpegQuality": {
|
||
"type": "integer"
|
||
},
|
||
"JpegSize": {
|
||
"type": "integer"
|
||
},
|
||
"LegalInfo": {
|
||
"type": "string"
|
||
},
|
||
"LegalUrl": {
|
||
"type": "string"
|
||
},
|
||
"OIDCIcon": {
|
||
"type": "string"
|
||
},
|
||
"OIDCProvider": {
|
||
"type": "string"
|
||
},
|
||
"OIDCRedirect": {
|
||
"type": "boolean"
|
||
},
|
||
"OIDCRegister": {
|
||
"type": "boolean"
|
||
},
|
||
"OriginalsLimit": {
|
||
"type": "integer"
|
||
},
|
||
"PngSize": {
|
||
"type": "integer"
|
||
},
|
||
"Prod": {
|
||
"type": "boolean"
|
||
},
|
||
"RawPresets": {
|
||
"type": "boolean"
|
||
},
|
||
"ReadOnly": {
|
||
"type": "boolean"
|
||
},
|
||
"ResolutionLimit": {
|
||
"type": "integer"
|
||
},
|
||
"SidecarYaml": {
|
||
"type": "boolean",
|
||
"default": true
|
||
},
|
||
"SiteAuthor": {
|
||
"type": "string"
|
||
},
|
||
"SiteCaption": {
|
||
"type": "string"
|
||
},
|
||
"SiteDescription": {
|
||
"type": "string"
|
||
},
|
||
"SitePreview": {
|
||
"type": "string"
|
||
},
|
||
"SiteTitle": {
|
||
"type": "string"
|
||
},
|
||
"SiteUrl": {
|
||
"type": "string"
|
||
},
|
||
"TLSCert": {
|
||
"type": "string"
|
||
},
|
||
"TLSEmail": {
|
||
"type": "string"
|
||
},
|
||
"TLSKey": {
|
||
"type": "string"
|
||
},
|
||
"Test": {
|
||
"type": "boolean"
|
||
},
|
||
"ThumbColor": {
|
||
"type": "string"
|
||
},
|
||
"ThumbFilter": {
|
||
"type": "string"
|
||
},
|
||
"ThumbLibrary": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSize": {
|
||
"type": "integer"
|
||
},
|
||
"ThumbSizeUncached": {
|
||
"type": "integer"
|
||
},
|
||
"ThumbUncached": {
|
||
"type": "boolean"
|
||
},
|
||
"Trace": {
|
||
"type": "boolean"
|
||
},
|
||
"WakeupInterval": {
|
||
"$ref": "#/definitions/time.Duration"
|
||
},
|
||
"WallpaperUri": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"customize.DownloadName": {
|
||
"type": "string",
|
||
"enum": [
|
||
"file",
|
||
"original",
|
||
"share"
|
||
],
|
||
"x-enum-varnames": [
|
||
"DownloadNameFile",
|
||
"DownloadNameOriginal",
|
||
"DownloadNameShare"
|
||
]
|
||
},
|
||
"customize.DownloadSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"disabled": {
|
||
"type": "boolean"
|
||
},
|
||
"mediaRaw": {
|
||
"type": "boolean"
|
||
},
|
||
"mediaSidecar": {
|
||
"type": "boolean"
|
||
},
|
||
"name": {
|
||
"$ref": "#/definitions/customize.DownloadName"
|
||
},
|
||
"originals": {
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"customize.FeatureSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"account": {
|
||
"type": "boolean"
|
||
},
|
||
"albums": {
|
||
"type": "boolean"
|
||
},
|
||
"archive": {
|
||
"type": "boolean"
|
||
},
|
||
"delete": {
|
||
"type": "boolean"
|
||
},
|
||
"download": {
|
||
"type": "boolean"
|
||
},
|
||
"edit": {
|
||
"type": "boolean"
|
||
},
|
||
"estimates": {
|
||
"type": "boolean"
|
||
},
|
||
"favorites": {
|
||
"type": "boolean"
|
||
},
|
||
"files": {
|
||
"type": "boolean"
|
||
},
|
||
"folders": {
|
||
"type": "boolean"
|
||
},
|
||
"import": {
|
||
"type": "boolean"
|
||
},
|
||
"labels": {
|
||
"type": "boolean"
|
||
},
|
||
"library": {
|
||
"type": "boolean"
|
||
},
|
||
"logs": {
|
||
"type": "boolean"
|
||
},
|
||
"moments": {
|
||
"type": "boolean"
|
||
},
|
||
"people": {
|
||
"type": "boolean"
|
||
},
|
||
"places": {
|
||
"type": "boolean"
|
||
},
|
||
"private": {
|
||
"type": "boolean"
|
||
},
|
||
"ratings": {
|
||
"type": "boolean"
|
||
},
|
||
"reactions": {
|
||
"type": "boolean"
|
||
},
|
||
"review": {
|
||
"type": "boolean"
|
||
},
|
||
"search": {
|
||
"type": "boolean"
|
||
},
|
||
"services": {
|
||
"type": "boolean"
|
||
},
|
||
"settings": {
|
||
"type": "boolean"
|
||
},
|
||
"share": {
|
||
"type": "boolean"
|
||
},
|
||
"upload": {
|
||
"type": "boolean"
|
||
},
|
||
"videos": {
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"customize.ImportSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"dest": {
|
||
"type": "string"
|
||
},
|
||
"move": {
|
||
"type": "boolean"
|
||
},
|
||
"path": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"customize.IndexSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"convert": {
|
||
"type": "boolean"
|
||
},
|
||
"path": {
|
||
"type": "string"
|
||
},
|
||
"rescan": {
|
||
"type": "boolean"
|
||
},
|
||
"skipArchived": {
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"customize.MapsSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"animate": {
|
||
"type": "integer"
|
||
},
|
||
"style": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"customize.SearchSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"batchSize": {
|
||
"type": "integer"
|
||
},
|
||
"listView": {
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"customize.Settings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"download": {
|
||
"$ref": "#/definitions/customize.DownloadSettings"
|
||
},
|
||
"features": {
|
||
"$ref": "#/definitions/customize.FeatureSettings"
|
||
},
|
||
"import": {
|
||
"$ref": "#/definitions/customize.ImportSettings"
|
||
},
|
||
"index": {
|
||
"$ref": "#/definitions/customize.IndexSettings"
|
||
},
|
||
"maps": {
|
||
"$ref": "#/definitions/customize.MapsSettings"
|
||
},
|
||
"search": {
|
||
"$ref": "#/definitions/customize.SearchSettings"
|
||
},
|
||
"share": {
|
||
"$ref": "#/definitions/customize.ShareSettings"
|
||
},
|
||
"stack": {
|
||
"$ref": "#/definitions/customize.StackSettings"
|
||
},
|
||
"templates": {
|
||
"$ref": "#/definitions/customize.TemplateSettings"
|
||
},
|
||
"ui": {
|
||
"$ref": "#/definitions/customize.UISettings"
|
||
}
|
||
}
|
||
},
|
||
"customize.ShareSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"title": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"customize.StackSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"meta": {
|
||
"type": "boolean"
|
||
},
|
||
"name": {
|
||
"type": "boolean"
|
||
},
|
||
"uuid": {
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"customize.TemplateSettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"default": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"customize.UISettings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"language": {
|
||
"type": "string"
|
||
},
|
||
"scrollbar": {
|
||
"type": "boolean"
|
||
},
|
||
"theme": {
|
||
"type": "string"
|
||
},
|
||
"timeZone": {
|
||
"type": "string"
|
||
},
|
||
"zoom": {
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"entity.Album": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Caption": {
|
||
"type": "string"
|
||
},
|
||
"Category": {
|
||
"type": "string"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CreatedBy": {
|
||
"type": "string"
|
||
},
|
||
"Day": {
|
||
"type": "integer"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"Filter": {
|
||
"type": "string"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"Location": {
|
||
"type": "string"
|
||
},
|
||
"Month": {
|
||
"type": "integer"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"Order": {
|
||
"type": "string"
|
||
},
|
||
"ParentUID": {
|
||
"type": "string"
|
||
},
|
||
"Path": {
|
||
"type": "string"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"PublishedAt": {
|
||
"type": "string"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"State": {
|
||
"type": "string"
|
||
},
|
||
"Template": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Year": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"entity.Camera": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"Make": {
|
||
"type": "string"
|
||
},
|
||
"Model": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.Cell": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Category": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"ID": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Place": {
|
||
"$ref": "#/definitions/entity.Place"
|
||
},
|
||
"Postcode": {
|
||
"type": "string"
|
||
},
|
||
"Street": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.Details": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Artist": {
|
||
"type": "string"
|
||
},
|
||
"ArtistSrc": {
|
||
"type": "string"
|
||
},
|
||
"Copyright": {
|
||
"type": "string"
|
||
},
|
||
"CopyrightSrc": {
|
||
"type": "string"
|
||
},
|
||
"Keywords": {
|
||
"type": "string"
|
||
},
|
||
"KeywordsSrc": {
|
||
"type": "string"
|
||
},
|
||
"License": {
|
||
"type": "string"
|
||
},
|
||
"LicenseSrc": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"NotesSrc": {
|
||
"type": "string"
|
||
},
|
||
"Software": {
|
||
"type": "string"
|
||
},
|
||
"SoftwareSrc": {
|
||
"type": "string"
|
||
},
|
||
"Subject": {
|
||
"type": "string"
|
||
},
|
||
"SubjectSrc": {
|
||
"type": "string"
|
||
},
|
||
"createdAt": {
|
||
"type": "string"
|
||
},
|
||
"photoID": {
|
||
"type": "integer"
|
||
},
|
||
"updatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.Error": {
|
||
"type": "object",
|
||
"properties": {
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"Level": {
|
||
"type": "string"
|
||
},
|
||
"Message": {
|
||
"type": "string"
|
||
},
|
||
"Time": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.Face": {
|
||
"type": "object",
|
||
"properties": {
|
||
"CollisionRadius": {
|
||
"type": "number"
|
||
},
|
||
"Collisions": {
|
||
"type": "integer"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Hidden": {
|
||
"type": "boolean"
|
||
},
|
||
"ID": {
|
||
"type": "string"
|
||
},
|
||
"Kind": {
|
||
"type": "integer"
|
||
},
|
||
"MatchedAt": {
|
||
"type": "string"
|
||
},
|
||
"SampleRadius": {
|
||
"type": "number"
|
||
},
|
||
"Samples": {
|
||
"type": "integer"
|
||
},
|
||
"Src": {
|
||
"type": "string"
|
||
},
|
||
"SubjUID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.File": {
|
||
"type": "object",
|
||
"properties": {
|
||
"AspectRatio": {
|
||
"type": "number"
|
||
},
|
||
"Chroma": {
|
||
"type": "integer"
|
||
},
|
||
"Codec": {
|
||
"type": "string"
|
||
},
|
||
"ColorProfile": {
|
||
"type": "string"
|
||
},
|
||
"Colors": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CreatedIn": {
|
||
"type": "integer"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Diff": {
|
||
"type": "integer"
|
||
},
|
||
"Duration": {
|
||
"$ref": "#/definitions/time.Duration"
|
||
},
|
||
"Error": {
|
||
"type": "string"
|
||
},
|
||
"FPS": {
|
||
"type": "number"
|
||
},
|
||
"FileType": {
|
||
"type": "string"
|
||
},
|
||
"Frames": {
|
||
"type": "integer"
|
||
},
|
||
"HDR": {
|
||
"type": "boolean"
|
||
},
|
||
"Hash": {
|
||
"type": "string"
|
||
},
|
||
"Height": {
|
||
"type": "integer"
|
||
},
|
||
"InstanceID": {
|
||
"type": "string"
|
||
},
|
||
"Luminance": {
|
||
"type": "string"
|
||
},
|
||
"MainColor": {
|
||
"type": "string"
|
||
},
|
||
"MediaID": {
|
||
"type": "string"
|
||
},
|
||
"MediaType": {
|
||
"type": "string"
|
||
},
|
||
"MediaUTC": {
|
||
"type": "integer"
|
||
},
|
||
"Mime": {
|
||
"type": "string"
|
||
},
|
||
"Missing": {
|
||
"type": "boolean"
|
||
},
|
||
"ModTime": {
|
||
"type": "integer"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Orientation": {
|
||
"type": "integer"
|
||
},
|
||
"OrientationSrc": {
|
||
"type": "string"
|
||
},
|
||
"OriginalName": {
|
||
"type": "string"
|
||
},
|
||
"PhotoUID": {
|
||
"type": "string"
|
||
},
|
||
"Portrait": {
|
||
"type": "boolean"
|
||
},
|
||
"Primary": {
|
||
"type": "boolean"
|
||
},
|
||
"Projection": {
|
||
"type": "string"
|
||
},
|
||
"PublishedAt": {
|
||
"type": "string"
|
||
},
|
||
"Root": {
|
||
"type": "string"
|
||
},
|
||
"Sidecar": {
|
||
"type": "boolean"
|
||
},
|
||
"Size": {
|
||
"type": "integer"
|
||
},
|
||
"Software": {
|
||
"type": "string"
|
||
},
|
||
"TakenAt": {
|
||
"type": "string"
|
||
},
|
||
"TimeIndex": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedIn": {
|
||
"type": "integer"
|
||
},
|
||
"Video": {
|
||
"type": "boolean"
|
||
},
|
||
"Watermark": {
|
||
"type": "boolean"
|
||
},
|
||
"Width": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"entity.Label": {
|
||
"type": "object",
|
||
"properties": {
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CustomSlug": {
|
||
"type": "string"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"PhotoCount": {
|
||
"type": "integer"
|
||
},
|
||
"Priority": {
|
||
"type": "integer"
|
||
},
|
||
"PublishedAt": {
|
||
"type": "string"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.Lens": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"Make": {
|
||
"type": "string"
|
||
},
|
||
"Model": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.Link": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Comment": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CreatedBy": {
|
||
"type": "string"
|
||
},
|
||
"Expires": {
|
||
"type": "integer"
|
||
},
|
||
"MaxViews": {
|
||
"type": "integer"
|
||
},
|
||
"ModifiedAt": {
|
||
"type": "string"
|
||
},
|
||
"Perm": {
|
||
"type": "integer"
|
||
},
|
||
"ShareUID": {
|
||
"type": "string"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Token": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"VerifyPassword": {
|
||
"type": "boolean"
|
||
},
|
||
"Views": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"entity.Photo": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Albums": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/entity.Album"
|
||
}
|
||
},
|
||
"Altitude": {
|
||
"type": "integer"
|
||
},
|
||
"Camera": {
|
||
"$ref": "#/definitions/entity.Camera"
|
||
},
|
||
"CameraID": {
|
||
"type": "integer"
|
||
},
|
||
"CameraSerial": {
|
||
"type": "string"
|
||
},
|
||
"CameraSrc": {
|
||
"type": "string"
|
||
},
|
||
"Caption": {
|
||
"type": "string"
|
||
},
|
||
"CaptionSrc": {
|
||
"type": "string"
|
||
},
|
||
"Cell": {
|
||
"$ref": "#/definitions/entity.Cell"
|
||
},
|
||
"CellAccuracy": {
|
||
"type": "integer"
|
||
},
|
||
"CellID": {
|
||
"type": "string"
|
||
},
|
||
"Color": {
|
||
"type": "integer"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"CreatedBy": {
|
||
"type": "string"
|
||
},
|
||
"Day": {
|
||
"type": "integer"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"DescriptionSrc": {
|
||
"type": "string"
|
||
},
|
||
"Details": {
|
||
"$ref": "#/definitions/entity.Details"
|
||
},
|
||
"DocumentID": {
|
||
"type": "string"
|
||
},
|
||
"Duration": {
|
||
"$ref": "#/definitions/time.Duration"
|
||
},
|
||
"EstimatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Exposure": {
|
||
"type": "string"
|
||
},
|
||
"FNumber": {
|
||
"type": "number"
|
||
},
|
||
"Faces": {
|
||
"type": "integer"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"FocalLength": {
|
||
"type": "integer"
|
||
},
|
||
"Iso": {
|
||
"type": "integer"
|
||
},
|
||
"Lat": {
|
||
"type": "number"
|
||
},
|
||
"Lens": {
|
||
"$ref": "#/definitions/entity.Lens"
|
||
},
|
||
"LensID": {
|
||
"type": "integer"
|
||
},
|
||
"Lng": {
|
||
"type": "number"
|
||
},
|
||
"Month": {
|
||
"type": "integer"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"OriginalName": {
|
||
"type": "string"
|
||
},
|
||
"Panorama": {
|
||
"type": "boolean"
|
||
},
|
||
"Path": {
|
||
"type": "string"
|
||
},
|
||
"Place": {
|
||
"$ref": "#/definitions/entity.Place"
|
||
},
|
||
"PlaceID": {
|
||
"type": "string"
|
||
},
|
||
"PlaceSrc": {
|
||
"type": "string"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"PublishedAt": {
|
||
"type": "string"
|
||
},
|
||
"Quality": {
|
||
"type": "integer"
|
||
},
|
||
"Resolution": {
|
||
"type": "integer"
|
||
},
|
||
"Scan": {
|
||
"type": "boolean"
|
||
},
|
||
"Stack": {
|
||
"type": "integer"
|
||
},
|
||
"TakenAt": {
|
||
"type": "string"
|
||
},
|
||
"TakenAtLocal": {
|
||
"type": "string"
|
||
},
|
||
"TakenSrc": {
|
||
"type": "string"
|
||
},
|
||
"TimeZone": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"TitleSrc": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"TypeSrc": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"Year": {
|
||
"type": "integer"
|
||
},
|
||
"checkedAt": {
|
||
"type": "string"
|
||
},
|
||
"createdAt": {
|
||
"type": "string"
|
||
},
|
||
"deletedAt": {
|
||
"type": "string"
|
||
},
|
||
"editedAt": {
|
||
"type": "string"
|
||
},
|
||
"files": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/entity.File"
|
||
}
|
||
},
|
||
"id": {
|
||
"type": "integer"
|
||
},
|
||
"labels": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/entity.PhotoLabel"
|
||
}
|
||
},
|
||
"updatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.PhotoLabel": {
|
||
"type": "object",
|
||
"properties": {
|
||
"label": {
|
||
"$ref": "#/definitions/entity.Label"
|
||
},
|
||
"labelID": {
|
||
"type": "integer"
|
||
},
|
||
"labelSrc": {
|
||
"type": "string"
|
||
},
|
||
"photo": {
|
||
"$ref": "#/definitions/entity.Photo"
|
||
},
|
||
"photoID": {
|
||
"type": "integer"
|
||
},
|
||
"uncertainty": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"entity.Place": {
|
||
"type": "object",
|
||
"properties": {
|
||
"City": {
|
||
"type": "string"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"District": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"Keywords": {
|
||
"type": "string"
|
||
},
|
||
"Label": {
|
||
"type": "string"
|
||
},
|
||
"PhotoCount": {
|
||
"type": "integer"
|
||
},
|
||
"PlaceID": {
|
||
"type": "string"
|
||
},
|
||
"State": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.Service": {
|
||
"type": "object",
|
||
"properties": {
|
||
"AccError": {
|
||
"type": "string"
|
||
},
|
||
"AccErrors": {
|
||
"type": "integer"
|
||
},
|
||
"AccName": {
|
||
"type": "string"
|
||
},
|
||
"AccOwner": {
|
||
"type": "string"
|
||
},
|
||
"AccShare": {
|
||
"type": "boolean"
|
||
},
|
||
"AccSync": {
|
||
"type": "boolean"
|
||
},
|
||
"AccTimeout": {
|
||
"type": "string"
|
||
},
|
||
"AccType": {
|
||
"type": "string"
|
||
},
|
||
"AccURL": {
|
||
"type": "string"
|
||
},
|
||
"AccUser": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"RetryLimit": {
|
||
"type": "integer"
|
||
},
|
||
"ShareExpires": {
|
||
"type": "integer"
|
||
},
|
||
"SharePath": {
|
||
"type": "string"
|
||
},
|
||
"ShareSize": {
|
||
"type": "string"
|
||
},
|
||
"SyncDate": {
|
||
"$ref": "#/definitions/sql.NullTime"
|
||
},
|
||
"SyncDownload": {
|
||
"type": "boolean"
|
||
},
|
||
"SyncFilenames": {
|
||
"type": "boolean"
|
||
},
|
||
"SyncInterval": {
|
||
"type": "integer"
|
||
},
|
||
"SyncPath": {
|
||
"type": "string"
|
||
},
|
||
"SyncRaw": {
|
||
"type": "boolean"
|
||
},
|
||
"SyncStatus": {
|
||
"type": "string"
|
||
},
|
||
"SyncUpload": {
|
||
"type": "boolean"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"entity.Subject": {
|
||
"type": "object",
|
||
"properties": {
|
||
"About": {
|
||
"type": "string"
|
||
},
|
||
"Alias": {
|
||
"type": "string"
|
||
},
|
||
"Bio": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Excluded": {
|
||
"type": "boolean"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"FileCount": {
|
||
"type": "integer"
|
||
},
|
||
"Hidden": {
|
||
"type": "boolean"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"PhotoCount": {
|
||
"type": "integer"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Src": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"form.Album": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Caption": {
|
||
"type": "string"
|
||
},
|
||
"Category": {
|
||
"type": "string"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"Filter": {
|
||
"type": "string"
|
||
},
|
||
"Location": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"Order": {
|
||
"type": "string"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"Template": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"form.Details": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Artist": {
|
||
"type": "string"
|
||
},
|
||
"ArtistSrc": {
|
||
"type": "string"
|
||
},
|
||
"Copyright": {
|
||
"type": "string"
|
||
},
|
||
"CopyrightSrc": {
|
||
"type": "string"
|
||
},
|
||
"Keywords": {
|
||
"type": "string"
|
||
},
|
||
"KeywordsSrc": {
|
||
"type": "string"
|
||
},
|
||
"License": {
|
||
"type": "string"
|
||
},
|
||
"LicenseSrc": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"NotesSrc": {
|
||
"type": "string"
|
||
},
|
||
"PhotoID": {
|
||
"type": "integer"
|
||
},
|
||
"Subject": {
|
||
"type": "string"
|
||
},
|
||
"SubjectSrc": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"form.Face": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Hidden": {
|
||
"type": "boolean"
|
||
},
|
||
"SubjUID": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"form.File": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Orientation": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"form.ImportOptions": {
|
||
"type": "object",
|
||
"properties": {
|
||
"albums": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"move": {
|
||
"type": "boolean"
|
||
},
|
||
"path": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"form.IndexOptions": {
|
||
"type": "object",
|
||
"properties": {
|
||
"cleanup": {
|
||
"type": "boolean"
|
||
},
|
||
"path": {
|
||
"type": "string"
|
||
},
|
||
"rescan": {
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"form.Label": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"Priority": {
|
||
"type": "integer"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"Uncertainty": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"form.Link": {
|
||
"type": "object",
|
||
"properties": {
|
||
"CanComment": {
|
||
"type": "boolean"
|
||
},
|
||
"CanEdit": {
|
||
"type": "boolean"
|
||
},
|
||
"Expires": {
|
||
"type": "integer"
|
||
},
|
||
"MaxViews": {
|
||
"type": "integer"
|
||
},
|
||
"Password": {
|
||
"type": "string"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Token": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"form.Photo": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Altitude": {
|
||
"type": "integer"
|
||
},
|
||
"CameraID": {
|
||
"type": "integer"
|
||
},
|
||
"CameraSrc": {
|
||
"type": "string"
|
||
},
|
||
"Caption": {
|
||
"type": "string"
|
||
},
|
||
"CaptionSrc": {
|
||
"type": "string"
|
||
},
|
||
"CellAccuracy": {
|
||
"type": "integer"
|
||
},
|
||
"CellID": {
|
||
"type": "string"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"Day": {
|
||
"type": "integer"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"DescriptionSrc": {
|
||
"type": "string"
|
||
},
|
||
"Details": {
|
||
"$ref": "#/definitions/form.Details"
|
||
},
|
||
"Exposure": {
|
||
"type": "string"
|
||
},
|
||
"FNumber": {
|
||
"type": "number"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"FocalLength": {
|
||
"type": "integer"
|
||
},
|
||
"Iso": {
|
||
"type": "integer"
|
||
},
|
||
"Lat": {
|
||
"type": "number"
|
||
},
|
||
"LensID": {
|
||
"type": "integer"
|
||
},
|
||
"Lng": {
|
||
"type": "number"
|
||
},
|
||
"Month": {
|
||
"type": "integer"
|
||
},
|
||
"OriginalName": {
|
||
"type": "string"
|
||
},
|
||
"Panorama": {
|
||
"type": "boolean"
|
||
},
|
||
"PlaceID": {
|
||
"type": "string"
|
||
},
|
||
"PlaceSrc": {
|
||
"type": "string"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"Scan": {
|
||
"type": "boolean"
|
||
},
|
||
"Stack": {
|
||
"type": "integer"
|
||
},
|
||
"TakenAt": {
|
||
"type": "string"
|
||
},
|
||
"TakenAtLocal": {
|
||
"type": "string"
|
||
},
|
||
"TakenSrc": {
|
||
"type": "string"
|
||
},
|
||
"TimeZone": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"TitleSrc": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"TypeSrc": {
|
||
"type": "string"
|
||
},
|
||
"Year": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"form.Selection": {
|
||
"type": "object",
|
||
"properties": {
|
||
"albums": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"all": {
|
||
"type": "boolean"
|
||
},
|
||
"files": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"labels": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"photos": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"places": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"subjects": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"form.Service": {
|
||
"type": "object",
|
||
"properties": {
|
||
"AccError": {
|
||
"type": "string"
|
||
},
|
||
"AccKey": {
|
||
"type": "string"
|
||
},
|
||
"AccName": {
|
||
"type": "string"
|
||
},
|
||
"AccOwner": {
|
||
"type": "string"
|
||
},
|
||
"AccPass": {
|
||
"type": "string"
|
||
},
|
||
"AccShare": {
|
||
"description": "Manual upload enabled, see SharePath, ShareSize, and ShareExpires.",
|
||
"type": "boolean"
|
||
},
|
||
"AccSync": {
|
||
"description": "Background sync enabled, see SyncDownload and SyncUpload.",
|
||
"type": "boolean"
|
||
},
|
||
"AccTimeout": {
|
||
"description": "Request timeout: default, high, medium, low, none",
|
||
"type": "string"
|
||
},
|
||
"AccType": {
|
||
"type": "string"
|
||
},
|
||
"AccURL": {
|
||
"type": "string"
|
||
},
|
||
"AccUser": {
|
||
"type": "string"
|
||
},
|
||
"RetryLimit": {
|
||
"description": "Maximum number of failed requests.",
|
||
"type": "integer"
|
||
},
|
||
"ShareExpires": {
|
||
"type": "integer"
|
||
},
|
||
"SharePath": {
|
||
"type": "string"
|
||
},
|
||
"ShareSize": {
|
||
"type": "string"
|
||
},
|
||
"SyncDownload": {
|
||
"type": "boolean"
|
||
},
|
||
"SyncFilenames": {
|
||
"type": "boolean"
|
||
},
|
||
"SyncInterval": {
|
||
"type": "integer"
|
||
},
|
||
"SyncPath": {
|
||
"type": "string"
|
||
},
|
||
"SyncRaw": {
|
||
"type": "boolean"
|
||
},
|
||
"SyncUpload": {
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"form.Subject": {
|
||
"type": "object",
|
||
"properties": {
|
||
"About": {
|
||
"type": "string"
|
||
},
|
||
"Alias": {
|
||
"type": "string"
|
||
},
|
||
"Bio": {
|
||
"type": "string"
|
||
},
|
||
"Excluded": {
|
||
"type": "boolean"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"Hidden": {
|
||
"type": "boolean"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"gin.H": {
|
||
"type": "object",
|
||
"additionalProperties": {}
|
||
},
|
||
"i18n.Response": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer"
|
||
},
|
||
"details": {
|
||
"type": "string"
|
||
},
|
||
"error": {
|
||
"type": "string"
|
||
},
|
||
"message": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"search.Album": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Caption": {
|
||
"type": "string"
|
||
},
|
||
"Category": {
|
||
"type": "string"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Day": {
|
||
"type": "integer"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"Filter": {
|
||
"type": "string"
|
||
},
|
||
"LinkCount": {
|
||
"type": "integer"
|
||
},
|
||
"Location": {
|
||
"type": "string"
|
||
},
|
||
"Month": {
|
||
"type": "integer"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"Order": {
|
||
"type": "string"
|
||
},
|
||
"ParentUID": {
|
||
"type": "string"
|
||
},
|
||
"Path": {
|
||
"type": "string"
|
||
},
|
||
"PhotoCount": {
|
||
"type": "integer"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"State": {
|
||
"type": "string"
|
||
},
|
||
"Template": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Year": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"search.Face": {
|
||
"type": "object",
|
||
"properties": {
|
||
"CollisionRadius": {
|
||
"type": "number"
|
||
},
|
||
"Collisions": {
|
||
"type": "integer"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"FaceDist": {
|
||
"type": "number"
|
||
},
|
||
"FileUID": {
|
||
"type": "string"
|
||
},
|
||
"Hidden": {
|
||
"type": "boolean"
|
||
},
|
||
"ID": {
|
||
"type": "string"
|
||
},
|
||
"Invalid": {
|
||
"type": "boolean"
|
||
},
|
||
"MarkerUID": {
|
||
"type": "string"
|
||
},
|
||
"MatchedAt": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Review": {
|
||
"type": "boolean"
|
||
},
|
||
"SampleRadius": {
|
||
"type": "number"
|
||
},
|
||
"Samples": {
|
||
"type": "integer"
|
||
},
|
||
"Score": {
|
||
"type": "integer"
|
||
},
|
||
"Size": {
|
||
"type": "integer"
|
||
},
|
||
"Src": {
|
||
"type": "string"
|
||
},
|
||
"SubjSrc": {
|
||
"type": "string"
|
||
},
|
||
"SubjUID": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"search.GeoResult": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Caption": {
|
||
"type": "string"
|
||
},
|
||
"Duration": {
|
||
"$ref": "#/definitions/time.Duration"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"Hash": {
|
||
"type": "string"
|
||
},
|
||
"Height": {
|
||
"type": "integer"
|
||
},
|
||
"Lat": {
|
||
"type": "number"
|
||
},
|
||
"Lng": {
|
||
"type": "number"
|
||
},
|
||
"TakenAt": {
|
||
"type": "string"
|
||
},
|
||
"TakenAtLocal": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"Width": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"search.Label": {
|
||
"type": "object",
|
||
"properties": {
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CustomSlug": {
|
||
"type": "string"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"PhotoCount": {
|
||
"type": "integer"
|
||
},
|
||
"Priority": {
|
||
"type": "integer"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"search.Photo": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Altitude": {
|
||
"type": "integer"
|
||
},
|
||
"CameraID": {
|
||
"description": "Camera",
|
||
"type": "integer"
|
||
},
|
||
"CameraMake": {
|
||
"type": "string"
|
||
},
|
||
"CameraModel": {
|
||
"type": "string"
|
||
},
|
||
"CameraSerial": {
|
||
"type": "string"
|
||
},
|
||
"CameraSrc": {
|
||
"type": "string"
|
||
},
|
||
"CameraType": {
|
||
"type": "string"
|
||
},
|
||
"Caption": {
|
||
"type": "string"
|
||
},
|
||
"CellAccuracy": {
|
||
"type": "integer"
|
||
},
|
||
"CellID": {
|
||
"description": "Cell",
|
||
"type": "string"
|
||
},
|
||
"CheckedAt": {
|
||
"type": "string"
|
||
},
|
||
"Color": {
|
||
"type": "integer"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Day": {
|
||
"type": "integer"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"DocumentID": {
|
||
"type": "string"
|
||
},
|
||
"Duration": {
|
||
"$ref": "#/definitions/time.Duration"
|
||
},
|
||
"EditedAt": {
|
||
"type": "string"
|
||
},
|
||
"Exposure": {
|
||
"type": "string"
|
||
},
|
||
"FNumber": {
|
||
"type": "number"
|
||
},
|
||
"Faces": {
|
||
"type": "integer"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"FileName": {
|
||
"type": "string"
|
||
},
|
||
"FileRoot": {
|
||
"type": "string"
|
||
},
|
||
"FileUID": {
|
||
"type": "string"
|
||
},
|
||
"Files": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/entity.File"
|
||
}
|
||
},
|
||
"FocalLength": {
|
||
"type": "integer"
|
||
},
|
||
"Hash": {
|
||
"type": "string"
|
||
},
|
||
"Height": {
|
||
"type": "integer"
|
||
},
|
||
"ID": {
|
||
"type": "string"
|
||
},
|
||
"InstanceID": {
|
||
"type": "string"
|
||
},
|
||
"Iso": {
|
||
"type": "integer"
|
||
},
|
||
"Lat": {
|
||
"type": "number"
|
||
},
|
||
"LensID": {
|
||
"description": "Lens",
|
||
"type": "integer"
|
||
},
|
||
"LensMake": {
|
||
"type": "string"
|
||
},
|
||
"LensModel": {
|
||
"type": "string"
|
||
},
|
||
"Lng": {
|
||
"type": "number"
|
||
},
|
||
"Merged": {
|
||
"type": "boolean"
|
||
},
|
||
"Month": {
|
||
"type": "integer"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"OriginalName": {
|
||
"type": "string"
|
||
},
|
||
"Panorama": {
|
||
"type": "boolean"
|
||
},
|
||
"Path": {
|
||
"type": "string"
|
||
},
|
||
"PlaceCity": {
|
||
"type": "string"
|
||
},
|
||
"PlaceCountry": {
|
||
"type": "string"
|
||
},
|
||
"PlaceID": {
|
||
"type": "string"
|
||
},
|
||
"PlaceLabel": {
|
||
"type": "string"
|
||
},
|
||
"PlaceSrc": {
|
||
"type": "string"
|
||
},
|
||
"PlaceState": {
|
||
"type": "string"
|
||
},
|
||
"Portrait": {
|
||
"type": "boolean"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"Quality": {
|
||
"type": "integer"
|
||
},
|
||
"Resolution": {
|
||
"type": "integer"
|
||
},
|
||
"Scan": {
|
||
"type": "boolean"
|
||
},
|
||
"Stack": {
|
||
"type": "integer"
|
||
},
|
||
"TakenAt": {
|
||
"type": "string"
|
||
},
|
||
"TakenAtLocal": {
|
||
"type": "string"
|
||
},
|
||
"TakenSrc": {
|
||
"type": "string"
|
||
},
|
||
"TimeZone": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"TypeSrc": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Width": {
|
||
"type": "integer"
|
||
},
|
||
"Year": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"search.Subject": {
|
||
"type": "object",
|
||
"properties": {
|
||
"Alias": {
|
||
"type": "string"
|
||
},
|
||
"Excluded": {
|
||
"type": "boolean"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"FileCount": {
|
||
"type": "integer"
|
||
},
|
||
"Hidden": {
|
||
"type": "boolean"
|
||
},
|
||
"MarkerSrc": {
|
||
"type": "string"
|
||
},
|
||
"MarkerUID": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"PhotoCount": {
|
||
"type": "integer"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"sql.NullTime": {
|
||
"type": "object",
|
||
"properties": {
|
||
"time": {
|
||
"type": "string"
|
||
},
|
||
"valid": {
|
||
"description": "Valid is true if Time is not NULL",
|
||
"type": "boolean"
|
||
}
|
||
}
|
||
},
|
||
"time.Duration": {
|
||
"type": "integer",
|
||
"enum": [
|
||
-9223372036854775808,
|
||
9223372036854775807,
|
||
1,
|
||
1000,
|
||
1000000,
|
||
1000000000,
|
||
60000000000,
|
||
3600000000000,
|
||
-9223372036854775808,
|
||
9223372036854775807,
|
||
1,
|
||
1000,
|
||
1000000,
|
||
1000000000,
|
||
60000000000,
|
||
3600000000000,
|
||
1,
|
||
1000,
|
||
1000000,
|
||
1000000000,
|
||
60000000000,
|
||
3600000000000,
|
||
1,
|
||
1000,
|
||
1000000,
|
||
1000000000,
|
||
60000000000,
|
||
3600000000000,
|
||
1,
|
||
1000,
|
||
1000000,
|
||
1000000000,
|
||
60000000000,
|
||
3600000000000
|
||
],
|
||
"x-enum-varnames": [
|
||
"minDuration",
|
||
"maxDuration",
|
||
"Nanosecond",
|
||
"Microsecond",
|
||
"Millisecond",
|
||
"Second",
|
||
"Minute",
|
||
"Hour",
|
||
"minDuration",
|
||
"maxDuration",
|
||
"Nanosecond",
|
||
"Microsecond",
|
||
"Millisecond",
|
||
"Second",
|
||
"Minute",
|
||
"Hour",
|
||
"Nanosecond",
|
||
"Microsecond",
|
||
"Millisecond",
|
||
"Second",
|
||
"Minute",
|
||
"Hour",
|
||
"Nanosecond",
|
||
"Microsecond",
|
||
"Millisecond",
|
||
"Second",
|
||
"Minute",
|
||
"Hour",
|
||
"Nanosecond",
|
||
"Microsecond",
|
||
"Millisecond",
|
||
"Second",
|
||
"Minute",
|
||
"Hour"
|
||
]
|
||
}
|
||
},
|
||
"externalDocs": {
|
||
"description": "Learn more ›",
|
||
"url": "https://docs.photoprism.app/developer-guide/api/"
|
||
}
|
||
} |