mirror of
https://github.com/photoprism/photoprism.git
synced 2026-01-23 02:24:24 +00:00
Related Issues/PRs: - https://github.com/gin-contrib/gzip/issues/122 - https://github.com/gin-contrib/gzip/pull/123 Signed-off-by: Michael Mayer <michael@photoprism.app>
12776 lines
No EOL
417 KiB
JSON
12776 lines
No EOL
417 KiB
JSON
{
|
||
"definitions": {
|
||
"api.FoldersResponse": {
|
||
"properties": {
|
||
"cached": {
|
||
"type": "boolean"
|
||
},
|
||
"files": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.File"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"folders": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.Folder"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"recursive": {
|
||
"type": "boolean"
|
||
},
|
||
"root": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"api.HealthResponse": {
|
||
"properties": {
|
||
"status": {
|
||
"type": "string"
|
||
},
|
||
"time": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"authn.GrantType": {
|
||
"enum": [
|
||
"",
|
||
"cli",
|
||
"implicit",
|
||
"token",
|
||
"session",
|
||
"password",
|
||
"client_credentials",
|
||
"share_token",
|
||
"refresh_token",
|
||
"authorization_code",
|
||
"urn:ietf:params:oauth:grant-type:jwt-bearer",
|
||
"urn:ietf:params:oauth:grant-type:saml2-bearer",
|
||
"urn:ietf:params:oauth:grant-type:token-exchange"
|
||
],
|
||
"type": "string",
|
||
"x-enum-varnames": [
|
||
"GrantUndefined",
|
||
"GrantCLI",
|
||
"GrantImplicit",
|
||
"GrantToken",
|
||
"GrantSession",
|
||
"GrantPassword",
|
||
"GrantClientCredentials",
|
||
"GrantShareToken",
|
||
"GrantRefreshToken",
|
||
"GrantAuthorizationCode",
|
||
"GrantJwtBearer",
|
||
"GrantSamlBearer",
|
||
"GrantTokenExchange"
|
||
]
|
||
},
|
||
"batch.Action": {
|
||
"enum": [
|
||
"none",
|
||
"update",
|
||
"add",
|
||
"remove"
|
||
],
|
||
"type": "string",
|
||
"x-enum-varnames": [
|
||
"ActionNone",
|
||
"ActionUpdate",
|
||
"ActionAdd",
|
||
"ActionRemove"
|
||
]
|
||
},
|
||
"batch.Bool": {
|
||
"properties": {
|
||
"action": {
|
||
"$ref": "#/definitions/batch.Action"
|
||
},
|
||
"mixed": {
|
||
"type": "boolean"
|
||
},
|
||
"value": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.Float32": {
|
||
"properties": {
|
||
"action": {
|
||
"$ref": "#/definitions/batch.Action"
|
||
},
|
||
"mixed": {
|
||
"type": "boolean"
|
||
},
|
||
"value": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.Float64": {
|
||
"properties": {
|
||
"action": {
|
||
"$ref": "#/definitions/batch.Action"
|
||
},
|
||
"mixed": {
|
||
"type": "boolean"
|
||
},
|
||
"value": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.Int": {
|
||
"properties": {
|
||
"action": {
|
||
"$ref": "#/definitions/batch.Action"
|
||
},
|
||
"mixed": {
|
||
"type": "boolean"
|
||
},
|
||
"value": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.Item": {
|
||
"properties": {
|
||
"action": {
|
||
"$ref": "#/definitions/batch.Action"
|
||
},
|
||
"mixed": {
|
||
"type": "boolean"
|
||
},
|
||
"title": {
|
||
"type": "string"
|
||
},
|
||
"value": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.Items": {
|
||
"properties": {
|
||
"action": {
|
||
"$ref": "#/definitions/batch.Action"
|
||
},
|
||
"items": {
|
||
"items": {
|
||
"$ref": "#/definitions/batch.Item"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"mixed": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.PhotosForm": {
|
||
"properties": {
|
||
"Albums": {
|
||
"$ref": "#/definitions/batch.Items"
|
||
},
|
||
"Altitude": {
|
||
"$ref": "#/definitions/batch.Int"
|
||
},
|
||
"CameraID": {
|
||
"$ref": "#/definitions/batch.Int"
|
||
},
|
||
"Caption": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"Country": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"Day": {
|
||
"$ref": "#/definitions/batch.Int"
|
||
},
|
||
"DetailsArtist": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"DetailsCopyright": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"DetailsKeywords": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"DetailsLicense": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"DetailsSubject": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"Exposure": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"FNumber": {
|
||
"$ref": "#/definitions/batch.Float32"
|
||
},
|
||
"Favorite": {
|
||
"$ref": "#/definitions/batch.Bool"
|
||
},
|
||
"FocalLength": {
|
||
"$ref": "#/definitions/batch.Int"
|
||
},
|
||
"Iso": {
|
||
"$ref": "#/definitions/batch.Int"
|
||
},
|
||
"Labels": {
|
||
"$ref": "#/definitions/batch.Items"
|
||
},
|
||
"Lat": {
|
||
"$ref": "#/definitions/batch.Float64"
|
||
},
|
||
"LensID": {
|
||
"$ref": "#/definitions/batch.Int"
|
||
},
|
||
"Lng": {
|
||
"$ref": "#/definitions/batch.Float64"
|
||
},
|
||
"Month": {
|
||
"$ref": "#/definitions/batch.Int"
|
||
},
|
||
"Panorama": {
|
||
"$ref": "#/definitions/batch.Bool"
|
||
},
|
||
"Private": {
|
||
"$ref": "#/definitions/batch.Bool"
|
||
},
|
||
"Scan": {
|
||
"$ref": "#/definitions/batch.Bool"
|
||
},
|
||
"TakenAt": {
|
||
"type": "string"
|
||
},
|
||
"TakenAtLocal": {
|
||
"type": "string"
|
||
},
|
||
"TimeZone": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"Title": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"Type": {
|
||
"$ref": "#/definitions/batch.String"
|
||
},
|
||
"Year": {
|
||
"$ref": "#/definitions/batch.Int"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.PhotosRequest": {
|
||
"properties": {
|
||
"photos": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"values": {
|
||
"$ref": "#/definitions/batch.PhotosForm"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.PhotosResponse": {
|
||
"properties": {
|
||
"models": {
|
||
"items": {
|
||
"$ref": "#/definitions/search.Photo"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"values": {
|
||
"$ref": "#/definitions/batch.PhotosForm"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"batch.String": {
|
||
"properties": {
|
||
"action": {
|
||
"$ref": "#/definitions/batch.Action"
|
||
},
|
||
"mixed": {
|
||
"type": "boolean"
|
||
},
|
||
"value": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.DatabaseInfo": {
|
||
"properties": {
|
||
"Driver": {
|
||
"type": "string"
|
||
},
|
||
"Host": {
|
||
"type": "string"
|
||
},
|
||
"Port": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.MetricsResponse": {
|
||
"properties": {
|
||
"ClusterCIDR": {
|
||
"type": "string"
|
||
},
|
||
"Nodes": {
|
||
"additionalProperties": {
|
||
"type": "integer"
|
||
},
|
||
"type": "object"
|
||
},
|
||
"Time": {
|
||
"type": "string"
|
||
},
|
||
"UUID": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.Node": {
|
||
"properties": {
|
||
"AdvertiseUrl": {
|
||
"type": "string"
|
||
},
|
||
"AppName": {
|
||
"type": "string"
|
||
},
|
||
"AppVersion": {
|
||
"type": "string"
|
||
},
|
||
"ClientID": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Database": {
|
||
"$ref": "#/definitions/cluster.NodeDatabase"
|
||
},
|
||
"Labels": {
|
||
"additionalProperties": {
|
||
"type": "string"
|
||
},
|
||
"type": "object"
|
||
},
|
||
"Name": {
|
||
"description": "NodeName",
|
||
"type": "string"
|
||
},
|
||
"Role": {
|
||
"description": "NodeRole",
|
||
"type": "string"
|
||
},
|
||
"SiteUrl": {
|
||
"type": "string"
|
||
},
|
||
"Theme": {
|
||
"type": "string"
|
||
},
|
||
"UUID": {
|
||
"description": "NodeUUID",
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.NodeDatabase": {
|
||
"properties": {
|
||
"Driver": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"RotatedAt": {
|
||
"type": "string"
|
||
},
|
||
"User": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.RegisterDatabase": {
|
||
"properties": {
|
||
"DSN": {
|
||
"type": "string"
|
||
},
|
||
"Driver": {
|
||
"type": "string"
|
||
},
|
||
"Host": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Password": {
|
||
"type": "string"
|
||
},
|
||
"Port": {
|
||
"type": "integer"
|
||
},
|
||
"RotatedAt": {
|
||
"type": "string"
|
||
},
|
||
"User": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.RegisterResponse": {
|
||
"properties": {
|
||
"AlreadyProvisioned": {
|
||
"type": "boolean"
|
||
},
|
||
"AlreadyRegistered": {
|
||
"type": "boolean"
|
||
},
|
||
"ClusterCIDR": {
|
||
"type": "string"
|
||
},
|
||
"Database": {
|
||
"$ref": "#/definitions/cluster.RegisterDatabase"
|
||
},
|
||
"JWKSUrl": {
|
||
"type": "string"
|
||
},
|
||
"Node": {
|
||
"$ref": "#/definitions/cluster.Node"
|
||
},
|
||
"Secrets": {
|
||
"$ref": "#/definitions/cluster.RegisterSecrets"
|
||
},
|
||
"Theme": {
|
||
"type": "string"
|
||
},
|
||
"UUID": {
|
||
"description": "ClusterUUID",
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.RegisterSecrets": {
|
||
"properties": {
|
||
"ClientSecret": {
|
||
"type": "string"
|
||
},
|
||
"RotatedAt": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.StatusResponse": {
|
||
"properties": {
|
||
"Status": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"cluster.SummaryResponse": {
|
||
"properties": {
|
||
"ClusterCIDR": {
|
||
"type": "string"
|
||
},
|
||
"Database": {
|
||
"$ref": "#/definitions/cluster.DatabaseInfo"
|
||
},
|
||
"Nodes": {
|
||
"type": "integer"
|
||
},
|
||
"Theme": {
|
||
"type": "string"
|
||
},
|
||
"Time": {
|
||
"type": "string"
|
||
},
|
||
"UUID": {
|
||
"description": "ClusterUUID",
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"config.Options": {
|
||
"properties": {
|
||
"AppColor": {
|
||
"type": "string"
|
||
},
|
||
"AppIcon": {
|
||
"type": "string"
|
||
},
|
||
"AppMode": {
|
||
"type": "string"
|
||
},
|
||
"AppName": {
|
||
"type": "string"
|
||
},
|
||
"AutoImport": {
|
||
"type": "integer"
|
||
},
|
||
"AutoIndex": {
|
||
"type": "integer"
|
||
},
|
||
"BackupAlbums": {
|
||
"default": true,
|
||
"type": "boolean"
|
||
},
|
||
"BackupDatabase": {
|
||
"default": true,
|
||
"type": "boolean"
|
||
},
|
||
"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"
|
||
},
|
||
"FFmpegPreset": {
|
||
"type": "string"
|
||
},
|
||
"FFmpegQuality": {
|
||
"type": "integer"
|
||
},
|
||
"FFmpegSize": {
|
||
"type": "integer"
|
||
},
|
||
"HttpCacheMaxAge": {
|
||
"type": "integer"
|
||
},
|
||
"HttpCachePublic": {
|
||
"type": "boolean"
|
||
},
|
||
"HttpVideoMaxAge": {
|
||
"type": "integer"
|
||
},
|
||
"HttpsProxy": {
|
||
"type": "string"
|
||
},
|
||
"HttpsProxyInsecure": {
|
||
"type": "boolean"
|
||
},
|
||
"ImportAllow": {
|
||
"type": "string"
|
||
},
|
||
"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"
|
||
},
|
||
"PlacesLocale": {
|
||
"type": "string"
|
||
},
|
||
"PngSize": {
|
||
"type": "integer"
|
||
},
|
||
"Prod": {
|
||
"type": "boolean"
|
||
},
|
||
"RawPresets": {
|
||
"type": "boolean"
|
||
},
|
||
"ReadOnly": {
|
||
"type": "boolean"
|
||
},
|
||
"ResolutionLimit": {
|
||
"type": "integer"
|
||
},
|
||
"SidecarYaml": {
|
||
"default": true,
|
||
"type": "boolean"
|
||
},
|
||
"SiteAuthor": {
|
||
"type": "string"
|
||
},
|
||
"SiteCaption": {
|
||
"type": "string"
|
||
},
|
||
"SiteDescription": {
|
||
"type": "string"
|
||
},
|
||
"SiteFavicon": {
|
||
"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"
|
||
},
|
||
"UsageInfo": {
|
||
"type": "boolean"
|
||
},
|
||
"VisionFilter": {
|
||
"type": "string"
|
||
},
|
||
"VisionSchedule": {
|
||
"type": "string"
|
||
},
|
||
"WakeupInterval": {
|
||
"$ref": "#/definitions/time.Duration"
|
||
},
|
||
"WallpaperUri": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.AlbumsOrder": {
|
||
"properties": {
|
||
"album": {
|
||
"type": "string"
|
||
},
|
||
"folder": {
|
||
"type": "string"
|
||
},
|
||
"moment": {
|
||
"type": "string"
|
||
},
|
||
"month": {
|
||
"type": "string"
|
||
},
|
||
"state": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.AlbumsSettings": {
|
||
"properties": {
|
||
"download": {
|
||
"$ref": "#/definitions/customize.DownloadSettings"
|
||
},
|
||
"order": {
|
||
"$ref": "#/definitions/customize.AlbumsOrder"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.DownloadName": {
|
||
"enum": [
|
||
"file",
|
||
"original",
|
||
"share"
|
||
],
|
||
"type": "string",
|
||
"x-enum-varnames": [
|
||
"DownloadNameFile",
|
||
"DownloadNameOriginal",
|
||
"DownloadNameShare"
|
||
]
|
||
},
|
||
"customize.DownloadSettings": {
|
||
"properties": {
|
||
"disabled": {
|
||
"type": "boolean"
|
||
},
|
||
"mediaRaw": {
|
||
"type": "boolean"
|
||
},
|
||
"mediaSidecar": {
|
||
"type": "boolean"
|
||
},
|
||
"name": {
|
||
"$ref": "#/definitions/customize.DownloadName"
|
||
},
|
||
"originals": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.FeatureSettings": {
|
||
"properties": {
|
||
"account": {
|
||
"type": "boolean"
|
||
},
|
||
"albums": {
|
||
"type": "boolean"
|
||
},
|
||
"archive": {
|
||
"type": "boolean"
|
||
},
|
||
"batchEdit": {
|
||
"type": "boolean"
|
||
},
|
||
"calendar": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.ImportSettings": {
|
||
"properties": {
|
||
"dest": {
|
||
"type": "string"
|
||
},
|
||
"move": {
|
||
"type": "boolean"
|
||
},
|
||
"path": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.IndexSettings": {
|
||
"properties": {
|
||
"convert": {
|
||
"type": "boolean"
|
||
},
|
||
"path": {
|
||
"type": "string"
|
||
},
|
||
"rescan": {
|
||
"type": "boolean"
|
||
},
|
||
"skipArchived": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.MapsSettings": {
|
||
"properties": {
|
||
"animate": {
|
||
"type": "integer"
|
||
},
|
||
"style": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.SearchSettings": {
|
||
"properties": {
|
||
"batchSize": {
|
||
"type": "integer"
|
||
},
|
||
"listView": {
|
||
"type": "boolean"
|
||
},
|
||
"showCaptions": {
|
||
"type": "boolean"
|
||
},
|
||
"showTitles": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.Settings": {
|
||
"properties": {
|
||
"albums": {
|
||
"$ref": "#/definitions/customize.AlbumsSettings"
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.ShareSettings": {
|
||
"properties": {
|
||
"title": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.StackSettings": {
|
||
"properties": {
|
||
"meta": {
|
||
"type": "boolean"
|
||
},
|
||
"name": {
|
||
"type": "boolean"
|
||
},
|
||
"uuid": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.TemplateSettings": {
|
||
"properties": {
|
||
"default": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"customize.UISettings": {
|
||
"properties": {
|
||
"language": {
|
||
"type": "string"
|
||
},
|
||
"scrollbar": {
|
||
"type": "boolean"
|
||
},
|
||
"startPage": {
|
||
"type": "string"
|
||
},
|
||
"theme": {
|
||
"type": "string"
|
||
},
|
||
"timeZone": {
|
||
"type": "string"
|
||
},
|
||
"zoom": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Album": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Camera": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Cell": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Details": {
|
||
"properties": {
|
||
"Artist": {
|
||
"type": "string"
|
||
},
|
||
"ArtistSrc": {
|
||
"type": "string"
|
||
},
|
||
"Copyright": {
|
||
"type": "string"
|
||
},
|
||
"CopyrightSrc": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Keywords": {
|
||
"type": "string"
|
||
},
|
||
"KeywordsSrc": {
|
||
"type": "string"
|
||
},
|
||
"License": {
|
||
"type": "string"
|
||
},
|
||
"LicenseSrc": {
|
||
"type": "string"
|
||
},
|
||
"Notes": {
|
||
"type": "string"
|
||
},
|
||
"NotesSrc": {
|
||
"type": "string"
|
||
},
|
||
"PhotoID": {
|
||
"type": "integer"
|
||
},
|
||
"Software": {
|
||
"type": "string"
|
||
},
|
||
"SoftwareSrc": {
|
||
"type": "string"
|
||
},
|
||
"Subject": {
|
||
"type": "string"
|
||
},
|
||
"SubjectSrc": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Error": {
|
||
"properties": {
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"Level": {
|
||
"type": "string"
|
||
},
|
||
"Message": {
|
||
"type": "string"
|
||
},
|
||
"Time": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Face": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.File": {
|
||
"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"
|
||
},
|
||
"Pages": {
|
||
"type": "integer"
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Folder": {
|
||
"properties": {
|
||
"Category": {
|
||
"type": "string"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"Day": {
|
||
"type": "integer"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"FileCount": {
|
||
"type": "integer"
|
||
},
|
||
"Ignore": {
|
||
"type": "boolean"
|
||
},
|
||
"ModifiedAt": {
|
||
"type": "string"
|
||
},
|
||
"Month": {
|
||
"type": "integer"
|
||
},
|
||
"Order": {
|
||
"type": "string"
|
||
},
|
||
"Path": {
|
||
"type": "string"
|
||
},
|
||
"Private": {
|
||
"type": "boolean"
|
||
},
|
||
"PublishedAt": {
|
||
"type": "string"
|
||
},
|
||
"Root": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"Watch": {
|
||
"type": "boolean"
|
||
},
|
||
"Year": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Label": {
|
||
"properties": {
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CustomSlug": {
|
||
"type": "string"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"NSFW": {
|
||
"type": "boolean"
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Lens": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Link": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Marker": {
|
||
"properties": {
|
||
"FaceDist": {
|
||
"type": "number"
|
||
},
|
||
"FaceID": {
|
||
"type": "string"
|
||
},
|
||
"FileUID": {
|
||
"type": "string"
|
||
},
|
||
"H": {
|
||
"type": "number"
|
||
},
|
||
"Invalid": {
|
||
"type": "boolean"
|
||
},
|
||
"MatchedAt": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Q": {
|
||
"type": "integer"
|
||
},
|
||
"Review": {
|
||
"type": "boolean"
|
||
},
|
||
"Score": {
|
||
"type": "integer"
|
||
},
|
||
"Size": {
|
||
"type": "integer"
|
||
},
|
||
"Src": {
|
||
"type": "string"
|
||
},
|
||
"SubjSrc": {
|
||
"type": "string"
|
||
},
|
||
"SubjUID": {
|
||
"type": "string"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"W": {
|
||
"type": "number"
|
||
},
|
||
"X": {
|
||
"type": "number"
|
||
},
|
||
"Y": {
|
||
"type": "number"
|
||
},
|
||
"createdAt": {
|
||
"type": "string"
|
||
},
|
||
"updatedAt": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Passcode": {
|
||
"properties": {
|
||
"ActivatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"VerifiedAt": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Photo": {
|
||
"properties": {
|
||
"Albums": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.Album"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"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"
|
||
},
|
||
"CheckedAt": {
|
||
"type": "string"
|
||
},
|
||
"Color": {
|
||
"type": "integer"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CreatedBy": {
|
||
"type": "string"
|
||
},
|
||
"Day": {
|
||
"type": "integer"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"DescriptionSrc": {
|
||
"type": "string"
|
||
},
|
||
"Details": {
|
||
"$ref": "#/definitions/entity.Details"
|
||
},
|
||
"DocumentID": {
|
||
"type": "string"
|
||
},
|
||
"Duration": {
|
||
"$ref": "#/definitions/time.Duration"
|
||
},
|
||
"EditedAt": {
|
||
"type": "string"
|
||
},
|
||
"EstimatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Exposure": {
|
||
"type": "string"
|
||
},
|
||
"FNumber": {
|
||
"type": "number"
|
||
},
|
||
"Faces": {
|
||
"type": "integer"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"FocalLength": {
|
||
"type": "integer"
|
||
},
|
||
"IndexedAt": {
|
||
"type": "string"
|
||
},
|
||
"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"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Year": {
|
||
"type": "integer"
|
||
},
|
||
"files": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.File"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"id": {
|
||
"type": "integer"
|
||
},
|
||
"labels": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.PhotoLabel"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.PhotoLabel": {
|
||
"properties": {
|
||
"Label": {
|
||
"$ref": "#/definitions/entity.Label"
|
||
},
|
||
"LabelID": {
|
||
"type": "integer"
|
||
},
|
||
"LabelSrc": {
|
||
"type": "string"
|
||
},
|
||
"NSFW": {
|
||
"type": "integer"
|
||
},
|
||
"PhotoID": {
|
||
"type": "integer"
|
||
},
|
||
"Topicality": {
|
||
"type": "integer"
|
||
},
|
||
"Uncertainty": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Place": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Service": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Session": {
|
||
"properties": {
|
||
"AuthID": {
|
||
"type": "string"
|
||
},
|
||
"AuthIssuer": {
|
||
"type": "string"
|
||
},
|
||
"AuthMethod": {
|
||
"type": "string"
|
||
},
|
||
"AuthProvider": {
|
||
"type": "string"
|
||
},
|
||
"AuthScope": {
|
||
"type": "string"
|
||
},
|
||
"ClientIP": {
|
||
"type": "string"
|
||
},
|
||
"ClientName": {
|
||
"type": "string"
|
||
},
|
||
"ClientUID": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"Expires": {
|
||
"type": "integer"
|
||
},
|
||
"GrantType": {
|
||
"type": "string"
|
||
},
|
||
"ID": {
|
||
"type": "string"
|
||
},
|
||
"IdToken": {
|
||
"type": "string"
|
||
},
|
||
"LastActive": {
|
||
"type": "integer"
|
||
},
|
||
"LoginAt": {
|
||
"type": "string"
|
||
},
|
||
"LoginIP": {
|
||
"type": "string"
|
||
},
|
||
"Status": {
|
||
"type": "integer"
|
||
},
|
||
"Timeout": {
|
||
"type": "integer"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"UserAgent": {
|
||
"type": "string"
|
||
},
|
||
"UserName": {
|
||
"type": "string"
|
||
},
|
||
"UserUID": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.Subject": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.User": {
|
||
"properties": {
|
||
"Attr": {
|
||
"type": "string"
|
||
},
|
||
"AuthID": {
|
||
"type": "string"
|
||
},
|
||
"AuthIssuer": {
|
||
"type": "string"
|
||
},
|
||
"AuthMethod": {
|
||
"type": "string"
|
||
},
|
||
"AuthProvider": {
|
||
"type": "string"
|
||
},
|
||
"BackupEmail": {
|
||
"type": "string"
|
||
},
|
||
"BasePath": {
|
||
"type": "string"
|
||
},
|
||
"BornAt": {
|
||
"type": "string"
|
||
},
|
||
"CanInvite": {
|
||
"type": "boolean"
|
||
},
|
||
"CanLogin": {
|
||
"type": "boolean"
|
||
},
|
||
"ConsentAt": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Details": {
|
||
"$ref": "#/definitions/entity.UserDetails"
|
||
},
|
||
"DisplayName": {
|
||
"type": "string"
|
||
},
|
||
"Email": {
|
||
"type": "string"
|
||
},
|
||
"ExpiresAt": {
|
||
"type": "string"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"LoginAt": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Role": {
|
||
"type": "string"
|
||
},
|
||
"Scope": {
|
||
"type": "string"
|
||
},
|
||
"Settings": {
|
||
"$ref": "#/definitions/entity.UserSettings"
|
||
},
|
||
"Shares": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.UserShare"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"SuperAdmin": {
|
||
"type": "boolean"
|
||
},
|
||
"Thumb": {
|
||
"type": "string"
|
||
},
|
||
"ThumbSrc": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"UUID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"UploadPath": {
|
||
"type": "string"
|
||
},
|
||
"VerifiedAt": {
|
||
"type": "string"
|
||
},
|
||
"WebDAV": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.UserDetails": {
|
||
"properties": {
|
||
"About": {
|
||
"type": "string"
|
||
},
|
||
"AvatarURL": {
|
||
"type": "string"
|
||
},
|
||
"Bio": {
|
||
"type": "string"
|
||
},
|
||
"BirthDay": {
|
||
"type": "integer"
|
||
},
|
||
"BirthMonth": {
|
||
"type": "integer"
|
||
},
|
||
"BirthYear": {
|
||
"type": "integer"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"FamilyName": {
|
||
"type": "string"
|
||
},
|
||
"FeedURL": {
|
||
"type": "string"
|
||
},
|
||
"Gender": {
|
||
"type": "string"
|
||
},
|
||
"GivenName": {
|
||
"type": "string"
|
||
},
|
||
"IdURL": {
|
||
"type": "string"
|
||
},
|
||
"Location": {
|
||
"type": "string"
|
||
},
|
||
"MiddleName": {
|
||
"type": "string"
|
||
},
|
||
"NameSrc": {
|
||
"type": "string"
|
||
},
|
||
"NameSuffix": {
|
||
"type": "string"
|
||
},
|
||
"NameTitle": {
|
||
"type": "string"
|
||
},
|
||
"NickName": {
|
||
"type": "string"
|
||
},
|
||
"OrgEmail": {
|
||
"type": "string"
|
||
},
|
||
"OrgName": {
|
||
"type": "string"
|
||
},
|
||
"OrgPhone": {
|
||
"type": "string"
|
||
},
|
||
"OrgTitle": {
|
||
"type": "string"
|
||
},
|
||
"OrgURL": {
|
||
"type": "string"
|
||
},
|
||
"Phone": {
|
||
"type": "string"
|
||
},
|
||
"ProfileURL": {
|
||
"type": "string"
|
||
},
|
||
"SiteURL": {
|
||
"type": "string"
|
||
},
|
||
"SubjUID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.UserSettings": {
|
||
"properties": {
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"DownloadMediaRaw": {
|
||
"type": "integer"
|
||
},
|
||
"DownloadMediaSidecar": {
|
||
"type": "integer"
|
||
},
|
||
"DownloadOriginals": {
|
||
"type": "integer"
|
||
},
|
||
"ImportMove": {
|
||
"type": "integer"
|
||
},
|
||
"ImportPath": {
|
||
"type": "string"
|
||
},
|
||
"IndexPath": {
|
||
"type": "string"
|
||
},
|
||
"IndexRescan": {
|
||
"type": "integer"
|
||
},
|
||
"MapsAnimate": {
|
||
"type": "integer"
|
||
},
|
||
"MapsStyle": {
|
||
"type": "string"
|
||
},
|
||
"SearchListView": {
|
||
"type": "integer"
|
||
},
|
||
"SearchShowCaptions": {
|
||
"type": "integer"
|
||
},
|
||
"SearchShowTitles": {
|
||
"type": "integer"
|
||
},
|
||
"UILanguage": {
|
||
"type": "string"
|
||
},
|
||
"UIStartPage": {
|
||
"type": "string"
|
||
},
|
||
"UITheme": {
|
||
"type": "string"
|
||
},
|
||
"UITimeZone": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
},
|
||
"UploadPath": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"entity.UserShare": {
|
||
"properties": {
|
||
"Comment": {
|
||
"type": "string"
|
||
},
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"ExpiresAt": {
|
||
"type": "string"
|
||
},
|
||
"LinkUID": {
|
||
"type": "string"
|
||
},
|
||
"Perm": {
|
||
"type": "integer"
|
||
},
|
||
"ShareUID": {
|
||
"type": "string"
|
||
},
|
||
"UpdatedAt": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Album": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.ChangePassword": {
|
||
"properties": {
|
||
"new": {
|
||
"type": "string"
|
||
},
|
||
"old": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Connect": {
|
||
"properties": {
|
||
"Token": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Details": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Face": {
|
||
"properties": {
|
||
"Hidden": {
|
||
"type": "boolean"
|
||
},
|
||
"SubjUID": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Feedback": {
|
||
"properties": {
|
||
"Category": {
|
||
"type": "string"
|
||
},
|
||
"Message": {
|
||
"type": "string"
|
||
},
|
||
"UserAgent": {
|
||
"type": "string"
|
||
},
|
||
"UserEmail": {
|
||
"type": "string"
|
||
},
|
||
"UserLocales": {
|
||
"type": "string"
|
||
},
|
||
"UserName": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.File": {
|
||
"properties": {
|
||
"Orientation": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.ImportOptions": {
|
||
"properties": {
|
||
"albums": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"move": {
|
||
"type": "boolean"
|
||
},
|
||
"path": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.IndexOptions": {
|
||
"properties": {
|
||
"cleanup": {
|
||
"type": "boolean"
|
||
},
|
||
"path": {
|
||
"type": "string"
|
||
},
|
||
"rescan": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Label": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Link": {
|
||
"properties": {
|
||
"CanComment": {
|
||
"type": "boolean"
|
||
},
|
||
"CanEdit": {
|
||
"type": "boolean"
|
||
},
|
||
"Expires": {
|
||
"type": "integer"
|
||
},
|
||
"MaxViews": {
|
||
"type": "integer"
|
||
},
|
||
"Password": {
|
||
"type": "string"
|
||
},
|
||
"Slug": {
|
||
"type": "string"
|
||
},
|
||
"Token": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Login": {
|
||
"properties": {
|
||
"code": {
|
||
"description": "2FA Verification Code (Passcodes).",
|
||
"type": "string"
|
||
},
|
||
"email": {
|
||
"description": "Reserved.",
|
||
"type": "string"
|
||
},
|
||
"password": {
|
||
"description": "The user's Password.",
|
||
"type": "string"
|
||
},
|
||
"token": {
|
||
"description": "Share Token.",
|
||
"type": "string"
|
||
},
|
||
"username": {
|
||
"description": "The local Username or LDAP user principal name (UPN).",
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Marker": {
|
||
"properties": {
|
||
"FileUID": {
|
||
"type": "string"
|
||
},
|
||
"H": {
|
||
"type": "number"
|
||
},
|
||
"Invalid": {
|
||
"type": "boolean"
|
||
},
|
||
"MarkerReview": {
|
||
"type": "boolean"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Src": {
|
||
"type": "string"
|
||
},
|
||
"SubjSrc": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"W": {
|
||
"type": "number"
|
||
},
|
||
"X": {
|
||
"type": "number"
|
||
},
|
||
"Y": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.OAuthCreateToken": {
|
||
"properties": {
|
||
"assertion": {
|
||
"type": "string"
|
||
},
|
||
"client_id": {
|
||
"type": "string"
|
||
},
|
||
"client_name": {
|
||
"type": "string"
|
||
},
|
||
"client_secret": {
|
||
"type": "string"
|
||
},
|
||
"code": {
|
||
"type": "string"
|
||
},
|
||
"code_verifier": {
|
||
"type": "string"
|
||
},
|
||
"expires_in": {
|
||
"type": "integer"
|
||
},
|
||
"grant_type": {
|
||
"$ref": "#/definitions/authn.GrantType"
|
||
},
|
||
"password": {
|
||
"type": "string"
|
||
},
|
||
"redirect_uri": {
|
||
"type": "string"
|
||
},
|
||
"refresh_token": {
|
||
"type": "string"
|
||
},
|
||
"scope": {
|
||
"type": "string"
|
||
},
|
||
"username": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.OAuthRevokeToken": {
|
||
"properties": {
|
||
"token": {
|
||
"type": "string"
|
||
},
|
||
"token_type_hint": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"required": [
|
||
"token"
|
||
],
|
||
"type": "object"
|
||
},
|
||
"form.Passcode": {
|
||
"properties": {
|
||
"code": {
|
||
"type": "string"
|
||
},
|
||
"password": {
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Photo": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Selection": {
|
||
"properties": {
|
||
"albums": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"all": {
|
||
"type": "boolean"
|
||
},
|
||
"files": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"labels": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"photos": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"places": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"subjects": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Service": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.Subject": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.UploadOptions": {
|
||
"properties": {
|
||
"albums": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.User": {
|
||
"properties": {
|
||
"Attr": {
|
||
"type": "string"
|
||
},
|
||
"AuthID": {
|
||
"type": "string"
|
||
},
|
||
"AuthIssuer": {
|
||
"type": "string"
|
||
},
|
||
"AuthMethod": {
|
||
"type": "string"
|
||
},
|
||
"AuthProvider": {
|
||
"type": "string"
|
||
},
|
||
"BasePath": {
|
||
"type": "string"
|
||
},
|
||
"CanLogin": {
|
||
"type": "boolean"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Details": {
|
||
"$ref": "#/definitions/form.UserDetails"
|
||
},
|
||
"DisplayName": {
|
||
"type": "string"
|
||
},
|
||
"Email": {
|
||
"type": "string"
|
||
},
|
||
"Name": {
|
||
"type": "string"
|
||
},
|
||
"Password": {
|
||
"type": "string"
|
||
},
|
||
"Role": {
|
||
"type": "string"
|
||
},
|
||
"Scope": {
|
||
"type": "string"
|
||
},
|
||
"SuperAdmin": {
|
||
"type": "boolean"
|
||
},
|
||
"UploadPath": {
|
||
"type": "string"
|
||
},
|
||
"WebDAV": {
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"form.UserDetails": {
|
||
"properties": {
|
||
"About": {
|
||
"type": "string"
|
||
},
|
||
"Bio": {
|
||
"type": "string"
|
||
},
|
||
"BirthDay": {
|
||
"type": "integer"
|
||
},
|
||
"BirthMonth": {
|
||
"type": "integer"
|
||
},
|
||
"BirthYear": {
|
||
"type": "integer"
|
||
},
|
||
"Country": {
|
||
"type": "string"
|
||
},
|
||
"FamilyName": {
|
||
"type": "string"
|
||
},
|
||
"FeedURL": {
|
||
"type": "string"
|
||
},
|
||
"Gender": {
|
||
"type": "string"
|
||
},
|
||
"GivenName": {
|
||
"type": "string"
|
||
},
|
||
"Location": {
|
||
"type": "string"
|
||
},
|
||
"MiddleName": {
|
||
"type": "string"
|
||
},
|
||
"NameSrc": {
|
||
"type": "string"
|
||
},
|
||
"NameSuffix": {
|
||
"type": "string"
|
||
},
|
||
"NameTitle": {
|
||
"type": "string"
|
||
},
|
||
"NickName": {
|
||
"type": "string"
|
||
},
|
||
"OrgEmail": {
|
||
"type": "string"
|
||
},
|
||
"OrgName": {
|
||
"type": "string"
|
||
},
|
||
"OrgPhone": {
|
||
"type": "string"
|
||
},
|
||
"OrgTitle": {
|
||
"type": "string"
|
||
},
|
||
"OrgURL": {
|
||
"type": "string"
|
||
},
|
||
"Phone": {
|
||
"type": "string"
|
||
},
|
||
"ProfileURL": {
|
||
"type": "string"
|
||
},
|
||
"SiteURL": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"gin.H": {
|
||
"additionalProperties": {},
|
||
"type": "object"
|
||
},
|
||
"i18n.Response": {
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer"
|
||
},
|
||
"details": {
|
||
"type": "string"
|
||
},
|
||
"error": {
|
||
"type": "string"
|
||
},
|
||
"message": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.Bucket": {
|
||
"properties": {
|
||
"cumulative_count": {
|
||
"description": "Cumulative in increasing order.",
|
||
"type": "integer"
|
||
},
|
||
"cumulative_count_float": {
|
||
"description": "Overrides cumulative_count if \u003e 0.",
|
||
"type": "number"
|
||
},
|
||
"exemplar": {
|
||
"$ref": "#/definitions/io_prometheus_client.Exemplar"
|
||
},
|
||
"upper_bound": {
|
||
"description": "Inclusive.",
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.BucketSpan": {
|
||
"properties": {
|
||
"length": {
|
||
"description": "Length of consecutive buckets.",
|
||
"type": "integer"
|
||
},
|
||
"offset": {
|
||
"description": "Gap to previous span, or starting point for 1st span (which can be negative).",
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.Counter": {
|
||
"properties": {
|
||
"created_timestamp": {
|
||
"$ref": "#/definitions/timestamppb.Timestamp"
|
||
},
|
||
"exemplar": {
|
||
"$ref": "#/definitions/io_prometheus_client.Exemplar"
|
||
},
|
||
"value": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.Exemplar": {
|
||
"properties": {
|
||
"label": {
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.LabelPair"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"timestamp": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/timestamppb.Timestamp"
|
||
}
|
||
],
|
||
"description": "OpenMetrics-style."
|
||
},
|
||
"value": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.Gauge": {
|
||
"properties": {
|
||
"value": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.Histogram": {
|
||
"properties": {
|
||
"bucket": {
|
||
"description": "Buckets for the conventional histogram.",
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.Bucket"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"created_timestamp": {
|
||
"$ref": "#/definitions/timestamppb.Timestamp"
|
||
},
|
||
"exemplars": {
|
||
"description": "Only used for native histograms. These exemplars MUST have a timestamp.",
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.Exemplar"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"negative_count": {
|
||
"description": "Absolute count of each bucket.",
|
||
"items": {
|
||
"type": "number"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"negative_delta": {
|
||
"description": "Use either \"negative_delta\" or \"negative_count\", the former for\nregular histograms with integer counts, the latter for float\nhistograms.",
|
||
"items": {
|
||
"type": "integer"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"negative_span": {
|
||
"description": "Negative buckets for the native histogram.",
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.BucketSpan"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"positive_count": {
|
||
"description": "Absolute count of each bucket.",
|
||
"items": {
|
||
"type": "number"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"positive_delta": {
|
||
"description": "Use either \"positive_delta\" or \"positive_count\", the former for\nregular histograms with integer counts, the latter for float\nhistograms.",
|
||
"items": {
|
||
"type": "integer"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"positive_span": {
|
||
"description": "Positive buckets for the native histogram.\nUse a no-op span (offset 0, length 0) for a native histogram without any\nobservations yet and with a zero_threshold of 0. Otherwise, it would be\nindistinguishable from a classic histogram.",
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.BucketSpan"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"sample_count": {
|
||
"type": "integer"
|
||
},
|
||
"sample_count_float": {
|
||
"description": "Overrides sample_count if \u003e 0.",
|
||
"type": "number"
|
||
},
|
||
"sample_sum": {
|
||
"type": "number"
|
||
},
|
||
"schema": {
|
||
"description": "schema defines the bucket schema. Currently, valid numbers are -4 \u003c= n \u003c= 8.\nThey are all for base-2 bucket schemas, where 1 is a bucket boundary in each case, and\nthen each power of two is divided into 2^n logarithmic buckets.\nOr in other words, each bucket boundary is the previous boundary times 2^(2^-n).\nIn the future, more bucket schemas may be added using numbers \u003c -4 or \u003e 8.",
|
||
"type": "integer"
|
||
},
|
||
"zero_count": {
|
||
"description": "Count in zero bucket.",
|
||
"type": "integer"
|
||
},
|
||
"zero_count_float": {
|
||
"description": "Overrides sb_zero_count if \u003e 0.",
|
||
"type": "number"
|
||
},
|
||
"zero_threshold": {
|
||
"description": "Breadth of the zero bucket.",
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.LabelPair": {
|
||
"properties": {
|
||
"name": {
|
||
"type": "string"
|
||
},
|
||
"value": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.Metric": {
|
||
"properties": {
|
||
"counter": {
|
||
"$ref": "#/definitions/io_prometheus_client.Counter"
|
||
},
|
||
"gauge": {
|
||
"$ref": "#/definitions/io_prometheus_client.Gauge"
|
||
},
|
||
"histogram": {
|
||
"$ref": "#/definitions/io_prometheus_client.Histogram"
|
||
},
|
||
"label": {
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.LabelPair"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"summary": {
|
||
"$ref": "#/definitions/io_prometheus_client.Summary"
|
||
},
|
||
"timestamp_ms": {
|
||
"type": "integer"
|
||
},
|
||
"untyped": {
|
||
"$ref": "#/definitions/io_prometheus_client.Untyped"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.MetricFamily": {
|
||
"properties": {
|
||
"help": {
|
||
"type": "string"
|
||
},
|
||
"metric": {
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.Metric"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"name": {
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"$ref": "#/definitions/io_prometheus_client.MetricType"
|
||
},
|
||
"unit": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.MetricType": {
|
||
"enum": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5
|
||
],
|
||
"format": "int32",
|
||
"type": "integer",
|
||
"x-enum-varnames": [
|
||
"MetricType_COUNTER",
|
||
"MetricType_GAUGE",
|
||
"MetricType_SUMMARY",
|
||
"MetricType_UNTYPED",
|
||
"MetricType_HISTOGRAM",
|
||
"MetricType_GAUGE_HISTOGRAM"
|
||
]
|
||
},
|
||
"io_prometheus_client.Quantile": {
|
||
"properties": {
|
||
"quantile": {
|
||
"type": "number"
|
||
},
|
||
"value": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.Summary": {
|
||
"properties": {
|
||
"created_timestamp": {
|
||
"$ref": "#/definitions/timestamppb.Timestamp"
|
||
},
|
||
"quantile": {
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.Quantile"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"sample_count": {
|
||
"type": "integer"
|
||
},
|
||
"sample_sum": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"io_prometheus_client.Untyped": {
|
||
"properties": {
|
||
"value": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"nsfw.Result": {
|
||
"properties": {
|
||
"drawing": {
|
||
"format": "float32",
|
||
"type": "number"
|
||
},
|
||
"hentai": {
|
||
"format": "float32",
|
||
"type": "number"
|
||
},
|
||
"neutral": {
|
||
"format": "float32",
|
||
"type": "number"
|
||
},
|
||
"porn": {
|
||
"format": "float32",
|
||
"type": "number"
|
||
},
|
||
"sexy": {
|
||
"format": "float32",
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"places.Location": {
|
||
"properties": {
|
||
"category": {
|
||
"type": "string"
|
||
},
|
||
"country": {
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"type": "string"
|
||
},
|
||
"lat": {
|
||
"type": "number"
|
||
},
|
||
"licence": {
|
||
"type": "string"
|
||
},
|
||
"lng": {
|
||
"type": "number"
|
||
},
|
||
"locale": {
|
||
"type": "string"
|
||
},
|
||
"name": {
|
||
"type": "string"
|
||
},
|
||
"place": {
|
||
"$ref": "#/definitions/places.Place"
|
||
},
|
||
"postcode": {
|
||
"type": "string"
|
||
},
|
||
"street": {
|
||
"type": "string"
|
||
},
|
||
"timezone": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"places.Place": {
|
||
"properties": {
|
||
"city": {
|
||
"type": "string"
|
||
},
|
||
"country": {
|
||
"type": "string"
|
||
},
|
||
"district": {
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"type": "string"
|
||
},
|
||
"keywords": {
|
||
"type": "string"
|
||
},
|
||
"label": {
|
||
"type": "string"
|
||
},
|
||
"state": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"places.SearchResult": {
|
||
"properties": {
|
||
"bbox": {
|
||
"items": {
|
||
"type": "number"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"city": {
|
||
"type": "string"
|
||
},
|
||
"country": {
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"type": "string"
|
||
},
|
||
"importance": {
|
||
"type": "number"
|
||
},
|
||
"lat": {
|
||
"type": "number"
|
||
},
|
||
"licence": {
|
||
"type": "string"
|
||
},
|
||
"lng": {
|
||
"type": "number"
|
||
},
|
||
"name": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"search.Album": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"search.Face": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"search.GeoResult": {
|
||
"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"
|
||
},
|
||
"TimeZone": {
|
||
"type": "string"
|
||
},
|
||
"Title": {
|
||
"type": "string"
|
||
},
|
||
"Type": {
|
||
"type": "string"
|
||
},
|
||
"UID": {
|
||
"type": "string"
|
||
},
|
||
"Width": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"search.Label": {
|
||
"properties": {
|
||
"CreatedAt": {
|
||
"type": "string"
|
||
},
|
||
"CustomSlug": {
|
||
"type": "string"
|
||
},
|
||
"DeletedAt": {
|
||
"type": "string"
|
||
},
|
||
"Description": {
|
||
"type": "string"
|
||
},
|
||
"Favorite": {
|
||
"type": "boolean"
|
||
},
|
||
"ID": {
|
||
"type": "integer"
|
||
},
|
||
"NSFW": {
|
||
"type": "boolean"
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"search.Photo": {
|
||
"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"
|
||
},
|
||
"DetailsArtist": {
|
||
"type": "string"
|
||
},
|
||
"DetailsCopyright": {
|
||
"type": "string"
|
||
},
|
||
"DetailsKeywords": {
|
||
"description": "Additional information from the details table.",
|
||
"type": "string"
|
||
},
|
||
"DetailsLicense": {
|
||
"type": "string"
|
||
},
|
||
"DetailsSubject": {
|
||
"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": {
|
||
"description": "List of files if search results are merged.",
|
||
"items": {
|
||
"$ref": "#/definitions/entity.File"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"search.Subject": {
|
||
"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"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"sql.NullTime": {
|
||
"properties": {
|
||
"time": {
|
||
"type": "string"
|
||
},
|
||
"valid": {
|
||
"description": "Valid is true if Time is not NULL",
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"tensorflow.ColorChannelOrder": {
|
||
"enum": [
|
||
0
|
||
],
|
||
"type": "integer",
|
||
"x-enum-varnames": [
|
||
"UndefinedOrder"
|
||
]
|
||
},
|
||
"tensorflow.Interval": {
|
||
"properties": {
|
||
"end": {
|
||
"type": "number"
|
||
},
|
||
"mean": {
|
||
"type": "number"
|
||
},
|
||
"start": {
|
||
"type": "number"
|
||
},
|
||
"stdDev": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"tensorflow.ModelInfo": {
|
||
"properties": {
|
||
"input": {
|
||
"$ref": "#/definitions/tensorflow.PhotoInput"
|
||
},
|
||
"output": {
|
||
"$ref": "#/definitions/tensorflow.ModelOutput"
|
||
},
|
||
"tags": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"tensorflow.ModelOutput": {
|
||
"properties": {
|
||
"index": {
|
||
"type": "integer"
|
||
},
|
||
"logits": {
|
||
"type": "boolean"
|
||
},
|
||
"name": {
|
||
"type": "string"
|
||
},
|
||
"outputs": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"tensorflow.PhotoInput": {
|
||
"properties": {
|
||
"height": {
|
||
"type": "integer"
|
||
},
|
||
"index": {
|
||
"type": "integer"
|
||
},
|
||
"inputOrder": {
|
||
"$ref": "#/definitions/tensorflow.ColorChannelOrder"
|
||
},
|
||
"intervals": {
|
||
"items": {
|
||
"$ref": "#/definitions/tensorflow.Interval"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"name": {
|
||
"type": "string"
|
||
},
|
||
"resizeOperation": {
|
||
"$ref": "#/definitions/tensorflow.ResizeOperation"
|
||
},
|
||
"shape": {
|
||
"items": {
|
||
"$ref": "#/definitions/tensorflow.ShapeComponent"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"width": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"tensorflow.ResizeOperation": {
|
||
"enum": [
|
||
0,
|
||
1,
|
||
2,
|
||
3
|
||
],
|
||
"type": "integer",
|
||
"x-enum-varnames": [
|
||
"UndefinedResizeOperation",
|
||
"ResizeBreakAspectRatio",
|
||
"CenterCrop",
|
||
"Padding"
|
||
]
|
||
},
|
||
"tensorflow.ShapeComponent": {
|
||
"enum": [
|
||
"Batch"
|
||
],
|
||
"type": "string",
|
||
"x-enum-varnames": [
|
||
"ShapeBatch"
|
||
]
|
||
},
|
||
"time.Duration": {
|
||
"format": "int64",
|
||
"type": "integer"
|
||
},
|
||
"timestamppb.Timestamp": {
|
||
"properties": {
|
||
"nanos": {
|
||
"description": "Non-negative fractions of a second at nanosecond resolution. This field is\nthe nanosecond portion of the duration, not an alternative to seconds.\nNegative second values with fractions must still have non-negative nanos\nvalues that count forward in time. Must be between 0 and 999,999,999\ninclusive.",
|
||
"type": "integer"
|
||
},
|
||
"seconds": {
|
||
"description": "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must\nbe between -315576000000 and 315576000000 inclusive (which corresponds to\n0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).",
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"vision.ApiFormat": {
|
||
"enum": [
|
||
"url",
|
||
"images",
|
||
"vision",
|
||
"ollama",
|
||
"openai"
|
||
],
|
||
"type": "string",
|
||
"x-enum-varnames": [
|
||
"ApiFormatUrl",
|
||
"ApiFormatImages",
|
||
"ApiFormatVision",
|
||
"ApiFormatOllama",
|
||
"ApiFormatOpenAI"
|
||
]
|
||
},
|
||
"vision.ApiRequest": {
|
||
"properties": {
|
||
"context": {
|
||
"items": {
|
||
"type": "integer"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"format": {
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"type": "string"
|
||
},
|
||
"images": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"model": {
|
||
"type": "string"
|
||
},
|
||
"options": {
|
||
"$ref": "#/definitions/vision.ModelOptions"
|
||
},
|
||
"org": {
|
||
"type": "string"
|
||
},
|
||
"project": {
|
||
"type": "string"
|
||
},
|
||
"prompt": {
|
||
"type": "string"
|
||
},
|
||
"schema": {
|
||
"items": {
|
||
"type": "integer"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"stream": {
|
||
"type": "boolean"
|
||
},
|
||
"suffix": {
|
||
"type": "string"
|
||
},
|
||
"system": {
|
||
"type": "string"
|
||
},
|
||
"url": {
|
||
"type": "string"
|
||
},
|
||
"version": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"vision.ApiResponse": {
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer"
|
||
},
|
||
"error": {
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"type": "string"
|
||
},
|
||
"model": {
|
||
"$ref": "#/definitions/vision.Model"
|
||
},
|
||
"result": {
|
||
"$ref": "#/definitions/vision.ApiResult"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"vision.ApiResult": {
|
||
"properties": {
|
||
"caption": {
|
||
"$ref": "#/definitions/vision.CaptionResult"
|
||
},
|
||
"embeddings": {
|
||
"items": {
|
||
"items": {
|
||
"items": {
|
||
"format": "float64",
|
||
"type": "number"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"labels": {
|
||
"items": {
|
||
"$ref": "#/definitions/vision.LabelResult"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"nsfw": {
|
||
"items": {
|
||
"$ref": "#/definitions/nsfw.Result"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"vision.CaptionResult": {
|
||
"properties": {
|
||
"confidence": {
|
||
"type": "number"
|
||
},
|
||
"source": {
|
||
"type": "string"
|
||
},
|
||
"text": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"vision.LabelResult": {
|
||
"properties": {
|
||
"categories": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"confidence": {
|
||
"type": "number"
|
||
},
|
||
"name": {
|
||
"type": "string"
|
||
},
|
||
"nsfw": {
|
||
"type": "boolean"
|
||
},
|
||
"nsfw_confidence": {
|
||
"type": "number"
|
||
},
|
||
"priority": {
|
||
"type": "integer"
|
||
},
|
||
"source": {
|
||
"type": "string"
|
||
},
|
||
"topicality": {
|
||
"type": "number"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"vision.Model": {
|
||
"properties": {
|
||
"Run": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/vision.RunType"
|
||
}
|
||
],
|
||
"description": "\"auto\", \"never\", \"manual\", \"always\", \"newly-indexed\", \"on-schedule\""
|
||
},
|
||
"default": {
|
||
"type": "boolean"
|
||
},
|
||
"disabled": {
|
||
"type": "boolean"
|
||
},
|
||
"engine": {
|
||
"$ref": "#/definitions/vision.ModelEngine"
|
||
},
|
||
"format": {
|
||
"type": "string"
|
||
},
|
||
"model": {
|
||
"type": "string"
|
||
},
|
||
"name": {
|
||
"type": "string"
|
||
},
|
||
"options": {
|
||
"$ref": "#/definitions/vision.ModelOptions"
|
||
},
|
||
"prompt": {
|
||
"type": "string"
|
||
},
|
||
"resolution": {
|
||
"type": "integer"
|
||
},
|
||
"schema": {
|
||
"type": "string"
|
||
},
|
||
"schemaFile": {
|
||
"type": "string"
|
||
},
|
||
"service": {
|
||
"$ref": "#/definitions/vision.Service"
|
||
},
|
||
"system": {
|
||
"type": "string"
|
||
},
|
||
"tensorflow": {
|
||
"$ref": "#/definitions/tensorflow.ModelInfo"
|
||
},
|
||
"type": {
|
||
"$ref": "#/definitions/vision.ModelType"
|
||
},
|
||
"version": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"vision.ModelEngine": {
|
||
"enum": [
|
||
"vision",
|
||
"tensorflow",
|
||
"local"
|
||
],
|
||
"type": "string",
|
||
"x-enum-varnames": [
|
||
"EngineVision",
|
||
"EngineTensorFlow",
|
||
"EngineLocal"
|
||
]
|
||
},
|
||
"vision.ModelOptions": {
|
||
"properties": {
|
||
"combine_outputs": {
|
||
"description": "OpenAI",
|
||
"type": "string"
|
||
},
|
||
"detail": {
|
||
"description": "OpenAI",
|
||
"type": "string"
|
||
},
|
||
"force_json": {
|
||
"description": "Ollama, OpenAI",
|
||
"type": "boolean"
|
||
},
|
||
"frequency_penalty": {
|
||
"description": "OpenAI",
|
||
"type": "number"
|
||
},
|
||
"low_vram": {
|
||
"description": "Ollama",
|
||
"type": "boolean"
|
||
},
|
||
"main_gpu": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"max_output_tokens": {
|
||
"description": "Ollama, OpenAI",
|
||
"type": "integer"
|
||
},
|
||
"min_p": {
|
||
"description": "Ollama",
|
||
"type": "number"
|
||
},
|
||
"mirostat": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"mirostat_eta": {
|
||
"description": "Ollama",
|
||
"type": "number"
|
||
},
|
||
"mirostat_tau": {
|
||
"description": "Ollama",
|
||
"type": "number"
|
||
},
|
||
"num_batch": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"num_ctx": {
|
||
"description": "Ollama, OpenAI",
|
||
"type": "integer"
|
||
},
|
||
"num_gpu": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"num_keep": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"num_predict": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"num_thread": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"numa": {
|
||
"description": "Ollama",
|
||
"type": "boolean"
|
||
},
|
||
"penalize_newline": {
|
||
"description": "Ollama",
|
||
"type": "boolean"
|
||
},
|
||
"presence_penalty": {
|
||
"description": "OpenAI",
|
||
"type": "number"
|
||
},
|
||
"repeat_last_n": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"repeat_penalty": {
|
||
"description": "Ollama",
|
||
"type": "number"
|
||
},
|
||
"schema_version": {
|
||
"description": "Ollama, OpenAI",
|
||
"type": "string"
|
||
},
|
||
"seed": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"stop": {
|
||
"description": "Ollama, OpenAI",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array"
|
||
},
|
||
"temperature": {
|
||
"description": "Ollama, OpenAI",
|
||
"type": "number"
|
||
},
|
||
"tfs_z": {
|
||
"description": "Ollama",
|
||
"type": "number"
|
||
},
|
||
"top_k": {
|
||
"description": "Ollama",
|
||
"type": "integer"
|
||
},
|
||
"top_p": {
|
||
"description": "Ollama, OpenAI",
|
||
"type": "number"
|
||
},
|
||
"typical_p": {
|
||
"description": "Ollama",
|
||
"type": "number"
|
||
},
|
||
"use_mlock": {
|
||
"description": "Ollama",
|
||
"type": "boolean"
|
||
},
|
||
"use_mmap": {
|
||
"description": "Ollama",
|
||
"type": "boolean"
|
||
},
|
||
"vocab_only": {
|
||
"description": "Ollama",
|
||
"type": "boolean"
|
||
}
|
||
},
|
||
"type": "object"
|
||
},
|
||
"vision.ModelType": {
|
||
"enum": [
|
||
"labels",
|
||
"nsfw",
|
||
"face",
|
||
"caption",
|
||
"generate"
|
||
],
|
||
"type": "string",
|
||
"x-enum-varnames": [
|
||
"ModelTypeLabels",
|
||
"ModelTypeNsfw",
|
||
"ModelTypeFace",
|
||
"ModelTypeCaption",
|
||
"ModelTypeGenerate"
|
||
]
|
||
},
|
||
"vision.RunType": {
|
||
"enum": [
|
||
"",
|
||
"never",
|
||
"manual",
|
||
"always",
|
||
"newly-indexed",
|
||
"on-demand",
|
||
"on-schedule",
|
||
"on-index"
|
||
],
|
||
"type": "string",
|
||
"x-enum-varnames": [
|
||
"RunAuto",
|
||
"RunNever",
|
||
"RunManual",
|
||
"RunAlways",
|
||
"RunNewlyIndexed",
|
||
"RunOnDemand",
|
||
"RunOnSchedule",
|
||
"RunOnIndex"
|
||
]
|
||
},
|
||
"vision.Service": {
|
||
"properties": {
|
||
"disabled": {
|
||
"type": "boolean"
|
||
},
|
||
"fileScheme": {
|
||
"type": "string"
|
||
},
|
||
"method": {
|
||
"type": "string"
|
||
},
|
||
"model": {
|
||
"description": "Optional endpoint-specific model override.",
|
||
"type": "string"
|
||
},
|
||
"org": {
|
||
"description": "Optional organization header (e.g. OpenAI).",
|
||
"type": "string"
|
||
},
|
||
"project": {
|
||
"description": "Optional project header (e.g. OpenAI).",
|
||
"type": "string"
|
||
},
|
||
"requestFormat": {
|
||
"$ref": "#/definitions/vision.ApiFormat"
|
||
},
|
||
"responseFormat": {
|
||
"$ref": "#/definitions/vision.ApiFormat"
|
||
},
|
||
"uri": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"type": "object"
|
||
}
|
||
},
|
||
"externalDocs": {
|
||
"description": "Learn more ›",
|
||
"url": "https://docs.photoprism.app/developer-guide/api/"
|
||
},
|
||
"host": "demo.photoprism.app",
|
||
"info": {
|
||
"contact": {},
|
||
"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",
|
||
"version": "v1"
|
||
},
|
||
"paths": {
|
||
"/api/v1/albums": {
|
||
"get": {
|
||
"operationId": "SearchAlbums",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of results",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search result offset",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "sort order",
|
||
"enum": [
|
||
"favorites",
|
||
"name",
|
||
"title",
|
||
"added",
|
||
"edited"
|
||
],
|
||
"in": "query",
|
||
"name": "order",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "search query",
|
||
"in": "query",
|
||
"name": "q",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/search.Album"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "finds albums and returns them as JSON",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"description": "Posting a title that matches a soft-deleted manual album restores it (including existing photo assignments). Use DELETE with `force=true` to purge an album before recreating it from scratch.",
|
||
"operationId": "CreateAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "properties of the album to be created (currently supports Title and Favorite)",
|
||
"in": "body",
|
||
"name": "album",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Album"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Album"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created",
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "creates a new album",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DeleteAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "Set to true to permanently delete a manual album instead of archiving it.",
|
||
"in": "query",
|
||
"name": "force",
|
||
"type": "boolean"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "deletes an existing album",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
},
|
||
"get": {
|
||
"operationId": "GetAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns album details as JSON",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to be updated",
|
||
"in": "body",
|
||
"name": "album",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Album"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "updates album metadata like title and description",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/clone": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "CloneAlbums",
|
||
"parameters": [
|
||
{
|
||
"description": "Album Selection",
|
||
"in": "body",
|
||
"name": "albums",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
},
|
||
{
|
||
"description": "UID of the album to which the pictures are to be added",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "creates a new album containing pictures from other albums",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/dl": {
|
||
"get": {
|
||
"operationId": "DownloadAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/zip"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "streams the album contents as zip archive",
|
||
"tags": [
|
||
"Albums",
|
||
"Download"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/like": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DislikeAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes the favorite flag from an album",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "LikeAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "sets the favorite flag for an album",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/links": {
|
||
"get": {
|
||
"operationId": "GetAlbumLinks",
|
||
"parameters": [
|
||
{
|
||
"description": "album uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns all share links for the given UID as JSON",
|
||
"tags": [
|
||
"Links",
|
||
"Albums"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "CreateAlbumLink",
|
||
"parameters": [
|
||
{
|
||
"description": "album uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "link properties (currently supported: slug, expires)",
|
||
"in": "body",
|
||
"name": "link",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Link"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "adds a new album share link and return it as JSON",
|
||
"tags": [
|
||
"Links",
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/links/{linkuid}": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DeleteAlbumLink",
|
||
"parameters": [
|
||
{
|
||
"description": "album",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "link uid",
|
||
"in": "path",
|
||
"name": "linkuid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "deletes an album share link",
|
||
"tags": [
|
||
"Links",
|
||
"Albums"
|
||
]
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateAlbumLink",
|
||
"parameters": [
|
||
{
|
||
"description": "album uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "link uid",
|
||
"in": "path",
|
||
"name": "linkuid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to be updated (currently supported: slug, expires, token)",
|
||
"in": "body",
|
||
"name": "link",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Link"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "updates an album share link and return it as JSON",
|
||
"tags": [
|
||
"Links",
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/photos": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "RemovePhotosFromAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"in": "body",
|
||
"name": "photos",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
},
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes photos from an album",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "AddPhotosToAlbum",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"in": "body",
|
||
"name": "photos",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
},
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "adds photos to an album",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/albums/{uid}/t/{token}/{size}": {
|
||
"get": {
|
||
"operationId": "AlbumCover",
|
||
"parameters": [
|
||
{
|
||
"description": "Album UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "user-specific security token provided with session or 'public' when running PhotoPrism in public mode",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "thumbnail size",
|
||
"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"
|
||
],
|
||
"in": "path",
|
||
"name": "size",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"image/jpeg",
|
||
"image/svg+xml"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns an album cover image",
|
||
"tags": [
|
||
"Images",
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/batch/albums/delete": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "BatchAlbumsDelete",
|
||
"parameters": [
|
||
{
|
||
"description": "Album Selection",
|
||
"in": "body",
|
||
"name": "albums",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "permanently removes multiple albums",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/batch/labels/delete": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "BatchLabelsDelete",
|
||
"parameters": [
|
||
{
|
||
"description": "Label Selection",
|
||
"in": "body",
|
||
"name": "labels",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "deletes multiple labels",
|
||
"tags": [
|
||
"Labels"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/approve": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "BatchPhotosApprove",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"in": "body",
|
||
"name": "photos",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "approves multiple photos that are currently under review",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/archive": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "BatchPhotosArchive",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"in": "body",
|
||
"name": "photos",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "moves multiple photos to the archive",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/delete": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "BatchPhotosDelete",
|
||
"parameters": [
|
||
{
|
||
"description": "All or Photo Selection",
|
||
"in": "body",
|
||
"name": "photos",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "permanently removes multiple or all photos from the archive",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/edit": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "BatchPhotosEdit",
|
||
"parameters": [
|
||
{
|
||
"description": "photos selection and values",
|
||
"in": "body",
|
||
"name": "Request",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/batch.PhotosRequest"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/batch.PhotosResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns and updates the metadata of multiple photos",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/private": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "BatchPhotosPrivate",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"in": "body",
|
||
"name": "photos",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "toggles private state of multiple photos",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/batch/photos/restore": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "BatchPhotosRestore",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo Selection",
|
||
"in": "body",
|
||
"name": "photos",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Selection"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "restores multiple photos from the archive",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/cluster": {
|
||
"get": {
|
||
"operationId": "ClusterSummary",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/cluster.SummaryResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "cluster summary",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/cluster/health": {
|
||
"get": {
|
||
"operationId": "ClusterHealth",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/api.HealthResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "cluster health",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/cluster/metrics": {
|
||
"get": {
|
||
"operationId": "ClusterMetrics",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/cluster.MetricsResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "temporary cluster metrics (counts only)",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/cluster/nodes": {
|
||
"get": {
|
||
"operationId": "ClusterListNodes",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of results (default 100, max 1000)",
|
||
"in": "query",
|
||
"maximum": 1000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "result offset",
|
||
"in": "query",
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/cluster.Node"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "lists registered nodes",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/cluster/nodes/register": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "ClusterNodesRegister",
|
||
"parameters": [
|
||
{
|
||
"description": "registration payload (NodeName required; optional: NodeRole, Labels, AdvertiseUrl, SiteUrl, AppName, AppVersion, Theme; to authorize UUID/name changes include ClientID+ClientSecret; rotation: RotateDatabase, RotateSecret)",
|
||
"in": "body",
|
||
"name": "request",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "object"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/cluster.RegisterResponse"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created",
|
||
"schema": {
|
||
"$ref": "#/definitions/cluster.RegisterResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "registers a node, provisions DB credentials, and issues ClientSecret",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/cluster/nodes/{uuid}": {
|
||
"delete": {
|
||
"operationId": "ClusterDeleteNode",
|
||
"parameters": [
|
||
{
|
||
"description": "node uuid",
|
||
"in": "path",
|
||
"name": "uuid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/cluster.StatusResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "delete node by uuid",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
},
|
||
"get": {
|
||
"operationId": "ClusterGetNode",
|
||
"parameters": [
|
||
{
|
||
"description": "node uuid",
|
||
"in": "path",
|
||
"name": "uuid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/cluster.Node"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "get node by uuid",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
},
|
||
"patch": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "ClusterUpdateNode",
|
||
"parameters": [
|
||
{
|
||
"description": "node uuid",
|
||
"in": "path",
|
||
"name": "uuid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to update (Role, Labels, AdvertiseUrl, SiteUrl)",
|
||
"in": "body",
|
||
"name": "node",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "object"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/cluster.StatusResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "update node fields",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/cluster/theme": {
|
||
"get": {
|
||
"operationId": "ClusterGetTheme",
|
||
"produces": [
|
||
"application/zip"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns custom theme files as zip, if available",
|
||
"tags": [
|
||
"Cluster"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/config": {
|
||
"get": {
|
||
"operationId": "GetClientConfig",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "get client configuration",
|
||
"tags": [
|
||
"Config"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/config/options": {
|
||
"get": {
|
||
"operationId": "GetConfigOptions",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns backend config options",
|
||
"tags": [
|
||
"Config",
|
||
"Settings"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "SaveConfigOptions",
|
||
"parameters": [
|
||
{
|
||
"description": "properties to be updated (only submit values that should be changed)",
|
||
"in": "body",
|
||
"name": "options",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/config.Options"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "updates backend config options",
|
||
"tags": [
|
||
"Config",
|
||
"Settings"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/connect/{name}": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "ConnectService",
|
||
"parameters": [
|
||
{
|
||
"description": "service name (e.g., hub)",
|
||
"in": "path",
|
||
"name": "name",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "connection token",
|
||
"in": "body",
|
||
"name": "connect",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Connect"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "confirm external service accounts using a token",
|
||
"tags": [
|
||
"Config"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/dl/{file}": {
|
||
"get": {
|
||
"operationId": "GetDownload",
|
||
"parameters": [
|
||
{
|
||
"description": "file hash or unique download id",
|
||
"in": "path",
|
||
"name": "file",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/octet-stream"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns the raw file data",
|
||
"tags": [
|
||
"Images",
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/echo": {
|
||
"get": {
|
||
"operationId": "Echo",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK"
|
||
}
|
||
},
|
||
"summary": "returns the request and response headers as JSON if debug mode is enabled",
|
||
"tags": [
|
||
"Debug"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/errors": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DeleteErrors",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes all entries from the error logs",
|
||
"tags": [
|
||
"Logs"
|
||
]
|
||
},
|
||
"get": {
|
||
"operationId": "GetErrors",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of results",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search result offset",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search query",
|
||
"in": "query",
|
||
"name": "q",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "searches the error logs and returns the results as JSON",
|
||
"tags": [
|
||
"Logs"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/faces": {
|
||
"get": {
|
||
"operationId": "SearchFaces",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of results",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search result offset",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "sort order",
|
||
"enum": [
|
||
"subject",
|
||
"added",
|
||
"samples"
|
||
],
|
||
"in": "query",
|
||
"name": "order",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "show hidden",
|
||
"enum": [
|
||
"yes",
|
||
"no"
|
||
],
|
||
"in": "query",
|
||
"name": "hidden",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "show unknown",
|
||
"enum": [
|
||
"yes",
|
||
"no"
|
||
],
|
||
"in": "query",
|
||
"name": "unknown",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/search.Face"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "finds and returns faces as JSON",
|
||
"tags": [
|
||
"Faces"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/faces/{id}": {
|
||
"get": {
|
||
"operationId": "GetFace",
|
||
"parameters": [
|
||
{
|
||
"description": "face id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a face as JSON",
|
||
"tags": [
|
||
"Faces"
|
||
]
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateFace",
|
||
"parameters": [
|
||
{
|
||
"description": "face id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to be updated",
|
||
"in": "body",
|
||
"name": "face",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Face"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "updates face properties",
|
||
"tags": [
|
||
"Faces"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/feedback": {
|
||
"post": {
|
||
"operationId": "SendFeedback",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Feedback"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "allows members to submit a feedback message to the PhotoPrism team",
|
||
"tags": [
|
||
"Internal"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/files/{hash}": {
|
||
"get": {
|
||
"operationId": "GetFile",
|
||
"parameters": [
|
||
{
|
||
"description": "hash (string) SHA-1 hash of the file",
|
||
"in": "path",
|
||
"name": "hash",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns file details as JSON",
|
||
"tags": [
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/folders/import": {
|
||
"get": {
|
||
"operationId": "SearchFoldersImport",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/api.FoldersResponse"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "list folders in import",
|
||
"tags": [
|
||
"Folders"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/folders/originals": {
|
||
"get": {
|
||
"operationId": "SearchFoldersOriginals",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/api.FoldersResponse"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "list folders in originals",
|
||
"tags": [
|
||
"Folders"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/folders/t/{uid}/{token}/{size}": {
|
||
"get": {
|
||
"operationId": "FolderCover",
|
||
"parameters": [
|
||
{
|
||
"description": "folder uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "user-specific security token provided with session or 'public' when running PhotoPrism in public mode",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "thumbnail size",
|
||
"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"
|
||
],
|
||
"in": "path",
|
||
"name": "size",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"image/jpeg",
|
||
"image/svg+xml"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a folder cover image",
|
||
"tags": [
|
||
"Images",
|
||
"Folders"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/geo": {
|
||
"get": {
|
||
"operationId": "SearchGeo",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of files",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "file offset",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "excludes private pictures",
|
||
"in": "query",
|
||
"name": "public",
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"description": "minimum quality score (1-7)",
|
||
"enum": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7
|
||
],
|
||
"in": "query",
|
||
"name": "quality",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search query",
|
||
"in": "query",
|
||
"name": "q",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "album uid",
|
||
"in": "query",
|
||
"name": "s",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "photo path",
|
||
"in": "query",
|
||
"name": "path",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "is type video",
|
||
"in": "query",
|
||
"name": "video",
|
||
"type": "boolean"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/search.GeoResult"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "finds photos and returns results as JSON, so they can be displayed on a map or in a viewer",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/import": {
|
||
"delete": {
|
||
"operationId": "CancelImport",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "cancels the active import job",
|
||
"tags": [
|
||
"Library"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/import/": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "StartImport",
|
||
"parameters": [
|
||
{
|
||
"description": "import options",
|
||
"in": "body",
|
||
"name": "options",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.ImportOptions"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "start import",
|
||
"tags": [
|
||
"Library"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/index": {
|
||
"delete": {
|
||
"operationId": "CancelIndexing",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "cancels the active indexing job",
|
||
"tags": [
|
||
"Library"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "StartIndexing",
|
||
"parameters": [
|
||
{
|
||
"description": "index options",
|
||
"in": "body",
|
||
"name": "options",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.IndexOptions"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "start indexing",
|
||
"tags": [
|
||
"Library"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/labels": {
|
||
"get": {
|
||
"operationId": "SearchLabels",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of results",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search result offset",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "show all",
|
||
"in": "query",
|
||
"name": "all",
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"description": "search query",
|
||
"in": "query",
|
||
"name": "q",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "finds and returns labels as JSON",
|
||
"tags": [
|
||
"Labels"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/labels/{uid}": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateLabel",
|
||
"parameters": [
|
||
{
|
||
"description": "Label UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "Label Name",
|
||
"in": "body",
|
||
"name": "label",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Label"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "updates label name",
|
||
"tags": [
|
||
"Labels"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/labels/{uid}/like": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DislikeLabel",
|
||
"parameters": [
|
||
{
|
||
"description": "Label UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes favorite flag from a label",
|
||
"tags": [
|
||
"Labels"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "LikeLabel",
|
||
"parameters": [
|
||
{
|
||
"description": "Label UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "sets favorite flag for a label",
|
||
"tags": [
|
||
"Labels"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/labels/{uid}/t/{token}/{size}": {
|
||
"get": {
|
||
"operationId": "LabelCover",
|
||
"parameters": [
|
||
{
|
||
"description": "Label UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "user-specific security token provided with session or 'public' when running PhotoPrism in public mode",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "thumbnail size",
|
||
"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"
|
||
],
|
||
"in": "path",
|
||
"name": "size",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"image/jpeg",
|
||
"image/svg+xml"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a label cover image",
|
||
"tags": [
|
||
"Images",
|
||
"Labels"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/markers": {
|
||
"post": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"201": {
|
||
"description": "Created",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Marker"
|
||
}
|
||
}
|
||
},
|
||
"tags": [
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/markers/{marker_uid}": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateMarker",
|
||
"parameters": [
|
||
{
|
||
"description": "marker uid",
|
||
"in": "path",
|
||
"name": "marker_uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "marker properties",
|
||
"in": "body",
|
||
"name": "marker",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Marker"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Marker"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "update a marker (face/subject region)",
|
||
"tags": [
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/markers/{marker_uid}/subject": {
|
||
"delete": {
|
||
"operationId": "ClearMarkerSubject",
|
||
"parameters": [
|
||
{
|
||
"description": "marker uid",
|
||
"in": "path",
|
||
"name": "marker_uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Marker"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "clear the subject of a marker",
|
||
"tags": [
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/metrics": {
|
||
"get": {
|
||
"operationId": "GetMetrics",
|
||
"produces": [
|
||
"text/plain"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/io_prometheus_client.MetricFamily"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "a prometheus-compatible metrics endpoint for monitoring this instance",
|
||
"tags": [
|
||
"Metrics"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/moments/time": {
|
||
"get": {
|
||
"operationId": "GetMomentsTime",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns monthly albums as JSON",
|
||
"tags": [
|
||
"Albums"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/oauth/authorize": {
|
||
"get": {
|
||
"operationId": "OAuthAuthorize",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"405": {
|
||
"description": "Method Not Allowed",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "OAuth2 authorization endpoint (not implemented)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/oauth/revoke": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "OAuthRevoke",
|
||
"parameters": [
|
||
{
|
||
"description": "revoke request",
|
||
"in": "body",
|
||
"name": "request",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.OAuthRevokeToken"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "revoke an OAuth2 access token or session",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/oauth/token": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "OAuthToken",
|
||
"parameters": [
|
||
{
|
||
"description": "token request (supports client_credentials, password, or session grant)",
|
||
"in": "body",
|
||
"name": "request",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.OAuthCreateToken"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "create an OAuth2 access token",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/oauth/userinfo": {
|
||
"get": {
|
||
"operationId": "OAuthUserinfo",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"405": {
|
||
"description": "Method Not Allowed",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "OAuth2 userinfo endpoint (not implemented)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/oidc/login": {
|
||
"get": {
|
||
"operationId": "OIDCLogin",
|
||
"produces": [
|
||
"text/html"
|
||
],
|
||
"responses": {
|
||
"307": {
|
||
"description": "redirect to provider login page",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "start OpenID Connect login (browser redirect)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/oidc/redirect": {
|
||
"get": {
|
||
"operationId": "OIDCRedirect",
|
||
"parameters": [
|
||
{
|
||
"description": "opaque OAuth2 state value",
|
||
"in": "query",
|
||
"name": "state",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "authorization code",
|
||
"in": "query",
|
||
"name": "code",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"text/html"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "HTML page bootstrapping token storage",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "rendered error page",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "rendered error page",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "rendered error page",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"summary": "complete OIDC login (callback)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos": {
|
||
"get": {
|
||
"description": "Fore more information see:\n- https://docs.photoprism.app/developer-guide/api/search/#get-apiv1photos",
|
||
"operationId": "SearchPhotos",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of files",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "file offset",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "sort order",
|
||
"enum": [
|
||
"name",
|
||
"title",
|
||
"added",
|
||
"edited",
|
||
"newest",
|
||
"oldest",
|
||
"size",
|
||
"random",
|
||
"duration",
|
||
"relevance"
|
||
],
|
||
"in": "query",
|
||
"name": "order",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "groups consecutive files that belong to the same photo",
|
||
"in": "query",
|
||
"name": "merged",
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"description": "excludes private pictures",
|
||
"in": "query",
|
||
"name": "public",
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"description": "minimum quality score (1-7)",
|
||
"enum": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7
|
||
],
|
||
"in": "query",
|
||
"name": "quality",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search query",
|
||
"in": "query",
|
||
"name": "q",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "album uid",
|
||
"in": "query",
|
||
"name": "s",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "photo path",
|
||
"in": "query",
|
||
"name": "path",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "is type video",
|
||
"in": "query",
|
||
"name": "video",
|
||
"type": "boolean"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/search.Photo"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "finds pictures and returns them as JSON",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}": {
|
||
"get": {
|
||
"operationId": "GetPhoto",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns picture details as JSON",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdatePhoto",
|
||
"parameters": [
|
||
{
|
||
"description": "Photo UID",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to be updated (only submit values that should be changed)",
|
||
"in": "body",
|
||
"name": "photo",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Photo"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "updates picture details and returns them as JSON",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/approve": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "ApprovePhoto",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "marks a photo in review as approved",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/dl": {
|
||
"get": {
|
||
"operationId": "GetPhotoDownload",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/octet-stream"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns the primary file matching that belongs to the photo",
|
||
"tags": [
|
||
"Images",
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/files/{fileuid}": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DeleteFile",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "file uid",
|
||
"in": "path",
|
||
"name": "fileuid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes a file from storage",
|
||
"tags": [
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/files/{fileuid}/orientation": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "ChangeFileOrientation",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "file uid",
|
||
"in": "path",
|
||
"name": "fileuid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "file orientation",
|
||
"in": "body",
|
||
"name": "file",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.File"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "changes the orientation of a file",
|
||
"tags": [
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/files/{fileuid}/primary": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "PhotoPrimary",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "file uid",
|
||
"in": "path",
|
||
"name": "fileuid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "sets the primary file for a photo",
|
||
"tags": [
|
||
"Photos",
|
||
"Stacks"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/files/{fileuid}/unstack": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "PhotoUnstack",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "file uid",
|
||
"in": "path",
|
||
"name": "fileuid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes a file from an existing photo stack",
|
||
"tags": [
|
||
"Photos",
|
||
"Stacks"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/label": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "AddPhotoLabel",
|
||
"parameters": [
|
||
{
|
||
"description": "label properties",
|
||
"in": "body",
|
||
"name": "label",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Label"
|
||
}
|
||
},
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "adds a label to a photo",
|
||
"tags": [
|
||
"Labels",
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/label/{id}": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "RemovePhotoLabel",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "label id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes a label from a photo",
|
||
"tags": [
|
||
"Labels",
|
||
"Photos"
|
||
]
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdatePhotoLabel",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "label id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to be updated (currently supports: uncertainty)",
|
||
"in": "body",
|
||
"name": "label",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Label"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "changes a photo label",
|
||
"tags": [
|
||
"Labels",
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/like": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DislikePhoto",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes the favorite flags from a photo",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "LikePhoto",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "flags a photo as favorite",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/photos/{uid}/yaml": {
|
||
"get": {
|
||
"operationId": "GetPhotoYaml",
|
||
"parameters": [
|
||
{
|
||
"description": "photo uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"text/x-yaml"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns picture details as YAML",
|
||
"tags": [
|
||
"Photos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/places/reverse": {
|
||
"get": {
|
||
"operationId": "GetPlacesReverse",
|
||
"parameters": [
|
||
{
|
||
"description": "Latitude",
|
||
"in": "query",
|
||
"name": "lat",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "Longitude",
|
||
"in": "query",
|
||
"name": "lng",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "Locale",
|
||
"in": "query",
|
||
"name": "locale",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/places.Location"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Missing latitude or longitude",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Geocoding service error",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns location details for the specified coordinates",
|
||
"tags": [
|
||
"Places"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/places/search": {
|
||
"get": {
|
||
"operationId": "GetPlacesSearch",
|
||
"parameters": [
|
||
{
|
||
"description": "Search query",
|
||
"in": "query",
|
||
"name": "q",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "Locale for results (default: en)",
|
||
"in": "query",
|
||
"name": "locale",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "Maximum number of results (default: 10, max: 50)",
|
||
"in": "query",
|
||
"name": "count",
|
||
"type": "integer"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/places.SearchResult"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Missing search query",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "Search service error",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns locations that match the specified search query",
|
||
"tags": [
|
||
"Places"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/server/stop": {
|
||
"post": {
|
||
"operationId": "StopServer",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "allows authorized admins to restart the server",
|
||
"tags": [
|
||
"Internal"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/services": {
|
||
"get": {
|
||
"operationId": "SearchServices",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of results",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.Service"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "finds services and returns them as JSON",
|
||
"tags": [
|
||
"Services"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "AddService",
|
||
"parameters": [
|
||
{
|
||
"description": "properties of the service to be created",
|
||
"in": "body",
|
||
"name": "service",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Service"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"201": {
|
||
"description": "Created",
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "creates a new remote service account configuration",
|
||
"tags": [
|
||
"Services"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/services/{id}": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DeleteService",
|
||
"parameters": [
|
||
{
|
||
"description": "service id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes a remote service account configuration",
|
||
"tags": [
|
||
"Services"
|
||
]
|
||
},
|
||
"get": {
|
||
"operationId": "GetService",
|
||
"parameters": [
|
||
{
|
||
"description": "service id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns the specified remote service account configuration as JSON",
|
||
"tags": [
|
||
"Services"
|
||
]
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateService",
|
||
"parameters": [
|
||
{
|
||
"description": "service id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to be updated (only submit values that should be changed)",
|
||
"in": "body",
|
||
"name": "service",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Service"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "updates a remote account configuration",
|
||
"tags": [
|
||
"Services"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/services/{id}/folders": {
|
||
"get": {
|
||
"operationId": "GetServiceFolders",
|
||
"parameters": [
|
||
{
|
||
"description": "service id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"type": "object"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns folders that belong to a remote service account",
|
||
"tags": [
|
||
"Services"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/services/{id}/upload": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UploadToService",
|
||
"parameters": [
|
||
{
|
||
"description": "service id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.File"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "uploads files to the selected service account",
|
||
"tags": [
|
||
"Services"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/session": {
|
||
"delete": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "delete a session (logout)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
},
|
||
"get": {
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "get the current session or a session by id",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"parameters": [
|
||
{
|
||
"description": "login credentials",
|
||
"in": "body",
|
||
"name": "credentials",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Login"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "create a session (login)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/session/{id}": {
|
||
"delete": {
|
||
"parameters": [
|
||
{
|
||
"description": "session id or ref id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "delete a session (logout)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
},
|
||
"get": {
|
||
"parameters": [
|
||
{
|
||
"description": "session id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "get the current session or a session by id",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/sessions": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"parameters": [
|
||
{
|
||
"description": "login credentials",
|
||
"in": "body",
|
||
"name": "credentials",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Login"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "create a session (login)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/sessions/{id}": {
|
||
"delete": {
|
||
"parameters": [
|
||
{
|
||
"description": "session id or ref id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "delete a session (logout)",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
},
|
||
"get": {
|
||
"parameters": [
|
||
{
|
||
"description": "session id",
|
||
"in": "path",
|
||
"name": "id",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "get the current session or a session by id",
|
||
"tags": [
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/settings": {
|
||
"get": {
|
||
"operationId": "GetSettings",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns the user app settings as JSON",
|
||
"tags": [
|
||
"Settings"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "SaveSettings",
|
||
"parameters": [
|
||
{
|
||
"description": "user settings",
|
||
"in": "body",
|
||
"name": "settings",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/customize.Settings"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "saves the user app settings",
|
||
"tags": [
|
||
"Settings"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/status": {
|
||
"get": {
|
||
"operationId": "GetStatus",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
}
|
||
},
|
||
"summary": "responds with status code 200 if the server is operational",
|
||
"tags": [
|
||
"Debug"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/subjects": {
|
||
"get": {
|
||
"operationId": "SearchSubjects",
|
||
"parameters": [
|
||
{
|
||
"description": "maximum number of results",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search result offset",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "sort order",
|
||
"enum": [
|
||
"name",
|
||
"count",
|
||
"added",
|
||
"relevance"
|
||
],
|
||
"in": "query",
|
||
"name": "order",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "show hidden",
|
||
"enum": [
|
||
"yes",
|
||
"no"
|
||
],
|
||
"in": "query",
|
||
"name": "hidden",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "minimum number of files",
|
||
"in": "query",
|
||
"name": "files",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "search query",
|
||
"in": "query",
|
||
"name": "q",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/search.Subject"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "finds and returns subjects as JSON",
|
||
"tags": [
|
||
"Subjects"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/subjects/{uid}": {
|
||
"get": {
|
||
"operationId": "GetSubject",
|
||
"parameters": [
|
||
{
|
||
"description": "subject uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a subject as JSON",
|
||
"tags": [
|
||
"Subjects"
|
||
]
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateSubject",
|
||
"parameters": [
|
||
{
|
||
"description": "subject uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to be updated (only submit values that should be changed)",
|
||
"in": "body",
|
||
"name": "subject",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Subject"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "updates subject properties",
|
||
"tags": [
|
||
"Subjects"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/subjects/{uid}/like": {
|
||
"delete": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DislikeSubject",
|
||
"parameters": [
|
||
{
|
||
"description": "subject uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "removes the favorite flag from a subject",
|
||
"tags": [
|
||
"Subjects"
|
||
]
|
||
},
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "LikeSubject",
|
||
"parameters": [
|
||
{
|
||
"description": "subject uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "flags a subject as favorite",
|
||
"tags": [
|
||
"Subjects"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/svg/{icon}": {
|
||
"get": {
|
||
"operationId": "GetSvg",
|
||
"parameters": [
|
||
{
|
||
"description": "SVG icon name",
|
||
"enum": [
|
||
"user",
|
||
"face",
|
||
"camera",
|
||
"photo",
|
||
"raw",
|
||
"file",
|
||
"video",
|
||
"label",
|
||
"portrait",
|
||
"folder",
|
||
"album",
|
||
"broken",
|
||
"uncached"
|
||
],
|
||
"in": "path",
|
||
"name": "icon",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"image/svg+xml"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "SVG icon",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Icon not found",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns SVG placeholder symbols for UI fallbacks",
|
||
"tags": [
|
||
"Assets"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/t/{thumb}/{token}/{size}": {
|
||
"get": {
|
||
"description": "Fore more information see:\n- https://docs.photoprism.app/developer-guide/api/thumbnails/#image-endpoint-uri",
|
||
"operationId": "GetThumb",
|
||
"parameters": [
|
||
{
|
||
"description": "SHA1 file hash, optionally with a crop area suffixed, e.g. '-016014058037'",
|
||
"in": "path",
|
||
"name": "thumb",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "user-specific security token provided with session or 'public' when running PhotoPrism in public mode",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "thumbnail size",
|
||
"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"
|
||
],
|
||
"in": "path",
|
||
"name": "size",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"image/jpeg",
|
||
" image/svg+xml"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a thumbnail image with the requested size",
|
||
"tags": [
|
||
"Images",
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateUser",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "properties to be updated",
|
||
"in": "body",
|
||
"name": "user",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.User"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.User"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "update user profile information",
|
||
"tags": [
|
||
"Users"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/avatar": {
|
||
"post": {
|
||
"consumes": [
|
||
"multipart/form-data"
|
||
],
|
||
"description": "Accepts a single PNG or JPEG file (max 20 MB) in a multipart form field named \"files\" and sets it as the user's avatar.",
|
||
"operationId": "UploadUserAvatar",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "avatar image (png or jpeg, \u003c= 20 MB)",
|
||
"in": "formData",
|
||
"name": "files",
|
||
"required": true,
|
||
"type": "file"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.User"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "upload a new avatar image for a user",
|
||
"tags": [
|
||
"Users"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/passcode": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "CreateUserPasscode",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "passcode setup (password required)",
|
||
"in": "body",
|
||
"name": "request",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Passcode"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"201": {
|
||
"description": "Created",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Passcode"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "create a new 2FA passcode for a user",
|
||
"tags": [
|
||
"Users"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/passcode/activate": {
|
||
"post": {
|
||
"operationId": "ActivateUserPasscode",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Passcode"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "activate 2FA with a verified passcode",
|
||
"tags": [
|
||
"Users"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/passcode/confirm": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "ConfirmUserPasscode",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "verification code",
|
||
"in": "body",
|
||
"name": "request",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Passcode"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/entity.Passcode"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "verify a new 2FA passcode",
|
||
"tags": [
|
||
"Users"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/passcode/deactivate": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "DeactivateUserPasscode",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "password for confirmation",
|
||
"in": "body",
|
||
"name": "request",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.Passcode"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "deactivate 2FA and remove the passcode",
|
||
"tags": [
|
||
"Users"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/password": {
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "UpdateUserPassword",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "old and new password",
|
||
"in": "body",
|
||
"name": "request",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.ChangePassword"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "change a user's password",
|
||
"tags": [
|
||
"Users",
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/sessions": {
|
||
"get": {
|
||
"operationId": "FindUserSessions",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "maximum number of results",
|
||
"in": "query",
|
||
"maximum": 100000,
|
||
"minimum": 1,
|
||
"name": "count",
|
||
"required": true,
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "result offset",
|
||
"in": "query",
|
||
"minimum": 0,
|
||
"name": "offset",
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"description": "filter by username or client name",
|
||
"in": "query",
|
||
"name": "q",
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"items": {
|
||
"$ref": "#/definitions/entity.Session"
|
||
},
|
||
"type": "array"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "list sessions for a user",
|
||
"tags": [
|
||
"Users",
|
||
"Authentication"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/users/{uid}/upload/{token}": {
|
||
"post": {
|
||
"consumes": [
|
||
"multipart/form-data"
|
||
],
|
||
"operationId": "UploadUserFiles",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "upload token",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "one or more files to upload (repeat the field for multiple files)",
|
||
"in": "formData",
|
||
"name": "files",
|
||
"required": true,
|
||
"type": "file"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
},
|
||
"413": {
|
||
"description": "Request Entity Too Large",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"507": {
|
||
"description": "Insufficient Storage",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "upload files to a user's upload folder",
|
||
"tags": [
|
||
"Users",
|
||
"Files"
|
||
]
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "ProcessUserUpload",
|
||
"parameters": [
|
||
{
|
||
"description": "user uid",
|
||
"in": "path",
|
||
"name": "uid",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "upload token",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "processing options",
|
||
"in": "body",
|
||
"name": "options",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/form.UploadOptions"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"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"
|
||
}
|
||
},
|
||
"409": {
|
||
"description": "Conflict",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "Too Many Requests",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "process previously uploaded files for a user",
|
||
"tags": [
|
||
"Users",
|
||
"Files"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/videos/{hash}/{token}/{format}": {
|
||
"get": {
|
||
"description": "Fore more information see:\n- https://docs.photoprism.app/developer-guide/api/thumbnails/#video-endpoint-uri",
|
||
"operationId": "GetVideo",
|
||
"parameters": [
|
||
{
|
||
"description": "SHA1 video file hash",
|
||
"in": "path",
|
||
"name": "thumb",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "user-specific security token provided with session",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "video format, e.g. mp4",
|
||
"in": "path",
|
||
"name": "format",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"video/mp4"
|
||
],
|
||
"responses": {
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a video, optionally limited to a byte range for streaming",
|
||
"tags": [
|
||
"Files",
|
||
"Videos"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/vision/caption": {
|
||
"post": {
|
||
"operationId": "PostVisionCaption",
|
||
"parameters": [
|
||
{
|
||
"description": "list of image file urls",
|
||
"in": "body",
|
||
"name": "images",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/vision.ApiRequest"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/vision.ApiResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"501": {
|
||
"description": "Not Implemented",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a suitable caption for an image",
|
||
"tags": [
|
||
"Vision"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/vision/face": {
|
||
"post": {
|
||
"operationId": "PostVisionFace",
|
||
"parameters": [
|
||
{
|
||
"description": "list of image file urls",
|
||
"in": "body",
|
||
"name": "images",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/vision.ApiRequest"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/vision.ApiResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"501": {
|
||
"description": "Not Implemented",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns the embeddings of a face image",
|
||
"tags": [
|
||
"Vision"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/vision/labels": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "PostVisionLabels",
|
||
"parameters": [
|
||
{
|
||
"description": "list of image file urls",
|
||
"in": "body",
|
||
"name": "images",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/vision.ApiRequest"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/vision.ApiResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns suitable labels for an image",
|
||
"tags": [
|
||
"Vision"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/vision/nsfw": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"operationId": "PostVisionNsfw",
|
||
"parameters": [
|
||
{
|
||
"description": "list of image file urls",
|
||
"in": "body",
|
||
"name": "images",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/vision.ApiRequest"
|
||
}
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/vision.ApiResponse"
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "checks the specified images for inappropriate content",
|
||
"tags": [
|
||
"Vision"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/zip": {
|
||
"post": {
|
||
"operationId": "ZipCreate",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "Not Found",
|
||
"schema": {
|
||
"$ref": "#/definitions/i18n.Response"
|
||
}
|
||
}
|
||
},
|
||
"summary": "creates a zip file archive for download",
|
||
"tags": [
|
||
"Download"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/zip/{filename}": {
|
||
"get": {
|
||
"operationId": "ZipDownload",
|
||
"parameters": [
|
||
{
|
||
"description": "zip archive filename returned by the POST /api/v1/zip endpoint",
|
||
"in": "path",
|
||
"name": "filename",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"application/zip"
|
||
],
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a zip file archive after it has been created",
|
||
"tags": [
|
||
"Download"
|
||
]
|
||
}
|
||
},
|
||
"/api/v1/{any}": {
|
||
"options": {
|
||
"description": "A preflight request is automatically issued by a browser and in normal cases, front-end developers don't need to craft such requests themselves. It appears when request is qualified as \"to be preflighted\" and omitted for simple requests.",
|
||
"operationId": "Options",
|
||
"responses": {
|
||
"204": {
|
||
"description": "No Content"
|
||
}
|
||
},
|
||
"summary": "returns CORS headers with an empty response body",
|
||
"tags": [
|
||
"CORS"
|
||
]
|
||
}
|
||
},
|
||
"/s/{token}": {
|
||
"get": {
|
||
"operationId": "ShareToken",
|
||
"parameters": [
|
||
{
|
||
"description": "Share token",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"text/html"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Rendered HTML page",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"302": {
|
||
"description": "Redirect to the base site when the token is invalid",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"summary": "creates a session using the specified share token and renders the generic sharing bootstrap page",
|
||
"tags": [
|
||
"Sharing"
|
||
]
|
||
}
|
||
},
|
||
"/s/{token}/{shared}": {
|
||
"get": {
|
||
"operationId": "ShareTokenShared",
|
||
"parameters": [
|
||
{
|
||
"description": "Share token",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "Shared resource UID",
|
||
"in": "path",
|
||
"name": "shared",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"text/html"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Rendered HTML page",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"302": {
|
||
"description": "Redirect to the base site when the token is invalid",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"summary": "creates a session with the specified share token and redirects to the shared content",
|
||
"tags": [
|
||
"Sharing"
|
||
]
|
||
}
|
||
},
|
||
"/s/{token}/{shared}/preview": {
|
||
"get": {
|
||
"operationId": "SharePreview",
|
||
"parameters": [
|
||
{
|
||
"description": "Share token",
|
||
"in": "path",
|
||
"name": "token",
|
||
"required": true,
|
||
"type": "string"
|
||
},
|
||
{
|
||
"description": "Shared resource UID",
|
||
"in": "path",
|
||
"name": "shared",
|
||
"required": true,
|
||
"type": "string"
|
||
}
|
||
],
|
||
"produces": [
|
||
"image/jpeg"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Preview image",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
},
|
||
"302": {
|
||
"description": "Redirect to the default preview page",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"summary": "returns a share preview image when the token is valid",
|
||
"tags": [
|
||
"Sharing"
|
||
]
|
||
}
|
||
},
|
||
"/swagger.json": {
|
||
"get": {
|
||
"operationId": "GetDocs",
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Swagger JSON",
|
||
"schema": {
|
||
"$ref": "#/definitions/gin.H"
|
||
}
|
||
}
|
||
},
|
||
"summary": "serves embedded Swagger documentation (debug builds only)",
|
||
"tags": [
|
||
"Debug"
|
||
]
|
||
}
|
||
},
|
||
"/ws": {
|
||
"get": {
|
||
"operationId": "WebSocket",
|
||
"responses": {
|
||
"101": {
|
||
"description": "Switching Protocols",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "Forbidden",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"summary": "opens a WebSocket connection for real-time events",
|
||
"tags": [
|
||
"WebSocket"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"BearerAuth": []
|
||
}
|
||
],
|
||
"securityDefinitions": {
|
||
"BearerAuth": {
|
||
"in": "header",
|
||
"name": "Authorization",
|
||
"type": "apiKey"
|
||
}
|
||
},
|
||
"swagger": "2.0"
|
||
} |